首先我是脱壳新人,也认真学习了一些大神的文章和操作,但是对于脱壳后的IAT修复脚本一直有个困惑不太理解,我看这些脚本的原理就是在代码段找call,然后将EIP设置过去,单步运行找到真正的API,然后修复调用。这里我一直有个最大的困惑,如果这样随意设置EIP,那么跟进去以后,遇到一些没有初始化或者非法的变量地址,岂不是分分钟嗝屁?但我从来没见有人提过这个问题,不知道是不是我的理解有问题呢,还请大神不吝赐教,谢谢了。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
拍拖 脚本中可以设置异常捕获的,如果发生了异常则跳转到某一个标签,既然修复脚本中设置了EIP后运行,肯定会考虑保存寄存器和堆栈,然后在IAT查找过程中发生异常时用于还原。