手动查找 IAT 的方法!!!

 

一个这样的壳: MoleBox 2.x.x -> Mole Studio

是用 汇编写的;

 

*****************************

运用 ESP 定律 达到程序的 OEP (如果在这个过程中,程序出现异常,就将它们添加进异常,继续运行程序,到达OPE,当看到 -jmp后,F7 进入就到了),正常脱壳后,发现程序无法运行。。修复时,有两个无效的指针。用等级1修复后,似乎好了,但并没有修好。。不能运行。。

 

这时,我们可以断定,应该是还有 IAT 没有处理晚(没解码),于是,我们右键,查找--二进制字串;*********

 

向里面 输入 FF25 这是 IAT 所特有的; IAT 有两种:1:有 JMP 组成 2:有 CALL 组成;********

 

当看到:

 

004014BE - FF25 10204000 jmp dword ptr [402010] ; CrackME2.004830F5 ********

004014C4 - FF25 0C204000 jmp dword ptr [40200C] ; CrackME2.00482D45 ********

004014CA - FF25 08204000 jmp dword ptr [402008] ; kernel32.lstrlenA

004014D0 - FF25 20204000 jmp dword ptr [402020] ; user32.DialogBoxParamA

004014D6 - FF25 18204000 jmp dword ptr [402018] ; user32.EndDialog

004014DC - FF25 1C204000 jmp dword ptr [40201C] ; user32.GetDlgItem

004014E2 - FF25 34204000 jmp dword ptr [402034] ; user32.GetDlgItemTextA

004014E8 - FF25 24204000 jmp dword ptr [402024] ; user32.LoadBitmapA

004014EE - FF25 28204000 jmp dword ptr [402028] ; user32.LoadIconA

004014F4 - FF25 2C204000 jmp dword ptr [40202C] ; user32.MessageBoxA

004014FA - FF25 30204000 jmp dword ptr [402030] ; user32.SendMessageA

00401500 - FF25 00204000 jmp dword ptr [402000]

像这样的东西后;

 

我们确定找到了 IAT ; 同时,我们发现:

004014BE - FF25 10204000 jmp dword ptr [402010] ; CrackME2.004830F5

004014C4 - FF25 0C204000 jmp dword ptr [40200C] ; CrackME2.00482D45

 

CrackME2.004830F5 和 CrackME2.00482D45: 它们是没解码的标志;

 

于是,我们记录下:dword ptr [402010] 和 dword ptr [40200C] ,他们 的内存偏移地址;

 

重新载入程序后***************:dd 402010 和 dd 40200C 这个,然后对它们进行 -------内存写入;******

F9运行后,观察数据窗口,当出现函数时,停止 F9 ,记下函数名字;*********

 

得到:

004014BE - FF25 10204000 jmp dword ptr [402010]

eax=7C81CAFA (kernel32.ExitProcess)

ds:[00402010]=000020C8

 

004014C4 - FF25 0C204000 jmp dword ptr [40200C]

eax=7C80B731 (kernel32.GetModuleHandleA)

ds:[0040200C]=000020D6

 

ExitProcess 和 GetModuleHandleA 就是没有解码的函数;于是我们就可以用 Import REC 来修复那两个指针了;

 

注意修复的时候,地址要与函数的相一致***************

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值