第三课 用OD脱壳的基本方法
用OD脱壳的基本方法
概论 壳出于程序作者想对程序资源压缩、注册保护的目的,把壳分为压缩壳和加密壳两种。 如:UPX ASPCAK TELOCK PELITE NSPACK ... 加密壳:加密壳是程序输入表等等进行加密保护。当然加密壳的保护能力要强得多! 二、常见脱壳方法 1.PUSHAD (压栈) 代表程序的入口点, Btw:例如:对于ASPACK,近call用F7进入(否则会跑飞),如何定义近call呢? 我自己对于近call的判断方法是: 第一个跑飞的call地址是01013002,它call的地址是0101300A,(相隔7)距离非常近。 第二个跑飞的call地址是0101300E,它call的地址是01013014,(相隔4)距离非常近。 4,.在跟踪的时候,如果运行到某个CALL程序就运行的,就在这个CALL中F7进入 Btw:当在F4运行到所选的时候不能运行(跑飞),如:果是NOP空数据中,那么就在空数据的下一行(第二个nop;如果是CALL,我们就像上面一样下一个位置再下断点(或者F7进去走一下,这样就不会跑飞了))F4。 Tips:意外跑飞后,如果再重新载入然后再重新一步一步的跟的话那样多做了无用功。解决办法:跑飞后在跑飞点上面附近的位置F2下一个断点,然后再关闭跑飞的程序,再重新载入,最后F9就直接就运行到上面我们设的断点那里去了(然后记得删去断点),这就很方便了。另:如果是nop跑飞的话,就在下一个nop上下断点就好了(该处就一个nop的话,那就只有在nop下一条指令处下断点了(不管它是什么指令了))。注:此时OD不能关闭,下面Dump(脱壳)和repair(修复)都要用到其活动的进程。 Btw(By the way):在有些壳无法向下跟踪的时候,我们可以在附近找到没有实现的大跳转,右键-->“跟随”,然后F2下断,Shift+F9运行停在“跟随”的位置,再取消断点,继续F8单步跟踪。一般情况下可以轻松到达OEP! Dump: LordPe--> “路径”里找到我们OD载入的程序-->右键-->修正镜像大小-->在下面的路径里-->完整转存(记得后缀改为exe) Repair: ImpREC-->选取我们的破解进程-->在“OEP”中输入我们找到的OEP-->自动查找IAT-->获取输入表-->转存到文件-->选择Dump好的文件 注:如果IAT加密了的话,我们就要手动输入IAT RAV 和IAT大小 方法二:ESP定律法 方法三:一步到达OEP(只适合少数壳,包括UPX,ASPACK壳) 解释:因为UPX,ASPACK壳的入口为:pushad 那么对应的就应该有popad与之对应。 Btw:aspack壳有多个popad,只要了解aspack的壳(知道他的入口跳的特征是一个popad紧接一个retn),知道它跳到OEP是怎样的特征,多过几个popad(多次搜索) 一样可以使用这个方式找OEP。 方法四:内存镜像法 方法五:最后一次异常法 方法六:模拟跟踪法 内存镜像,项目 30 3:地址为0054B000,如是我们在命令行输入tc eip<0054B000,回车,正在跟踪ing。。 Btw:大家在使用这个方法的时候,要理解他是要在怎么样的情况下才可以使用 pushfd 跟踪时如果有发现 popad 对应 pushad 和 popad 相对应 retn 等指令,发生跨断跳跃一般就到了OEP处。 这里我说说关于F8(Step Over)和F7(Step in)的一般方法,粗跟的时候一般都是常用F8走,但是有些call是变形的Jmp,此时就需要F7代过,区别是否是变形Jmp的一个简单方法是比较 call的目标地址和当前地址,如果两者离的很近,一般就是变形Jmp了,用F7走。对于Call的距离很远,可以放心用F8步过,如果你再用F7步过, 只是浪费时间而已。F8步过对压缩壳用的很多,F7步过加密壳用的很多,如果用F8一不小心就跑飞(程序运行),跟踪失败。 OD载入,因为我一开始就不忽略所有的异常,所以一载入就提示有异常,我们shit+F9,点“否”,停在入口了。(不忽略所有的异常,请大家检查一下自己的OD) 下面就开始使用最后一次异常法了。。。 我们一直狂按shit+F9,心里要数着按了多少次,程序就运行了:) 好,我们现在重新载入程序,到了入口之后,我们再次“狂”按shit+F9,多少次?2次(3-1=2) 好了,我们先就停在这里 看看转存器窗口 F2下断,shit+F9运行,停到0040CCD7,取消断点,单步F8 0040CCD7 8B4424 04 mov eax,dword ptr ss:[esp+4] //停到这里了 。。。。。。。。。。 0040CCEA /EB 02 jmp short PEncrypt.0040CCEE//跳到这里,这里又再次跳走 。。。。。。。。。。 。。。。。。。。。。 。。。。。。。 004010CC 55 push ebp ; PEncrypt.004010CC //OEP,DUMP ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ |
转载于:https://www.cnblogs.com/eldn/archive/2012/08/28/2660895.html
第三课 用OD脱壳的基本方法相关推荐
- 第三课.运算符与表达式
第三课目录 运算符与表达式 算术运算符 关系运算符 逻辑运算符 德摩根律 使用断言assert 位运算符 补码 补码与位运算 赋值运算符 杂项运算符 运算符与表达式 数学是科技发展的基础,数学公式的意 ...
- 第三课.Linux代码编辑器
第三课目录 vi/vim vi/vim简介 vi的模式 vi在命令模式下的操作 vi在底线命令模式下的操作 Visual Studio Code Git git简介 关于git的故事 git的使用 v ...
- 0.0 目录-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授
文章目录 第五课 第四课 第三课 第二课 第一课 第五课 <序列模型> 笔记列表 Week 1 循环序列模型 Week 1 传送门 -> 1.1 为什么选择序列模型 1.2 数学符号 ...
- 【C语言探索之旅】第三部分第三课:SDL开发游戏之显示图像
内容简介 1.第三部分第三课: SDL开发游戏之显示图像 2.第三部分第四课预告: SDL开发游戏之事件处理 第三部分第三课:SDL开发游戏之显示图像 上一课中,我们学习了如何加载SDL库(SDL_I ...
- 矩阵理论及其应用_有限元分析ansys理论与应用视频第三课 绪论:直接法矩阵求解...
我们拒绝关注获取资源的行为, 我们拒绝分享文章获取资源的行为, 我们拒绝收费获取资源的行为, 我们拒绝一切套路. 是否关注是大家的自由, 我们只为努力分享机械行业资源, 让更多的学习者受益. 本期视频 ...
- 斯坦福大学机器学习第三课“多变量线性回归“
斯坦福大学机器学习第三课"多变量线性回归(Linear Regression with Multiple Variables)" 斯坦福大学机器学习第四课"多变量线性回归 ...
- 投资学习网课笔记(part3)--基金第三课
学习笔记,仅供参考 文章目录 基金第三课 指数基金 指数基金的优势 基金第三课 指数基金 什么是指数基金 指数基金是一种特殊的股票基金,它复制.追踪指数.买指数基金就是买国运,只要国家经济正常发展,指 ...
- 光谱 波长_【第三课】红外光谱仪及其联用技术
第三课 前两节课:[第一课]什么是红外光谱方法.[第二课]如何进行红外光谱结构解析,孙素琴教带我们学习了红外光谱的前世今生,以及红外光谱的理论基础.相信小伙伴们都有所收获,今天咱们将跟随另一位清华大学 ...
- 曲曲直直线条图计算机教案,【曲曲直直的美术画】_美术教案第三课:曲曲直直(三年级美术下册教案)——小学美术...
美术教案第三课:曲曲直直(三年级美术下册教案) 教学目标: 认知目标:能够认识生活中的各种曲线和直线,说说曲线.直线给自己的感受. 能力目标:能够用绘画.剪贴等方法表现曲线和直线的画面,培养学生自主探 ...
最新文章
- Java Web项目第二次总结
- nodeMCU自动化控制实现空气质量管家
- IB纪录(十七):At the heard of the image
- 常见的正则表达式验证(更新中)
- 数据迁移工具Sqoop和DataX功能比较
- 美术师关于自己的报酬与工作的看法
- Do not wait until the conditions are perfect to begin. Beginning makes the conditions perfect(转)...
- sql:数据定义语言ddl
- Wordfence Premium 安全防护 WordPress插件
- 【论文】最新图学习推荐系统综述 | Graph Learning Approaches to Recommender
- Ubuntu下安装NetBeans步骤和相关问题的解决方法
- Springboot搭建SSM+JSP的web项目
- ie浏览器打开aspx文件乱码_当IE浏览器打开页面出现乱码,我们该怎么办?
- js实现数字转化为大写金额——js技能提升
- ionCube 安装
- 上兴远控流量分析报告
- 计算机中文输入法教案,智能ABC输入法教案
- 互联网产品为什么能让用户“上瘾”,常用套路是什么?
- 【Unity Shader】屏幕后处理3.0:均值模糊和高斯模糊
- 模拟 nbut1225 NEW RDSP MODE I
热门文章
- 漫谈linux文件io,Linux文件IO与通用块层的请求合并
- sklearn预测pima糖尿病
- 基于R的数据挖掘方法与实践(3)——决策树分析
- citespace连接Mysql_如何用CiteSpace整理数据--转自陈超美博士
- 《实体解析与信息质量》 - 3.1.2 SERF模型
- 【Linux】循序进阶学运维-服务篇-tomcat入门
- 智能电动车 太得瑟只会被抛弃
- 阿里百川无线开放大会参与记录
- Git 最著名报错 “ERROR: Permission to XXX.git denied to user”解决方案
- 骁龙888旗舰蓄势待发,高端手机影像实力再升级