2010-11-06 52 views
16

是否有任何已知的C/C++編譯器生成混淆/噪聲代碼? 或者可能是像GCC這樣的開源C/C++編譯器的補丁?生成混淆代碼的C/C++編譯器

+8

'-O3'真的很難破譯 – Anycorn 2010-11-06 03:55:08

+8

那麼,機器代碼C和C++編譯器生成的內容已經很模糊了。想想看,我看到的一些C和C++代碼已經非常模糊......:-P – 2010-11-06 03:56:50

+0

呵呵。這並不好笑。 – 2010-11-06 03:59:08

回答

3

如果你對商業工具感興趣,你可能想看看Morpher(免責聲明:我在這個項目上工作)。它本質上是llvm-gcc的一個版本,帶有額外的混淆通行證 - 你應該使用Morpher作爲gcc的插入替代品。混淆通行證包括持續保護,基本塊和功能的克隆,CFG拱門齧合等;它們在documentation section中用組裝示例進行了描述。官方支持的語言是C/C++/Objective-C/Objective-C++,儘管我們可能會根據您的請求將它改編爲LLVM IR。

+0

那麼,這裏也是我的小實驗:http://blogs.conus.info/node/58 – 2011-01-25 13:36:18

3

您可以使用http://www.pelock.com/products/obfuscator來混淆彙編程序。您可以編譯爲彙編程序(在這種情況下是MASM樣式),然後對其進行混淆。根據我的經驗,使用許多虛擬函數/間接和/或解釋器(即爲您的處理的某些步驟創建您自己的小字節代碼)作爲您的代碼結果的一部分,代碼非常不可修改。

1

任何編譯器那能夠生成僞隨機式的數字(經由__COUNTER__),並且可以注入字節到一個內聯組件流(經由__emit)可以執行內聯代碼混淆,其沒有像什麼外部封隔器和obfuscaters做的,這可以是有利的。 '強度'主要依賴於多少metaprogramming你投入它,但顯然你永遠不能說加密IAT等