【发布时间】:2013-10-01 07:08:17
【问题描述】:
我想混淆代码只是为了好玩。我正在查看来自国际混淆 c 竞赛的代码:http://www.ioccc.org/ 我真的不知道如何开始对其中一些代码进行逆向工程以使其有意义。
有哪些常见的混淆技术以及如何理解混淆代码?
【问题讨论】:
-
您是在问如何混淆代码(您标题中的问题),还是如何理解混淆代码(您问题的主体)?
-
理解混淆代码的第一步是添加空格。那么你可能应该了解digraphs and trigraphs。然后你只需要处理代码。至于怎么混淆,大概每个人都有自己的技巧。
-
@Keith Thompson Both.. 我问“常见的混淆技术是什么”以及理解混淆代码。我想如果我能理解如何去混淆代码,那么这将有助于我理解如何混淆它。
-
@Dukeling 非常有趣。感谢您的链接 - 我以前从未听说过这样的事情
-
最好的方法(以及赢得这些比赛的各种东西)是想出一些巧妙的新方法来混淆你的代码。使用预处理器(
#define和 trigraphs)已经很老了。如果你想要质量混淆,预处理后它应该仍然很奇怪。诸如构建自己的堆栈、将浮点数作为字节操作以及利用标准的奇怪边缘情况等都是很好的竞争者。
标签: c obfuscation