如何使用gcc隐藏信息或使可执行函数无法搜索

时间:2010-10-30 06:45:53

标签: gcc

如何使用GCC构建可执行文件,以便无法搜索关键字。例如,我使用一个名为“PascalTriangle”的函数编写了我的代码,并构建了一个可执行文件并进行了分发。如果我在可执行文件上grep“PascalTriangle”,那么我至少知道二进制文件是使用该函数构建的。如何隐藏此信息?

道歉,如果我的问题不相关。谢谢。

2 个答案:

答案 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)

有些产品会混淆您的代码并将所有内容更改为“随机”字符串。

有一些编写代码的方法难以对其进行逆向工程。

阅读这篇文章:

Code Obfuscation