此时堆栈内容是:
0012E418 00000216
0012E41C 0012E42C Pointer to next SEH record
0012E420 01971B7B SE handler ;注意这###############
0012E424 01970008
0012E428 000000FF
所以Ctrl+G 到01971B7B,F2下断,Shist+f9过异常,然后中断于此:
01971B7B /EB 0B jmp short 01971B88
01971B7D |0000 add byte ptr ds:[eax], al
01971B7F |FF00 inc dword ptr ds:[eax]
01971B81 |0000 add byte ptr ds:[eax], al
01971B83 |0000 add byte ptr ds:[eax], al
01971B85 |0000 add byte ptr ds:[eax], al
01971B87 |00EB add bl, ch
01971B89 03C7 add eax, edi
01971B8B 84E8 test al, ch
接着首先取消断点,然后在400000段上下内存访问断点,F9运行,中断在
0199E8D3 8A06 mov al, byte ptr ds:[esi]
0199E8D5 46 inc esi
0199E8D6 47 inc edi
0199E8D7 8843 0F mov byte ptr ds:[ebx+F], al
0199E8DA 8A46 FF mov al, byte ptr ds:[esi-1]
0199E8DD 55 push ebp
0199E8DE E8 00000000 call 0199E8E3
0199E8E3 5D pop ebp
0199E8E4 81ED 0D470000 sub ebp, 470D
0199E8EA 8A8D 50030000 mov cl, byte ptr ss:[ebp+350]
0199E8F0 5D pop ebp
0199E8F1 32C1 xor al, cl
0199E8F3 8847 FF mov byte ptr ds:[edi-1], al
0199E8F6 8BC5 mov eax, ebp
0199E8F8 4D dec ebp
0199E8F9 85C0 test eax, eax
0199E8FB ^ 75 A4 jnz short 0199E8A1
0199E8FD 33C0 xor eax, eax
0199E8FF 5D pop ebp
0199E900 5F pop edi
0199E901 5E pop esi
0199E902 5B pop ebx
0199E903 C2 1400 retn 14