背景

破解的第一步是判断所要破解的程序是否加壳了,如果程序加壳了,需要将壳脱掉再来破解,所以脱壳是破解的第一步

单步跟踪法的步骤

(1)用OD载入,点“不分析代码”

(2).单步向下跟踪F8,实现向下的跳。也就是说向上的跳不让其实现(通过F4)

(3)遇到程序往回跳的(包括循环),我们在下一句代码处按F4(或者右健单击代码,选择断点——>运行到所选)

(4)绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现

(5)如果刚载入程序,在附近就有一个CALL的,我们就F7跟进去,不然程序很容易跑  飞,这样很快就能到程序的OEP

(6)在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入

(7)一般有很大的跳转(大跨段),比如 jmp XXXXXX 或者 JE XXXXXX 或者有RETN  的一般很快就会到程序的OEP

注:在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键-->“跟随”,然后F2下断,Shift+F9运行停在“跟随”的位置,再取消断点,继续F8单步跟踪。一般情况下可以轻松到达OEP

实战

1 查壳

用PEID等查壳工具查看所需要破解的程序是否加壳了,加的什么壳。PEID的工作原理大家看看PEID目录下的userdb.txt文件就知道了,PEID通过壳的入口特征码进行辨认程序是加了什么壳

用PEID查壳的结果如下图,可以看出程序加了ASPack2.12的壳

2 寻找OEP

(1)用OD载入该程序

(2)使用F8单步补过,在靠近入口处的第一个call(call 0040D00A)使用F7单步步入,  在call子程序中使用F8单步补过,没有发现有用的信息,在靠近入口的第二个call(call   0040D014使用F7单步步入,否则程序会跑飞,下图是刚进入第二个call处的截图

(2)根据"单步跟踪法"中的原则,一步一步调试,遇到向上跳转,则将鼠标点到该跳转的下一行,然后F4运行到这一行(如果让程序向上跳转,则可能程序往反方向跳转,无休无止,也就找不到OEP),向下跳转则不用处理,需要注意的是绿色线条表示跳转没实现,不用理会,红色线条表示跳转已经实现,在下面的注释窗口会有该提示,下图就是一个没有实现的跳转

(2)按照步骤(3)中的方式执行很快就会看到下图现象,出现了popad这条指令,然后  push 004010CC,将004010CC这个地址入栈,后面紧跟着一个retn,程序就会返回到  004010CC这个地址继续执行程序,004010CC与当前地址0040D3BF之间有个很大的跳转,由此可以判断马上将到达程序的OEP,

(2)在retn上在按下F8单步步过即可到达OEP(OEP地址004010CC)

3 脱壳(Dump)

(1)在OEP(OEP地址004010CC)处使用OD插件脱壳,在004010CC上点击鼠标右键,  选择该菜单下的Dump debugged process,会弹出如下对话框,从下图最底Rebuild   Import选项下可以看出该插件提供了两种脱壳方式

(2)分别用Method1和Method2脱壳,点击Dump按钮然后选择文件的保存位置即可脱壳

(3)当然也可以用LordPE来脱壳,选中要脱壳的进程notepad.exe,因为使用OD加载的时候已经启动该进程

(4)在该进程上右键,选择该菜单下的修正镜像大小,结果如下图

(5)在该进程上右键,选择该菜单下的完整转存(也有的翻译是完全脱壳),会弹出文件保  存位置对话框,填好文件名称后保存即可,成功后会弹出如下对话框

(6)再次用PEID检测unpack1.exe、unpack2.exe、unpack3.exe,会发现程序已经是无壳的

(7)分别打开已经脱壳完成的unpack1.exe、unpack2.exe、unpack3.exe,会发现unpack3.exe运行后出现如下错误,则在该种情况下需要修复资源

4 修复

(1)使用到的修复工具是ImportFix,打开ImportFix,打开notepad.exe这个进程,因为用OD载入加壳程序notepad.exe后,会产生notepad.exe这个进程(此时需要OD中将程序调试运行到OEP处,即004010CC处,否则在下面的自动查找IAT会失败)

(2)将OEP那一栏修改成刚才在OD中找到的OEP地址000010CC,然后点击自动查找  IAT,则RVA和大小这一栏中数据会改变

(3)点击确定后,点击获取输入表按钮,结果如下图,其中找到的输入表函数里面的函数  是程序运行需要的一些系统API

(4)点击显示无效函数后,发现没有,在点击修复转存文件按钮,选择要修复的unpack3.exe  文件

(5)完成后会在记录这一列表框中显示结果,修复后的文件保存名字为unpack3_.exe

(6)打开unpack3_.exe,发现程序能正常运行,则修复成功

文中用到的加壳程序下载地址:http://download.csdn.net/detail/qiurisuixiang/4363770

破解入门(四)-----实战单步跟踪法脱壳相关推荐

  1. 破解入门(六)-----实战“内存镜像法”脱壳

    引用:http://blog.csdn.net/qiurisuixiang/article/details/7660448 内存镜像法的步骤 (1)用OD打开软件 (2)点击选项--调试选项--异常, ...

  2. 破解入门(五)-----实战ESP定律法脱壳

    ESP定律法的步骤 ESP定理脱壳(ESP在OD的寄存器中,我们只要在命令行下ESP的硬件访问断点,就会一下来到程序的OEP了!) (1)开始就点F8,注意观察OD右上角的寄存器中ESP有没突现(变成 ...

  3. 破解入门(三)-----脱壳的常用方法

    什么是壳 大家应该先明白"壳"的概念.在自然界中,我想大家对"壳"这东西应该都不会陌生了,植物用它来保护种子,动物用它来保护身体等等.同样,在一些计算机软件里也 ...

  4. Docker从入门到实战(四)

    一步一步走,写小白都能看懂的文章,将持续更新中,敬请期待! Docker从入门到实战(四) Docker基础 一:Docker基本操作 一般情况安装Docker之后系统会自动创建一个Docker的用户 ...

  5. python爬虫从入门到实战笔记——第四章Scrapy框架

    推荐阅读: python爬虫从入门到实战笔记--第一章爬虫原理和数据爬取 python爬虫从入门到实战笔记--第二章非结构化数据和结构化数据的提取 python爬虫从入门到实战笔记--第三章动态HTM ...

  6. 微信小程序快速入门+四个实战小程序(一)——入门准备

    一)系列达成目标介绍 二)小程序创建的准备 1)注册开发者账号 2)下载编译器 ------------------------------------------------------ 一)系列达 ...

  7. OllyDBG破解入门教程[图文]教程

    OllyDBG破解入门教程[图&文]教程 OllyDBG破解入门教程![图&文]2008-11-06 18:50 一.OllyDBG 的安装与配置  OllyDBG 1.10 版的发布 ...

  8. 软件破解入门(暴力破解CrackMe)

    所谓暴力破解,就是通过修改汇编代码进而控制程序的运行流程,达到不需注册码也能正常使用软件的目的.相对于解出算法进而编写注册机,暴破的技术含量是比较低的.但也正是因为一本05年的杂志上介绍"暴 ...

  9. CSDN - 盛洪宇(技术胖) - Vue2.x从入门到实战

    Vue 全家桶 - Webpack / Vue / Vue-cli / Vue-router / Vuex / Axios / Element UI CSDN - 盛洪宇(技术胖) - Vue2.x从 ...

