我们在00E6E9F2这个地址右击----数据窗口跟随---内存地址,来查找下IAT,
004ADFFC //IAT的启始地址
..........
...........
004AE6C4 //IAT的结束地址
我们计算下RAV:ADFFC RAV SIZE:6C8在这里我们又可以补一些代码了,代码如下:
call 004AE350 // ⑤
mov ecx,dword ptr ds:[esi+10] //原封不动
------------------------------------------------------------------------------------------------------
我们继续在代码段下断,SHIFT+F9运行,这里需要中断好几次,然后就来到了如下的程序段,这里分析下,免的代码混淆,我们往上看看,
00475868 DB C1 //这里就是OEP了,
00475869 DB 47
0047586A DB 70
0047586B DB DC
0047586C DB 21
0047586D DB F2
0047586E DB 7C
0047586F DB 4C
00475870 DB 65
00475871 DB 4D
00475872 DB B3
00475873 DB 4A
00475874 DB 57
00475875 DB 8D
00475876 DB B5
00475877 DB E3
00475878 DB 61
00475879 NOP
0047587A DB A2
0047587B DB 14
0047587C DB 25
0047587D DB 7C
0047587E DB A9
0047587F DB 6F
00475880 DB 18
00475881 DB 02
00475882 DB 8A
00475883 DB 27
00475884 7DB 7F
00475885 DB 50
00475886 DB 28
00475887 DB 63
00475888 DB 34
00475889 DB 2B
0047588A DB CE
0047588B DB 1C
0047588C DB 6D
0047588D DB D0
0047588E DB 59
00475890 DB A5
00475891 DB FE
00475892 DB 6B
00475893 DB A1
00475894 DB 31
00475895 DB D4
00475896 DB 37
00475897 DB B3
00475898 XOR AL,7B
0047589A . MOV DWORD PTR DS:[4D996C],EAX
0047589F . MOV EDX,DWORD PTR DS:[ESI+8]
004758A2 . MOV DWORD PTR DS:[4D9970],EDX
004758A8 . MOV ESI,DWORD PTR DS:[ESI+C]
004758AB . AND ESI,7FFF
004758B1 . MOV DWORD PTR DS:[4D9964],ESI