学习:KiUserExceptionDispatcher之寻找OEP

程序:UnPackMe_PELock1.06.d.exe

需要知道的:KiUserExceptionDispatcher的领空的当前堆栈地址ESP+0x14就是异常触发地址,这个函数是系统派发异常函数,也就是说所有异常都要经过该函数来派发,那么该函数中的参数也就会指向异常的位置,也就是ESP+0x14

方法:KiUserExceptionDispatcher也可以说是最后一次异常法的升级版,原因是如果异常数量过多的话就可以用这个最后一次异常法来进行定位OEP,手动的话工作量太大

1、运行程序,查看记录窗口的内容如下

2、利用最后一次的异常来定位,发现最后一次的异常地址为003D6744,那么我们就可以给KiUserExceptionDispatcher函数设置条件记录断点,条件如下

3、然后F9进行运行,发现成功断下,此时靠近OEP,然后对程序代码段进行内存断点,F9进行成功来到OEP

原文地址:https://www.cnblogs.com/zpchcbd/p/12111737.html