如何使用GCC构建可执行文件,以便无法搜索关键字。例如,我使用一个名为“PascalTriangle”的函数编写我的代码,并构建了一个可执行文件并分发。如果我在可执行文件中使用“PascalTriangle”,那么我能够知道二进制文件是使用该函数构建的。我如何隐藏这些信息?如何使用gcc隐藏信息或使可执行功能无法搜索
道歉,如果我的问题是不相关的。谢谢。
如何使用GCC构建可执行文件,以便无法搜索关键字。例如,我使用一个名为“PascalTriangle”的函数编写我的代码,并构建了一个可执行文件并分发。如果我在可执行文件中使用“PascalTriangle”,那么我能够知道二进制文件是使用该函数构建的。我如何隐藏这些信息?如何使用gcc隐藏信息或使可执行功能无法搜索
道歉,如果我的问题是不相关的。谢谢。
函数名是由剥离出来的符号可执行的去除的符号的一部分。 在Unix平台上,可以使用条带来完成符号剥离。
例如为:
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
非常感谢。剥离是我一直在寻找的术语。我用google搜索了一下,发现用g ++使用-s会去掉符号。 – blueskin 2010-10-30 23:01:20