我搜索了混淆代码,但没有找到如何在没有任何单词的情况下编写代码的示例。即使没有#define、int 等... 有一种方法可以做到这一点,但我找不到......
最佳答案
欢迎来到文盲编程!
有一种方法可以做到这一点:创建一个只有空格和可能没有任何字母的注释的文件。这个文件可以编译为C代码,并且会产生一个空的目标文件,恐怕不是很有用......
您还可以滥用预处理器并仅使用数字和下划线。通过使用精心选择的命令行选项编译代码以在源文件之前包含 key 文件,您可以避免所有字母。您需要对所有关键字和类型以及 main
函数名称使用宏。扭曲但可行。您可能想编写一个程序来自动执行混淆。
例如:
key.h:
#include <stdio.h>
#define _1 int
#define _2 main
#define _3 printf
#define _4 return
来源.c:
_1 _2() {
_3("\110\145\154\154\157\040\167\157\162\154\144\041\012");
_4 0;
}
编译并运行它:
gcc -include key.h source.c -o program
./program
应该产生:
Hello world!
编辑:如果您无法使用 key 文件,请在命令行上定义宏:
gcc -include stdio.h -D_1=int -D_2=main -D_3=printf -D_4=return source.c -o program
./program
关于c++ - 如何编写没有任何字母但只能使用主词的c代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39968322/