2) call 46261c
到这里的stolen code:
从这里开始,不能图省事了。要追出全部的stolen code,必须跟(必须确保上一次pushad和下一次popad时的环境一致,才不会丢代码)。先试直接拦截div 0异常,注意后面是否有popad。如果两次的环境不一致,则必须单步跟l。
另外,追stolen code不是一次完成的,所以有些图中寄存器和堆栈中的数据对不上,不必管它。
3) 0073bc47
4) 0073c558
5) 第1次call 462634
这个函数有2个参数l。
这是最后一次后面存在popad的div 0异常。看看是如何回到原程序的。
在73d872忽略所有异常,对code section下内存访问断点。中间在kernel32中有一次内存访问异常。
最后一次div ebx在73dbe1。单步跟到这里:
73de38破坏前面代码。
至此修复所有stolen codes,将前面的6部分和fasle oep的2个call合在一起。
发表评论