假设我有一个简单的C文件。
#include <stdio.h>
int main() {
printf("It works!\n");
return 0;
}
如何编译C源代码,以便生成的二进制文件不会泄漏有关我的信息?即。编译一个匿名二进制文件
如果我只是使用
gcc main.c
在上面的来源
然后
字符串a.out
我得到输出,如
GLIBC_2.2.5
在文本编辑器中浏览a.out,我可以找到
lib64下/ LD-Linux的x86-64.so.2
海湾合作委员会:(Ubuntu 5.4.0-6ubuntu1~16.04.4)5.4.0 20160609
即使在strip
a.out之后,二进制文件中仍有很多识别信息
编辑: 提出此问题的原因
我很年轻,希望得到编程工作。
但是,我想在创建“专业”回购之前创建一个“测试”回购。
我知道我可以删除“测试”,但它可能会在某处存档(archive.org)。
我不能制作“私人”存储库,因为它是付费功能
“test”repo将包含我已编写的代码(但代码的样式与我现在编写代码的方式不同),我还想编译并将其添加到GitHub版本中。
“pro”repo将包含我从现在开始编写的代码。
我不希望雇主知道作者是同一个人
答案 0 :(得分:0)
GLIBC_2.2.5
和/lib64/ld-linux-x86-64.so.2
。你只能通过使用静态链接(不建议在GNU / Linux上支持)来摆脱它。
要删除编译器标识,请使用-Qn
选项进行编译。