能力值:
(RANK:350 )
2 楼
外壳入口点处的环境(堆栈和各寄存器的值等)和真正代码的当环境一致?
能力值:
( LV2,RANK:10 )
3 楼
不知道对不对,我使用动态加载那个dll,结果执行完下面的代码后,返回的首位置竟然不是dll的入口点,为什么呢?
7C801DEB FF75 08 PUSH DWORD PTR SS:[EBP+8] 7C801DEE E8 ABFFFFFF CALL kernel32.LoadLibraryExA 7C801DF3 5F POP EDI 7C801DF4 5E POP ESI 7C801DF5 5B POP EBX 7C801DF6 5D POP EBP 7C801DF7 C2 0400 RETN 4
能力值:
( LV2,RANK:10 )
4 楼
dll入口点为100302B0,
但是从上面的代码retn后到了100302EA
100302B0 A0 34200310 MOV AL,BYTE PTR DS:[10032034]
100302B5 84C0 TEST AL,AL
100302B7 0F84 D9020000 JE 10030596
100302BD BF 50200310 MOV EDI,10032050 ; ASCII "KERNEL32.dll"
100302C2 83C9 FF OR ECX,FFFFFFFF
100302C5 33C0 XOR EAX,EAX
100302C7 68 38200310 PUSH 10032038
100302CC F2:AE REPNE SCAS BYTE PTR ES:[EDI]
100302CE F7D1 NOT ECX
100302D0 49 DEC ECX
100302D1 51 PUSH ECX
100302D2 68 50200310 PUSH 10032050 ; ASCII "KERNEL32.dll"
100302D7 E8 F40A0000 CALL 10030DD0
100302DC 83C4 0C ADD ESP,0C
100302DF 68 50200310 PUSH 10032050 ; ASCII "KERNEL32.dll"
100302E4 FF15 00100310 CALL DWORD PTR DS:[10031000] ; kernel32.LoadLibraryA
100302EA 8BF0 MOV ESI,EAX ; kernel32.7C800000
100302EC BF 50200310 MOV EDI,10032050 ; ASCII "KERNEL32.dll"
100302F1 83C9 FF OR ECX,FFFFFFFF