关于几种常用的脱壳方法总结
来源:互联网 发布:数码宝贝3网络进化 编辑:程序博客网 时间:2024/06/04 19:43
最近一直在学习壳的破解,和大家分享一下几种常用的脱壳方法
1.esp定律
使用PEID查壳,了解壳的属性
载入OD,F8单步运行,注意寄存器的窗口
这个时候会发现只有ESP后面对应得数据为红色,我们就应该知道,可以使用ESP定律了,单击红色的ESP右键会出现HW break esp的选项
然后重载运行,单击F8,到达OEP,然后使用OD自带的脱壳插件
(oep的标志)you
2.单步跟踪
同样的壳,不用ESP,F8单步步过,这时会遇到跑飞的情况,单步跟踪注意call和向上的跳转,遇到跑飞的call就重载F7进入,F8不断的向下运行,这时会遇到向上的跳转,在向上跳转的下面一行代码出右键 选择断点运行到选定位置(F4),注意红线(跳转实现)的要在底下设置,灰色的不用管。一直F8继续向下走
走到最后会出现壳的OEP,同第一种方法的最后(强烈推荐)
3.SFX
这种方法是一种自动脱壳的方法,很简单步骤为 OD载入————>找到选项 调试设置中的SFX————>选择 按字节方式跟踪真正入口处 重载等待
不建议用这种方法,有时会很长时间,还是锻炼技术为好
4.模拟跟踪
ALT+M,在.rsrc处下断点,SHIFT+F9返回,然后在.text处在下一断点,同样的办法处理, 在底下的命令行输入tc eip<01013000回车
这种方法用在不知道OEP是什么样子的时候可以试试
5.出口标志
开始按Ctrl+F,输入:popad(只适合少数壳,包括UPX,ASPACK壳),然后按下F2,F9运行到此处。来到大跳转处,点下F8,到达OEP!
6.方法五:最后一次异常法
点击选项——调试选项——异常,把里面的对号全部去掉!CTRL+F2重载下程序,如果一开始程序就是一个跑飞,在这里我们按SHIFT+F9,直到程序运行,记下从开始按SHIFT+F9到程序运行的次数m!CTRL+F2重载程序,按SHIFT+F9(这次按的次数为程序运行的次数m-1次)在OD的右下角我们看见有一个"SE 句柄",这时我们按CTRL+G,输入SE 句柄前的地址!按F2下断点!然后按SHIFT+F9来到断点处!去掉断点,按F8慢慢向下走!到达程序的OEP!
7.秒到OEP
运行,观察右下角的栈窗口,翻到最底下顺着边框找到第一个
然后 反汇编窗口中跟随,然后在反汇编窗口中不断的向上走,走到INT3断点处就会发现,下面就是OEP的标志,在标志处(push xxxx)右键选择在数据窗口中跟随,这时左下角的数据窗口出现
在灰色区点击右键下硬件执行断点,重载直接秒到OEP并脱壳
我所说得办法对一个壳不可能通用,大家要多尝试,脱壳需要的是耐心和经验,另外大家还要熟悉各种语言编写壳的OEP,这有事半功倍的效果。
- 关于几种常用的脱壳方法总结
- 脱壳的常用方法
- 几种常见脱壳方法
- 脱壳的几种方法 详细操作步骤
- (3)常用脱壳方法总结
- 常用手动脱壳方法
- 常用脱壳方法
- 脱壳(中) 脱壳的方法
- 目前自己的几种脱壳方式
- 关于入侵检测系统常用的几种检测方法
- [前端]关于让DIV居中的几种常用方法
- js数组去重的几种常用方法总结
- Data Augmentation的几种常用方法总结
- 关于图片拉伸的几种方法总结
- 关于图片拉伸的几种方法总结
- 关于图片拉伸的几种方法总结
- 关于图片拉伸的几种方法总结
- 关于Android实现滑动返回的几种方法总结
- 关于oracle 实例名大小写的问题
- 使用Objective-C的文档生成工具:appledoc
- CodeForces 666A. Reberland Linguistics【DP】
- ## used
- pinter used
- 关于几种常用的脱壳方法总结
- 学习 Sqlite 的 好网站
- 对iOS图片保护的理解
- 学习笔记之深入浅出MFC 第8章 C++重要性质---异常处理(Exception Handing)
- listview 如何去除ListView中Header、Footer View中的分割线
- 编译Boost 详细步骤
- MySQL分库分表的技巧
- 274. H-Index
- wildfly10 append postgresql driver & datasource