2010-11-06 111 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等