手动查找IAT出错之后。。
作 者: lijingli
说明:很简单的,大家都知道的。我只是想分享一下我的学习方法,希望大家多指正。
我说说我的学习方法,希望能给和我一样的菜鸟朋友一点启示,可以进步快点。
1.有时间,心情好的话,整理一下电脑里的资料,方便以后学习。
2.把视频教程转化为文字(可以减少其占有的磁盘空间^__^),可以加深自己的理解
3.把论坛出的书好好看一遍,如果你真的想了解WHY要那样做的话
4.安心的把汇编看看 然后看看WIN32汇编
5.多动手做。
6.经常回头看看以前不明白的东西,收获会很多的。
这个是我现在的学习方法,觉得真的比较管用。
现在还是转入正题吧。
有的壳需要手动查找IAT.表现为:
1.如果ImpotREC修复程序时候,自动查找的API过少 则说明有问题
2.修复之后运行程序的时候说:无法定位程序输入点 API名字 于动态连接库 DLL名 上。
这时候就要我们自己手动查找IAT了,因为ImpotREC的自动查找IAT出错了。需要我们自己找,然后填进去 。
手动查找IAT有两种方法:
1.查看ImpotREC中追踪到的函数地址,如:

rav:0000635C kernel32.dll ord:039D name:_hwrite
则_hwrite的地址在0040635c (加上基址) 则输入表0040635c区域
在OD里的内存窗口 CTRL+G 输入:40635c 就可跳到输入表
2.在OD里 找 CALL [********] 即JMP到IAT的CALL (可以搜索二进制:FF15或FF25,因为左右的CALL其实是JMP到一个地址的)
然后在在OD里的内存窗口 CTRL+G 输入:[]中的地址 跳到输入表
然后右键选择 长型 地址 即可看见IAT了
