是否有任何已知的C / C ++编译器生成混淆/噪声代码? 或者也许是像GCC这样的开源C / C ++编译器的补丁?
答案 0 :(得分:3)
您可以使用http://www.pelock.com/products/obfuscator对汇编程序进行模糊处理。您可以编译为汇编程序(在本例中为MASM样式),然后对其进行模糊处理。
编辑:根据我的经验,使用许多虚函数/间接和/或解释器(即为处理的某些步骤创建自己的迷你字节码)作为代码结果的一部分非常不可逆转的代码。
答案 1 :(得分:3)
如果您对商业工具感兴趣,可能需要查看Morpher(免责声明:我参与此项目)。它本质上是llvm-gcc
的一个版本,带有额外的模糊传递 - 你应该使用Morpher作为gcc
的替代品。混淆过程包括持续保护,基本块和函数的克隆,CFG拱形网格划分等;它们在documentation section中用汇编示例进行了描述。官方支持的语言是C / C ++ / Objective-C / Objective-C ++,但我们可以根据您的要求将其调整为可以编译为LLVM IR的任何内容。
答案 2 :(得分:1)
能够生成伪随机数字(通过__COUNTER__
)并且可以将字节注入内联汇编流(通过__emit
)的任何编译器都可以执行内联代码混淆,它什么都不是什么外部封隔器和混合器这样做,这可能是有利的。 '实力'主要取决于你投入多少元编程,但显然你永远不能说加密IAT等。
答案 3 :(得分:-1)
另一种方法可能是在受保护的VM环境中运行可执行文件。 ZProtect - 我既没有使用也没有认可的产品,而是发现了“我感觉好运Google” - 声称提供多级代码保护(VM,加密,混淆等)。
如果有人真的,真的想知道你是怎么做的,他们会发现 - 如果是IP盗窃,那就聘请一位优秀的律师。如果它是加密,那么使用经过验证的行业方法。如果它是DRM的东西,那么,无论如何,这都是转向硬件(和根工具包)的斗争。