本质上,这个问题和这个问题都相似。我对启用/禁用哪些编译器设置以使Visual C ++难以进行逆向工程感兴趣。 。这似乎等效于gcc的-O3 /Ox省略帧指针。 (仅x86)/Oy禁用运行时类型信息/GR-标志用于静态链接各个库。 gcc,但是由于调试符号存储在PDB文件中,所以这对于MSVC是必需的吗?

我还应该包括其他内容以确保在应用程序中分发最少的信息吗? br />(我可能会补充说我正在创建一个独立的可执行文件)

评论

在MSVC中,可见性默认情况下处于隐藏状态-您必须显式导出要访问的符号。

#1 楼

您应该禁用/ DEBUG(链接器选项),即使对于Release配置,默认情况下也会启用该功能。

请注意,尽管某些编译器/链接器选项会使您对软件进行反向工程更加困难,但它们不会对整体可逆性有很大影响。

#2 楼

除了编译器之外,因为它们没有RE安全性的补救措施。您可以使用混淆和反调试器技巧。如果您希望有很多优质的包装机,请使用它们