下面是我的脱壳步骤:
用peid查壳,是EP 2.0 -> CoDe_Inside这个壳
然后用OD载入
00EC6EE4 > 6A 73 PUSH 73
00EC6EE6 60 PUSHAD
00EC6EE7 E9 01010000 JMP BfServer.00EC6FED
00EC6EEC DAA9 7C8F9226 FISUBR DWORD PTR DS:[ECX+26928F7C]
00EC6EF2 A6 CMPS BYTE PTR DS:[ESI],BYTE PTR ES:[EDI]
00EC6EF3 0879 9B OR BYTE PTR DS:[ECX-65],BH
00EC6EF6 D8C3 FADD ST,ST(3)
00EC6EF8 8C3E MOV WORD PTR DS:[ESI],SEG? ; 未定义的段寄存器
00EC6EFA 56 PUSH ESI
00EC6EFB A7 CMPS DWORD PTR DS:[ESI],DWORD PTR ES:[ED>
00EC6EFC E7 75 OUT 75,EAX ; I/O 命令
00EC6EFE 1126 ADC DWORD PTR DS:[ESI],ESP
隐藏OD,然后忽略所有的异常,按shift+f9四次到达
711A9574 90 NOP
711A9575 64:8F05 0000000>POP DWORD PTR FS:[0]
711A957C C3 RETN
711A957D C3 RETN
711A957E 8BC0 MOV EAX,EAX
711A9580 54 PUSH ESP
711A9581 E8 56EBF7FF CALL V2201105.711280DC ; JMP 到 kernel32.OutputDebugStringA
711A9586 CC INT3
711A9587 CC INT3
然后观察堆栈
016BFE44 016BFE70 指向下一个 SEH 记录的指针
016BFE48 711A94A9 SE处理程序
016BFE4C 711AFEFE 返回到 V2201105.711AFEFE 来自 V2201105.711A94A4
016BFE50 016BFE64
016BFE54 00000000
016BFE58 016BFF70
然后按ctrl+g输入711A94A9,然后下断点,shirft+f9断下来
来到这里
711A94A9 53 PUSH EBX