我目前正在使用gcc 4.4.6来编译我的C ++程序。我注意到通过在Valgrind中运行代码,在编译的代码(带有O2标志)中可以看到函数声明。这意味着可以通过在调试器中运行来轻松地对程序进行逆向工程。
有一种简单的方法可以隐藏它们吗?我知道这不会阻止一个坚定的人,我只是不希望人们在5分钟内对其进行逆向工程。
答案 0 :(得分:4)
man strip
- GNU Binutils
gcc
有一个选项-fvisibility=hidden
,除了导出的内容之外,它不会生成任何符号。
使用-O3
,但要小心。