大理寺少卿 发表于 2025-2-23 14:34:09

WindowsPE文件格式入门07

提高动手能力的方法,多看别人的代码,自己多写一写,看的多了,见多识广就自然会写了

有导入函数就有导入dll,导入函数是不会被优化的.因为无法确定是否会被用,而且也不清楚代码大小

导入表跟静态链接没有关系,静态链接是直接把代码直接链接到可执行文件中,调了动态链接库,就会有导入表,不调就没有

改变节属性后,相同属性的节会自动合并,合并的顺序是按照节名的 ascii 码顺序排序

## C++ 代码后移的方式

```c++
#define NOP10__asm nop   __asm nop__asm nop__asm nop__asm nop__asm nop__asm nop__asm nop__asm nop__asm nop
#define NOP100 NOP10NOP10NOP10NOP10NOP10NOP10NOP10NOP10NOP10NOP10
#define NOP1000NOP100 NOP100 NOP100 NOP100 NOP100 NOP100 NOP100 NOP100 NOP100 NOP100


int APIENTRY wWinMain(_In_ HINSTANCE hInstance,
                     _In_opt_ HINSTANCE hPrevInstance,
                     _In_ LPWSTR    lpCmdLine,
                     _In_ int       nCmdShow)
{
   NOP10
   MessageBox(NULL, _T("hellow"),_T("hellow"),MB_OK);
   
}
```

!(./mdimg/pe/1656090957425-c2ab394c-4929-4680-8e70-dae37120f039.png)

!(./mdimg/pe/1656090973589-661d7030-a2fb-47e3-be54-84490a2ac605.png)

!(./mdimg/pe/1656090897892-48cbdb28-6715-45ef-95f3-08613e7072c0.png)

向带有附加数据的进程中添加数据(例如 CE)

如果附加数据检查不严格就没事

而且不一定非要加在 exe中 ,也可以把数据放入加载的dll 没有附加数据的dll中

如果上面都不满足,那么就先把最后一个节节拓展,把附加数据放入节中,想要加数据可以再去添加节或者拓展节都可以,注意修改 SizeOfImage,不一定适用于所有进程

判断自己的可执行文件是否被修改了看

用MD5值校验,如果不一样就说被修改了

txt是纯文本文件,没有格式

节表注入

添加节

第一步:添加节数据

!(./mdimg/pe/1656086134273-8275c80f-f510-4b77-a71c-8e2d8179c7db.png)

第二步:添加节数据

!(./mdimg/pe/1656086221449-966a93f6-0aaf-4a73-858a-496188d8b1b5.png)

第三步:文件头中节个数加1

!(./mdimg/pe/1656086805239-b2b6d2ea-953e-42d7-aa17-bd898acb19c2.png)

第四步:修正PE在内存中总大小

!(./mdimg/pe/1656086839912-bf32e8dc-4d3b-412f-9cdc-8048b0bce1de.png)

拓展节

第一步添加节数据

!(./mdimg/pe/1656087025471-0a83db98-3493-48d5-a6ab-9a53973698b2.png)

第二步修正最后一个节的文件和内存大小

!(./mdimg/pe/1656087058533-89d7f9ef-7121-403b-bf95-9fd608026f48.png)

第三步修正PE在内存中总大小

!(./mdimg/pe/1656087119853-300135ca-1c3d-4f24-984f-38146a5b1160.png)

导入表注入

第一步增加节

!(./mdimg/pe/1656087294712-bde5c3c4-3d91-4cce-a0cd-f9160912553e.png)

第二步拷贝源导入表

!(./mdimg/pe/1656087334543-6c2507b4-6c4c-4033-945f-4c5dc2fb2ffe.png)

第三步导入表添加一项

!(./mdimg/pe/1656087384112-d31cbe13-584c-4552-959b-9f42a5aa23ce.png)

第四步数据目录中导入表地址指向新节的导入表

!(./mdimg/pe/1656088035516-107416d4-2fb5-4a79-b906-84caacea9fc4.png)

AO1199 发表于 2025-3-5 09:14:09

学习一下!!
页: [1]
查看完整版本: WindowsPE文件格式入门07