加密壳的一般脱壳步骤与实例演示
来源:互联网 发布:appscan sql文件注入 编辑:程序博客网 时间:2024/05/17 02:24
今天主要是深入的了解汇编语言,要想反编译没这个可是不行的啊。当然,这也不是一天两天可以成功的,继续努力。
一.如何分辨加密壳:
壳分为加密壳和压缩壳,压缩壳目的是减少软件的体积便于在网上传播,
而加密壳目的是防止软件被脱壳和破解,所以加密壳全部有反跟踪代码
,会有许多SEH陷阱使OD调试时产生异常.也就是说在跟踪过程中很容易
导致程序运行,使你无法跟踪分析.而压缩壳相对比较容易,脱壳也比较
简单,一般没异常出现.
二.脱加密壳的相关知识要点:
在加密壳中,变形CALL比较多,遇到变形call要F7代过,区别是否是变形Jmp的一个简单方法是比较call的目标地址和当前地址,如果两者离的很近,一般就是变形Jmp了,用F7走。对于Call的距离很远,可以放心用F8步过.加密壳中F7用的比较多,压缩壳中一般用F8单步跟踪就可以搞定.
脱加密壳,用OD载入,钩掉所有异常(不忽略任何异常,除了忽略在KERNEL32 中的内存访问异常打勾.数着用了多少次Shift+F9程序运行,显然最后一次异常后,程序会从壳跳到OEP开始执行,这就是我们寻找OEP的一个关键,如果程序 Shift+F9后直接退出,很明显加密壳检测调试器,最简单的应付方法就是用OD插件隐藏OD.
单步异常是防止我们一步步跟踪程序,这一系列的异常虽然干扰我们调试,但也给我们指明了一条通路,就是Shift+F9略过所有异常,然后找到最后一处异常,再它的恢复异常处下断点,跟踪到脱壳入口点.
三.加密壳的一般脱壳步骤:
介绍:这种方法一般用于加密壳,这是脱加密壳的一种通用方法.
第一步:用OD打开程序,点击选项——调试选项——异常,把里面的√全部去掉!CTRL+F2重载下程序.
第二步:接着我们按SHIFT+F9,直到程序运行,记下从开始按SHIFT+F9到程序运行的次数n.
第三步:重载程序,再按SHIFT+F9,这次按的次数为上次让程序运行时的次数的n-1次.
第四步:此时观察OD的右下角有一个"SE 句柄",这时我们按CTRL+G,输入SE 句柄前的地址!来到这个地址.
第五步:在这里,按F2下断点!然后按SHIFT+F9来到断点处!
第六步:这时候我们已经跳过了所有异常,然后去掉断点,按F8慢慢向下跟踪很快就到达OEP了.
修复----用LORDPE重建PE
- 加密壳的一般脱壳步骤与实例演示
- 360早期壳的脱壳步骤
- 完美脱壳组装PE的一般步骤(Obsidium1.3.6.4 DEMO 主程序)
- Android SO 加壳(加密)与脱壳思路
- Android SO 加壳(加密)与脱壳思路
- AutoCAD.NET中添加图形对象的基本步骤与实例演示
- Apk脱壳圣战之---脱掉“爱加密”的壳
- 浅谈壳的加载步骤及手动脱壳
- 浅谈壳的加载步骤及手动脱壳
- 加壳与脱壳的原理
- 演示 Calendar 的一般操作
- DebugVista的一般步骤
- DebugVista的一般步骤
- 算法的一般步骤
- 一般的安装步骤
- 数据库连接的一般步骤
- 再发一个某加密的脱壳视频
- 个人总结的一个VMP脱壳步骤
- 向多个Server上拷贝文件
- 系统程序员成长计划-组合的威力(四)
- java连接mysql
- 关于数据库恢复后Service Broker不能使用的问题
- Erlang程序的跨平台问题
- 加密壳的一般脱壳步骤与实例演示
- snmp监控window
- C#命名规范
- ARM处理器上电/复位操作
- 深入浅出C++之private/public/protected
- 将Htm和Html文件图标改回默认图标
- Java 小例子:通过 Socket 发送和接收文件
- request.getSession()&request.getSession(boolean)
- UltraWebGrid页面加载时选中第一行