- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用OllyDbg从零开始Cracking第三十一章-脱壳简介
第三十一章-脱壳简介
原定本章是要介绍P-CODE的Part3,然后再介绍脱壳的。但是很多朋友跟我说P-CODE,WKT的教程有很多,并且现在P-CODE的应用程序已经很少了,没有必要过多的介绍P-CODE,希望我能够多讲讲壳,提高大家脱壳的能力。所以说本章我们开始讨论壳,首先要给大家明确一点,壳的种类繁多(PS:这里说种类繁多,并不准确,种类也就那么几种,压缩壳,加密壳,虚拟机壳,所以说应该是数量多,之前发过一篇帖子收集了T4社区的各种脱壳脚本,充斥着各种各样的壳,大家可以看看),所以接下来的章节,我不会介绍所有的壳,只会给大家介绍壳的基本概念以及原理,还有几个具体壳的实例,大家不要指望看完本教程将能搞定所有壳,本教程的目的在于帮助大家理解壳的原理,锻炼大家解决未知壳的能力,大家要学会举一反三,触类旁通。
本章我们将介绍壳的基本概念,这对我们后面脱壳是大有裨益的,大家不要因为简单,就忽视它,后面章节,我们会介绍一些手工脱壳的实例。
首先大家可能会问为什么要给程序加壳?(PS:其实地球人都知道,嘿嘿)
我们知道一个未加壳或者脱过壳的程序修改起来很方便,但是如果一个加过壳或者自修改的程序,要想修改它就比较困难了,我们在入口点(PS:这里指的入口点是壳的入口点)处修改程序是不起作用的,只有当壳把原程序区段解密完成后修改才能起作用。
加过壳的程序,原程序代码段通常是被加密过的,我们想修改它就不那么容易了。
加壳程序给目标程序加壳的原理通常是加密/压缩原程序各个区段,并且给目标程序添加一个或者多个区段作为原程序的引导代码(壳代码),然后将原程序入口点修改为外壳程序的入口点。
如果我们将加过壳的程序用OllyDbg加载的话,OllyDbg会停在壳的解密例程的入口点处,由此开始执行。
壳的解密例程(外壳程序)首先会定位加密/压缩过的原程序的各个区段,将其解密/解压,然后跳转至OEP(程序未加壳时的入口点)处开始执行。
现在我们来看一个最简单的壳,UPX壳,大家可以去下面网址中下载一个GUI版,名称为GUiPeX_Setup。
/guipex/
安装好以后运行起来。
我们加壳的对象就选择大家熟悉的CrueHead的CrackMe,首先我们不加壳将其加载到OllyDbg中。
我们可以看到其入口点是401000,也就是说,运行它,将从401000地址处开始执行。
现在我们用GUiPeX将其加壳,解密其区段,并且将入口点修改为解密例程(外壳程序)的起始地址。
当我们运行加壳后的CrackMe,首先会从解密例程开始执行,解密例程会解密原程序各个区段,然后定位到位于原程序代码段中的入口点,也就是大家常说的OEP(Origianl Entry Point),即401000,接着跳往OEP处开始执行原程序代码。
下面我们就来讨论CrueHead这个被加过壳的CrackMe,该CrackMe的OEP位于何处我们已经清楚了。
我们将该CrackMe保存一份备份并将其放到一个安全的地方,比如说桌面,因为接下来我们需要将加过壳的CrackMe与原始的CrackMe进行对比。
打开GUiPeX。
我们将CrackMe拖拽到上面那个窗口中。
我们可以看到上面窗口中显示出了带加壳的CrackMe的完整路径。后边的Commands(命令)选项我们选择Compress(压缩)。
通过这个工具我们可以给目标程序压缩或者解压缩。
然后我们按Run按钮就开始给该CrackMe加壳了。
我们可以看到UPX Output窗口中显示该CrackMe加壳成功了。
我们将加壳后的CrackMe重命名为CRACKME UPX.EXE。
我们会发现加壳后要比原来的小很多,加壳程序给原程序添加了额外的代码来保护原程序,体积反而变小了,嘿嘿。
我们将加壳后的CrackMe运行起来,可以看到跟原CrackMe运行效果一样。
现在我们用两个OllyDbg分别加载CRACKME UPX.EXE和CRACKME.EXE,比较一下两者有什么不同。
CRACKME.EXE的入口点
CRACKME UPX.EXE的入口点
正如大家所看到的,CRACKME UPX的入口点变成了409BF0,将从这里开始执行解密例程,如果我们定位401000地址处,会发现找不到原程序的代码任何踪迹。
正如大家所看到的原程序的代码段是空的,即加壳程序将原程序代码段加密/压缩后保存到其他地方,并且将原程序代码段清空了。
通常情况下,大部分加壳程序会在待加壳程序中创建自己的区段,从自己的区段开始执行解压/解密程序,解压/解密程序会将对原程序各个区段进行解压/解密。
下面我们一起来看看解压/解密的例程,不运行,直接往下拉。
继续往
您可能关注的文档
- 企业IPO中财务会计操作实务.docx
- 任务6掌握图层应用的技能.doc
- 企业专利运营工作的主要业务内容与实施.doc
- 企业专利布局管理企业专利战略的实施方式和策略.doc
- 企业业务流程管理作业.doc
- 企业QQ和企业邮箱整合应用步骤.docx
- 企业人力资源管理师三级基础.docx
- 企业会计准则与制度大纲.doc
- 企业人力资源管理作业.docx
- 企业信息化在企业管理过程中发挥的作用.doc
- 2024高考物理一轮复习规范演练7共点力的平衡含解析新人教版.doc
- 高中语文第5课苏轼词两首学案3新人教版必修4.doc
- 2024_2025学年高中英语课时分层作业9Unit3LifeinthefutureSectionⅢⅣ含解析新人教版必修5.doc
- 2024_2025学年新教材高中英语模块素养检测含解析译林版必修第一册.doc
- 2024_2025学年新教材高中英语单元综合检测5含解析外研版选择性必修第一册.doc
- 2024高考政治一轮复习第1单元生活与消费第三课多彩的消费练习含解析新人教版必修1.doc
- 2024_2025学年新教材高中英语WELCOMEUNITSectionⅡReadingandThi.doc
- 2024_2025学年高中历史专题九当今世界政治格局的多极化趋势测评含解析人民版必修1.docx
- 2024高考生物一轮复习第9单元生物与环境第29讲生态系统的结构和功能教案.docx
- 2024_2025学年新教材高中英语UNIT5LANGUAGESAROUNDTHEWORLDSect.doc
文档评论(0)