我正在阅读一篇关于C语言代码混淆的文章,其中一个例子将主函数声明为:
int main(c,v) char *v; int c;{...}
我从未见过这样的东西,“v
”和“c
”是全局变量吗?
完整的示例代码如下:
#include <stdio.h>
#define THIS printf(
#define IS "%s\n"
#define OBFUSCATION ,v);
int main(c, v) char *v; int c; {
int a = 0; char f[32];
switch (c) {
case 0:
THIS IS OBFUSCATION
break;
case 34123:
for (a = 0; a < 13; a++) { f[a] = v[a*2+1];};
main(0,f);
break;
default:
main(34123,"@h3eglhl1o. >w%o#rtlwdl!S\0m");
break;
}
}
这篇文章:brandonparker.net(已无法使用),但可以在web.archive.org中找到。
K & R C
。 - user93353