Ray*_*Ray 8 c++ rebase visual-studio-2010
有没有人注意到,如果你导入一个exe作为资源,它会被重新定位,并且似乎它的PE头被重建?
有时候这很刺激.有人知道如何禁用变基!?
在c ++中重现的步骤:
1)编译一个hello world并手动设置其基地址(在属性中),比如说0x1000000
2)制作第二个项目并将问候世界纳入资源.也可以手动设置其基址如上.
3)建立第二个项目
4)从资源中提取exe并用Pe编辑器检查它!它被设置回0x400000.为什么?!
您如何将 EXE 作为资源包含到第二个项目中?
使用这些定义:
#define BINFILE 222
#define IDR_MYFILE 101
Run Code Online (Sandbox Code Playgroud)
如果我将 .rc 文件中的可执行文件引用为指向原始文件,例如:
IDR_MYFILE BINFILE "S:\\mysource\\t1\\Release\\t1.exe"
Run Code Online (Sandbox Code Playgroud)
然后,在提取后,我的嵌入式 EXE 资源不会重新设置基础,而是保留我构建它所用的内容。
| 归档时间: |
|
| 查看次数: |
481 次 |
| 最近记录: |