005 发表于 2026-10-2 13:50:28

发现个好玩的

本帖最后由 005 于 2026-10-2 14:02 编辑

先给项目添加编译参数:<火山程序 类型 = "通常" 版本 = 1 />

包 Voldp.DLL.A <@视窗.附加编译参数 = "link: /SECTION:.mycode,ER" @视窗.附加编译参数 = "link: /OPT:NOREF"
      @视窗.附加编译参数 = "link: /OPT:NOICF">

@ #pragma section(".mycode", execute, read)
给函数指定区段:<火山程序 类型 = "通常" 版本 = 1 />

# @ #pragma code_seg(".mycode")
# @ int my_add(int a, int b)
# @ {
# @   return a + b;
# @ }
# @ #pragma code_seg()
如果需要也可以添加声明:<火山程序 类型 = "通常" 版本 = 1 />

# @ #pragma code_seg(".mycode")
# @ __declspec(noinline) static int my_add(int a, int b)
# @ {
# @   return a + b;
# @ }
# @ #pragma code_seg()
剩下的就是给汇编代码了:
地址            机器码         汇编代码                                 
100BE000      8D0411      lea eax, dword ptr ds:      
100BE003      C3            ret                                    

哔哔赖赖这么多,我看了主要就2个知识点:
1、可以指定某些函数到某个区段;
2、可以直接查段函数汇编代码;

能不能给个加精?








先生 发表于 2026-10-2 19:26:26

该说不说我不懂
页: [1]
查看完整版本: 发现个好玩的