我当前正在使用Visual Studio 2017,并试图使我的应用程序更防篡改。 现在,我想保护的关键代码功能将在运行时解密,为此,我试图将它们添加到文件中的自定义部分,该示例将称为.foobar。我正在使用#pragma指令添加该部分,并稍后指定应该在此处链接的功能,但是当我分析PE文件时,没有.foobar部分。
我要添加功能的代码如下:
#pragma section(".foobar",execute, read, write)
#pragma comment(linker,"/SECTION:.foobar,ERW")
...
Main() function and others...
...
#pragma code_seg(".foobar")
int IWantThisToBeInFoobar() {...}
我还尝试了以下方法:
int IWantThisToBeInFoobar();
...
#pragma alloc_text(".foobar", IWantThisToBeInFoobar)
...
int IWantThisToBeInFoobar() {...}
到目前为止,这些方法均无效,我正在使用ExeInfo PE来查看各节,并且在任何地方都没有.foobar的迹象。
感谢任何帮助或指导。
答案 0 :(得分:0)
弄清楚了,必须使用/ OPT:NOREF和/ LTCG进行编译。
希望这对以后的人很有用。