我有这个简单的代码测试代码:
#include <Windows.h>
#include <stdio.h>
/* Declare new sections to store encrypted code and shellcode data */
#pragma section(".code", execute, read, write)
#pragma comment(linker,"/SECTION:.code,ERW")
// From here executable code will go in .code section
#pragma code_seg(".code")
int test()
{
printf("prova");
return 0;
}
// .stub SECTION
#pragma section(".stub", execute, read, write)
#pragma code_seg(".stub")
int main(int argc, char *argv[]){
test(); /* Call function which executes shellcode now that it is decrypted */
return 0;
}
谁能告诉我为什么如果我转储这个文件我只有这个默认部分:
.code段没有生成。我想我曾经在一些previuos项目中这样做,我做错了什么?
- 进一步测试 -
.obj
文件转储到.code
部分。.stub
不起作用.exe
没有改变.obj
上的dumpbin结果,#pragma comment(linker,"/SECTION:.code,ERW")
仍然显示#pragma comment(linker,"/SECTION:.stub,ERW")
更改为.exe
也不起作用,结果相同使用以下指令,我能够将所有代码/变量/ costant限制在使用dumbin命令可见的.stub
段中。
.code