如何使用GCC构建可执行文件,以便无法搜索关键字。例如,我使用一个名为“PascalTriangle”的函数编写了我的代码,并构建了一个可执行文件并进行了分发。如果我在可执行文件上grep“PascalTriangle”,那么我至少知道二进制文件是使用该函数构建的。如何隐藏此信息?
道歉,如果我的问题不相关。谢谢。
答案 0 :(得分:3)
函数名称是通过从可执行文件中删除符号而删除的符号的一部分。 在类似Unix的平台上,可以使用 strip 完成符号剥离。
E.g:
diciu$ nm ./a.out
0000000100000f06 s stub helpers
0000000100001048 D _NXArgc
0000000100001050 D _NXArgv
0000000100000ec4 T _PascalTriangle
0000000100001060 D ___progname
0000000100000000 A __mh_execute_header
0000000100001058 D _environ
U _exit
0000000100000ecf T _main
U _printf
0000000100001020 s _pvars
U dyld_stub_binder
0000000100000e88 T start
diciu$ strip ./a.out
diciu$ nm ./a.out
0000000100000000 A __mh_execute_header
U _exit
U _printf
U dyld_stub_binder
答案 1 :(得分:0)