Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C语言代码模糊处理教程_C_Obfuscation - Fatal编程技术网

C语言代码模糊处理教程

C语言代码模糊处理教程,c,obfuscation,C,Obfuscation,我对人们混淆代码(主要是C)的方式很感兴趣(这里的例子是:),我想学习同样的各种技术。有人告诉我有一本书,“模糊C和其他谜团”,但我没能得到那本书。 有没有关于这个主题的教程或书籍? 多谢各位 你所能做的就是阅读IOCCC节目作者的评论。它们描述了它们如何设法混淆代码。以下是几点建议: 简短而无意义的标识符 因为a=aaa*aa总是比结果=值*因子更模糊 为了获得简短的标识符,混淆器甚至倾向于定义许多东西 反向数组索引 你只需要记住,var[3]和3[var]是等价的 有向图与三角图 (a<p

我对人们混淆代码(主要是C)的方式很感兴趣(这里的例子是:),我想学习同样的各种技术。有人告诉我有一本书,“模糊C和其他谜团”,但我没能得到那本书。 有没有关于这个主题的教程或书籍?
多谢各位

你所能做的就是阅读IOCCC节目作者的评论。它们描述了它们如何设法混淆代码。以下是几点建议:

简短而无意义的标识符 因为
a=aaa*aa总是比
结果=值*因子更模糊

为了获得简短的标识符,混淆器甚至倾向于定义许多东西

反向数组索引 你只需要记住,
var[3]
3[var]
是等价的

有向图与三角图

<代码>(a<p>Mordn的答案很好地掩盖语法的混淆),但是还有另一个层次,那就是语义混淆。考虑到经常提到的图灵机具有与任何其他编程语言相同的计算能力(忽略输入和输出的考虑)。.事实上,所有各种计算模型都有具有等效功率的兄弟模型


例如,字符串
char s[N]
可以被视为从索引到字符的映射,因此任何字符串都可以由一个函数来表示,该函数在使用指定的索引
char f(int i)调用时始终提供适当的字符
。现在读吧。疯狂,对吧?

我不认为有一种通用的技术可以实现这一点……必须要有创造性。大量的模糊处理。@MichaelBurr哦,是的,递归文件包含在X宏中,以完全模糊的方式生成一些代码。@Morwenn:它不需要像X宏那么重-你经常会看到普通的老马cro定义在模糊的代码条目中。例如,重新定义关键字会让阅读程序变得非常痛苦:
#define char k['a']
@MichaelBurr,但我已经在第二点中谈到了
#define
定义内容:)@Morwenn:我明白了。我错过了它,因为它不是“顶级”物品。@Morwenn我知道你提到的要点。我在寻找细节。谢谢你。不错的链接,顺便说一句:)