目標程序是VB寫的,記得以前有一個巧方法到達OEP,但是忘記了,還是按部就班吧
單步跟蹤到這個地方:
如果想要在xor ecx,ecx處F4的話程序會跑飛,在這裏
在這裏可以注意到00404BEE處的je是一個很大的跳轉,而其他地方都走過發現全部都不會到OEP,所以就是他了
00404BE7 AC lods byte ptr [esi]
00404BE8 84C0 test al, al
00404BEA ^ 75 FB jnz short 00404BE7
00404BEC FE0E dec byte ptr [esi]
00404BEE ^ 74 F0 je short 00404BE0
00404BF0 79 05 jns short 00404BF7
00404BF2 46 inc esi
00404BF3 AD lods dword ptr [esi]
00404BF4 50 push eax
00404BF5 EB 09 jmp short 00404C00
00404BF7 FE0E dec byte ptr [esi]
00404BF9 - 0F84 61C5FFFF je 00401160
00404BFF 56 push esi
00404C00 55 push ebp
00404C01 FF53 04 call dword ptr [ebx+4] ; Getproc
00404C04 AB stos dword ptr es:[edi]
00404C05 ^ EB E0 jmp short 00404BE7
00404C07 33C9 xor ecx, ecx
這個版本的FSG直接用OD的插件就可以dump+修復輸入表了