cvcvxk
编译时去掉GS去掉safeseh和C++异常,内存加载就和谐了
当然也是你加载办法不行的原因,网上哪个什么memory module只是一个poc,不是一个产品级加载。
谢谢V校, 其实是加壳导致的. 一直没来关注,后面分析出来了.
__try 和 __except 的执行在区段的访问上有一个条件
代码段 & 0x200000000
0058483A E8 3171FFFF CALL _ValidateImageBase
0058483F 83C4 04 ADD ESP,0x4
00584842 85C0 TEST EAX,EAX
00584844 0F84 F6000000 JE 00584940
0058484A 8B45 E4 MOV EAX,DWORD PTR SS:[EBP-0x1C]
0058484D 50 PUSH EAX
0058484E 8B4D DC MOV ECX,DWORD PTR SS:[EBP-0x24]
00584851 E8 3AFEFFFF CALL ValidateScopeTableHandlers //跟进
005846D3 E8 D872FFFF CALL _FindPESection
005846D8 83C4 08 ADD ESP,0x8
005846DB 85C0 TEST EAX,EAX
005846DD 74 5D JE SHORT 0058473C
005846DF F740 24 0000002>TEST DWORD PTR DS:[EAX+0x24],0x20000000 ; 这个区段属性决定了是否能成功的执行 __try
005846E6 74 54 JE SHORT 0058473C
005846E8 8BD6 MOV EDX,ESI