首先notepade.exe文件位置在c盘下的windows文件夹中
用winhex打开
先判断节表末尾到第一个节之间是否够80字节:可选PE头中SizeOfHeaders值为0x1000;标准PE头中SizeOfOptionalHeader值为0xE0,NumberOfSections值为0x4;DOS头中e_lfanew值为0xE0。通过0x1000 - (0xE0 + 0x4 + 0x14 + 0xE0 + 0x4 * 0x28)= 0xD88,因为0xD88 > 0x50,所以可以存下新增节表
构建最简单弹框
massagebox(0,0,0,0)
76E2A020 user32.MessageBoxA
E8下一行7B55
X = 真正要跳转的地址 - E8这条指令的下一行地址
X = 0x76E2A020 - (7B55 -400(第一个节表的初始值)+1000(拉伸后位置)+100000(imagebase的基址)) =75E2 18CB(小端序)
OEP(想jmp目的地址):739D 在内存中 739D + 10000 = 1739D
jmp当前地址:(7B55 + 5)- 400 + 1000 + 10000 = 1 875A
那么E9 后的地址为 :1739D- 1 875A= FFFF EC43
泪目