将部分添加到链接上的可执行文件

时间:2018-06-22 08:03:02

标签: c visual-studio linker portable-executable pragma

我当前正在使用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的迹象。

感谢任何帮助或指导。

1 个答案:

答案 0 :(得分:0)

弄清楚了,必须使用/ OPT:NOREF和/ LTCG进行编译。

希望这对以后的人很有用。