最新文章

  1. 复杂个人信息输出程序python_Python高级技巧:用一行代码减少一半内存占用
  2. python【蓝桥杯vip练习题库】ALGO-87字串统计(暴力)
  3. linux 索引代码的函数定义,Linux网络接口操作之if_nameindex
  4. Java各种数据类型的转换
  5. 简单实现顶部固定,中部自适应布局
  6. 新型冠状病毒传染性有多强?何时达到疫情峰值?来看一下数学和统计建模结果...
  7. spring_01概念及案例
  8. (Python第七天)实例二玩转函数
  9. 耦合层:撮合物联网的理论与实践牵手的“月老”
  10. java is instance of_详谈Java中instanceof和isInstance的区别
  11. (未完毕)电子设计省赛--2013年国赛题
  12. Goland 学习笔记之--govendor
  13. RabbitMQ消息可靠性传输示例
  14. 毕业设计 - 题目: 基于协同过滤的电影推荐系统 - Django 在线电影推荐协同过滤
  15. 敏捷开发 建立愿景、使命_使用愿景板创建敏捷产品策略的10条技巧
  16. ubuntu清理垃圾
  17. 国内外Java学习论坛汇总
  18. linux系统支持网银吗,Linux系统能使用网银吗?Linux网银使用方法介绍
  19. 【python】自动登录51cto家园
  20. 那场泡沫破碎的一刻,已宣判了一生。

热门文章

  1. ata计算机五级操作员,ATA计算机等级考试理论(总)资料.pdf
  2. 74HCT04D基本参数介绍
  3. 深圳计算机电缆,计算机电缆加工ZB-DJVP2V-深圳
  4. IOS 学习笔记 iphone屏幕分辨率统计(全面)
  5. 西瓜书第一、二章节笔记
  6. android 图片拼接工具,拼接图片工具app
  7. vue实现 【echarts中 “7种” Pie饼图图例】组件的封装
  8. 7-2 英文单词排序 (25分)
  9. Servlet生命周期及请求、响应
  10. requests二次爬取全国邮编