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