寻找OEP

在OD中打开00_upx.exe之后,到达的地方是PUSHAD,这个时候下一个断点,直接运行到这里,然后单步步过,再取消掉下好的断点:

此时,在右侧ESP处下一个访问断点:

 

下面黄色区域是修改堆栈的操作:

 

 而下面的这个jmp就会直接跳转到OEP:

下面是jmp到达的地方:

 运行到这里之后直接右键选择dump:

 进行dump,取消掉重建输入表:

 

dump完成之后用专用工具去修复它:

 

 进程选择当前的exe,然后修改OEP,将旁边的两个按钮以此按下:

 选中无效的输入表函数,点击无效函数按钮,剪切无效函数:

 剪切掉之后转储:

 转储的时候选择之前dump的.exe,然后确定,在去文件夹里打开修复的文件,就可以正常运行了!如果不修复就无法运行起来

 方法二(用x32dbg来调):

 

 x32dbg会自动选择是32位还是64位,当前eip指向的是系统断点的位置,点击运行,到达程序入口点:

这里是壳的入口点,f8单步一下,选中esp右键-在内存窗口中转到

 

 选中内存区域,右键-设置一个硬件访问断点-断点-读写断点-4字节

然后f9运行,到达跳转到OEP的位置了,通过jmp找到OEP

 

 到达OEP:

 到达之后找到插件scylla:

 OEP地址会被自动读取出来,进程也是自动的,然后点击IAT Autosearch去查找IAT,原理就是从OEP开始搜索,直到找到IAT的调用函数

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值