作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我搜索了混淆代码,但没有找到如何在没有任何单词的情况下编写代码的示例。即使没有#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/
我是一名优秀的程序员,十分优秀!