受到这个PCG挑战的启发:https://codegolf.stackexchange.com/q/61836/31033 我问自己,如果在编译这样的工具时(无论是浏览器还是浏览器),都会尝试尽可能少地留下痕迹其他东西),是否有某种方式(针对gcc/clang,因为这可能是在这样一个工作环境中预装的命令行编译器)将源代码作为命令行参数或相等机制交给编译器,而不需要源代码beeing保存为*.c文件,用户通常会这样做?
(当然编译器会在编译时生成临时文件,但那些可能不会被扫描.)
至少gcc
可以,因为它能够从标准输入读取源.你也可以在这里使用Unix字符串bash构造:
gcc -xc - << "int main() { exit(0); }"
Run Code Online (Sandbox Code Playgroud)
或者这里文件sh构造:
gcc -xc - <<MARK
int main() {
exit(0);
}
MARK
Run Code Online (Sandbox Code Playgroud)
- - 编辑 - -
您还可以想象使用加密技术对源进行编码,动态解读内容并将结果注入gcc的标准输入,如:
uncipher myfile.protected | gcc -xc -
Run Code Online (Sandbox Code Playgroud)