学习: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

时间: 2024-10-06 10:20:38

学习:KiUserExceptionDispatcher之寻找OEP的相关文章

破解之寻找OEP[手动脱壳](1)

OEP:(Original Entry Point),程序的入口点,软件加壳就是隐藏了OEP(或者用了假的OEP), 只要我们找到程序真正的OEP,就可以立刻脱壳. PUSHAD (压栈) 代表程序的入口点 POPAD (出栈) 代表程序的出口点,与PUSHAD相对应,一般找到这个OEP就在附近啦! 常见寻找OEP脱壳的方法: 方法一: 1.用OD载入,不分析代码! 2.单步向下跟踪F8,是向下跳的让它实现 3.遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点—

破解之寻找OEP[手动脱壳](2)

1.使用ESP定律 OD载入后,F8一次,在寄存器窗口的ESP的内容上(如0012FFA4)右键:“在数据窗口中跟随”,到内存数据窗口,将内存数据窗口以HEX 数据形式显示,在刚才的地址起始位置上(如0012FFA4)上右键:“断点”->“硬件访问”->“字”,F9直接运行,再F8一次或二 次,一般会到push ebp这句代码,这句代码所在的地址,就是OEP. 2.二次断点法 OD载入后,点击“M”按钮进入内存映射页面,先在数据(data).资源(rsrc).rdata.idata等区段下访问

学习:脱壳之异常法寻找OEP

一个练手unpackme bitarts 1.直接载入OD,这里记录一种脱壳方法,F9运行程序,查看记录窗口,发现有许多异常处 2.这里需要注意的是红标处,这是最后一个异常,其实这次也可以直接在内存窗口中的代码段(或者是利用排除法)直接下内存断点,然后F9运行,等待对程序的代码段(或者其他)的进行访问/写入的时候下断,这里我们使用的是shark恒老师教的异常法来进行学习.... 3.然后将OD的调式选项进行关闭,然后进行手动运行,手动忽视异常,来到上面图中所标出的最有一个int3的地址0046E

学习:脱壳之内存执行寻找OEP

前言:类似排除法,如果一开始直到OEP的地址话,那么成功脱壳的几率应该百分之百,如果不知道,那自己尝试的时候,还是需要检查检查 1.直接加载入OD,打开内存窗口观察,发现是UPX的壳 内存映射, 条目 22 地址=00401000 大小=00008000 (32768.) 属主=CRACKME_ 00400000 区段=UPX0 包含=输出表 类型=Imag 01001002 访问=R 初始访问=RWE 内存映射, 条目 23 地址=00409000 大小=00001000 (4096.) 属主

学习:脱壳之VB程序快速寻找OEP

VB程序的OEP的特征,一般都是push一个数据到堆栈,然后进行CALL,而这个CALL调用的系统的dll文件,这个是重点要考的 那么就会有一个思路:当加壳完,最后来到OEP处,程序运行会调用系统DLL,那么我们是不是只要给系统的DLL下内存断点,当访问的时候就是不是会让OD捕获异常,使其断下点呢? 1.把一个UPX壳的VB加载OD中,EP为如下,这里选择用特殊OD来调试VB,原因是这个OD只有当访问断点处才会被断点下来,其他就算内存写入就会被断点,这种OD对VB好进行脱壳 2.发现找到系统的D

寻找OEP

1.使用ESP定律 OD载入后,F8一次,在寄存器窗口的ESP的内容上(如0012FFA4)右键:“在数据窗口中跟随”,到内存数据窗口,将内存数据窗口以HEX数据形式显示,在刚才的地址起始位置上(如0012FFA4)上右键:“断点”->“硬件访问”->“字”,F9直接运行,再F8一次或二次,一般会到push ebp这句代码,这句代码所在的地址,就是OEP. 2.二次断点法 OD载入后,点击“M”按钮进入内存映射页面,先在数据(data).资源(rsrc).rdata.idata等区段下访问断点

deep learning 学习笔记(三) 线性回归学习速率优化寻找

继续学习http://www.cnblogs.com/tornadomeet/archive/2013/03/15/2962116.html,上一节课学习速率是固定的,而这里我们的目的是找到一个比较好的学习速率.我们主要是观察 不同的学习速率对应的不同的损失值与迭代次数之间的函数曲线是怎么样的,找到那条最快达到收敛的函数曲线,其对应的学习速率就是我们要找的比较好的学习速率.在这里我们分别取速率值为:0.001,0.01,0.1,1,2,当我们选择完学习速率后,其余的都跟上一节课一样了.本文要解决

脱壳实践之寻找OEP——两次内存断点法

  0x00 前言 对于加壳程序第一件事就是要找到OEP(oringinal Entry point),由于加壳的缘故,当PE文件载入OD或者其他调试软件时进入的的往往是壳程序的入口地址.所以要进行逆向分析第一步就必须找到PE程序的原始入口点.   0x01 壳的加载过程 壳和病毒在某些方面比较类似,都需要比原程序更早获得控制权.壳修改了原程序的的执行文件的组织结构,从而比原程序更早获得控制权,并且并不会影响原程序的正常运行.了解的壳的加载过程对于脱壳加壳异常重要.壳的加载过程如下: 1)保存入

【知识学习】如何寻找真实IP

1.多地点ping查询IP,如果都一样可能没有使用cdn,如果有cdn,尝试海外地点ping查询IP 2.ping一下没有WWW的域名,可能存在真实IP.比如www.baidu.com设置了cdn,那么baidu.com可能没有设置 3.网站存在cdn可以在子域名的C段验证 4.找phpinfo 探针之类的探测消息 5.ddos,把它打到溯源(网上流传,但是这个方法一直没使用过) 6.发送邮件,利用网站的某些功能给自己发邮件,在邮件头可能存在真实IP 7.查询网站历史IP,有的网站一开始没有使用