是否为messageboxa或registerhotkey(这个比较少见j)? 是则替换api地址。
下面检查dll的映射地址是否为kernel32.dll或user32.dll。
这里通不过检查,就不做处理,直接把api的地址保存到iat了。否则:
写iat:
用脚本执行到这一段,patch掉4处的跳转,在处理完全部dll的地方下断,用importrec得到完整的iat,全部有效。
size = 6e3828 – 6e3140 = 6e8
注意此时oep不对。但iat已经拿到了。先把tree保存起来。
3. 寻找oep
得到iat后,试试忽略所有异常,到这里已经可以在ollydbg下执行了。试了一下,关闭其它异常,只留下int 3,还要shift-f9 60次才能运行l。这样一步步跟不把人累死。算了,先换省力的办法吧。
干脆,在执行目前的script停下后,忽略所有异常。对code section下内存访问断点。
发表评论