bsp; movzx eax,byte ptr ds:[eax]
00AC75E2 3B43 2C cmp eax,dword ptr ds:[ebx+2C]
00AC75E5 76 06 jbe short 00AC75ED
00AC75E7 8943 2C mov dword ptr ds:[ebx+2C],eax
00AC75EA EB 01 jmp short 00AC75ED
00AC75EC 6933 C08A433B imul esi,dword ptr ds:[ebx],3B438AC0
00AC75F2 3BF0 cmp esi,eax----------------在这里下F2断点,F9运行,观察esi的值,并注意数据框IAT
00AC75F4 75 5E jnz short 00AC7654---------这里也下断,看不同数值,跳转是否是成功
00AC75F6 EB 01 jmp short 00AC75F9
每人的机子不一样数值也不一样,我这里的esi有三个值96,77,89(这几个值好象每天都不一样),其中esi的值为77,89时00AC75F4处的跳转成立,
但两个数中只有当esi=77时才会对IAT进行加密,因此只要将77改为89就可以避开IAT加密了.
好,就在00AC75F4进行修改,先用OD 插件memory ma
nage申请一个内存
空间,lchhome用的是01640000,为了方便我也用01640000,
把00AC75F4 改为:
00AC75F4 75F4 - E9 078A3500 JMP 01640000 然后下F2断点,F9运行中断后,F7跟进
把修改
代码写进去:
01640000 - 0F84 F37548FF je 00AC75F9------这个是00AC75F6 处jmp的
地址
01640006 81FE 89000000 cmp esi,89
0164000C - 0F84 427648FF je 00AC7654
01640012 BE 89000000 mov esi,89
01640017 - E9 387648FF jmp 00AC7654
写好
代码后,取消00AC75F2及00AC75F4 两处的断点,F9运行中断在00AC7989,中断后取消断点
看看数据窗口,是不是得到所有的IAT了?起始4062E4,终点406520.
004062E4 77DA2410 ADVAPI32.RegQueryValueExA
004062E8 77DA17D8 ADVAPI32.RegCloseKey
004062EC 77DB63B1 ADVAPI32.RegSetValueExA
004062F0 77DA23D9 ADVAPI32.RegOpenKeyA
004062F4 77DA28BB ADVAPI32.RegCreateKeyA
004062F8 00000000
004062FC 77C4513D GDI32.GetObjectA
00406300 77C44B71 GDI32.GetDeviceCaps
00406304 77C4889D GDI32.CreateFontIndirectA
00406308 77C41B98 ASCII "U嬱Q僥?
0040630C 77C6DCB4 GDI32.AbortDoc
00406310 77C5472B GDI32.EndDoc
00406314 77C43607 GDI32.DeleteDC
00406318 77C5483B GDI32.StartPage
0040631C 77C54D16 GDI32.StartDocA
00406320 77C5460B GDI32.EndPage
00406324 77C48333 GDI32.GetTextExtentPointA
00406328 77C53BB4 GDI32.CreateFontA
0040632C 77C543A2 GDI32.SetAbortProc
00406330 77C41EEB GDI32.SetBkMode
00406334 77C45011 GDI32.SetMapMode
00406338 77C483C6 ASCII "U嬱冹H僥?
0040633C 77C4A9F8 ASCII "U嬱Q僥?
00406340 77C4AAF9 GDI32.SetViewportExtEx
00406344 77C48D75 GDI32.LPtoDP
00406348 77C47080 GDI32.CreateDCA
将1640000处的修改
代码及00AC75F4 75F4 - E9 078A3500 JMP 01640000的修改
全部取消修改.然后shift+F9到最后一次异常并用CODE断点法到达OEP处
到达OEP后,
搜索一下89,45,F0,B8,00,07,00,00 到达这里(也可以直接CTRL+G 00AC7190,前面00AC每个机子可能是不同的,但后面的7190是一样的):
00AC7188 8945 F0 mov dword ptr ss:[ebp-10],eax
00AC718B B8 00070000 mov eax,700
00AC7190 E8 B7B3FDFF call 00AA254C---------------这里要修改
00AC7195 8945 E4 mov dword ptr ss:[ebp-1C],eax
00AC7198 C645 EF 00 mov byt