C程序新的段声明

问题描述 投票:1回答:1

我有这个简单的代码测试代码:

#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;
}

谁能告诉我为什么如果我转储这个文件我只有这个默认部分:

  • 。数据
  • Krdta
  • .reloc节
  • .rsrc
  • 。存根
  • 。文本

.code段没有生成。我想我曾经在一些previuos项目中这样做,我做错了什么?

- 进一步测试 -

  • .obj文件转储到.code部分。
  • qazxsw poi被展示倾销qazxsw poi或qazxsw poi
  • 删除.stub不起作用
  • 添加.exe没有改变.obj上的dumpbin结果,#pragma comment(linker,"/SECTION:.code,ERW")仍然显示
  • 将名称从#pragma comment(linker,"/SECTION:.stub,ERW")更改为.exe也不起作用,结果相同
c header portable-executable segment dumpbin
1个回答
0
投票

使用以下指令,我能够将所有代码/变量/ costant限制在使用dumbin命令可见的.stub段中。

.code
© www.soinside.com 2019 - 2024. All rights reserved.