




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、u Windows PE权威指南权威指南u 作者作者 戚利戚利 u 出出 版社版社 机械工业出版社机械工业出版社u 什么是什么是PE?u 我们讨论的不是我们讨论的不是Windows Preinstallation Environment,Windows预安装环境。预安装环境。u 而是而是PE:Portable Executable File Format(可(可移植的执行体)。移植的执行体)。u Windows平台主流可执行文件格式。平台主流可执行文件格式。.exe与与.dll文文件都是件都是PE格式。格式。为什么研究为什么研究PEu 了解了解Windows PE文件结构文件结构u 加密与解密
2、、软件汉化、逆向工程、反病毒等安全加密与解密、软件汉化、逆向工程、反病毒等安全领域的应用领域的应用u 开发语言:开发语言:MASM32u 源程序的编辑器:记事本源程序的编辑器:记事本 notepadu 动态调试器动态调试器OllyDBGu 静态调试器静态调试器W32DASMu 字节码的阅读器和编辑器字节码的阅读器和编辑器FlexHex、Winhexu PE文件查看修改工具文件查看修改工具PEditor本章介绍学习本章介绍学习Windows PE需要的软件开发环境需要的软件开发环境开发语言开发语言MASM32u搭建学习搭建学习Windows PE需要的软件开发环境需要的软件开发环境u基于基于MA
3、SM32的汇编程序的汇编程序u更接近于系统的底层,灵活、强大更接近于系统的底层,灵活、强大u生成的可执行生成的可执行PE文件体积小,速度快文件体积小,速度快u.uhttp:/开发语言开发语言MASM32 .386 .model flat,stdcall option casemap:none?开发语言开发语言MASM32include windows.incinclude user32.incincludelib user32.libinclude kernel32.incincludelib kernel32.libu 引入外部的动态链接库,这些库里有本程序需要的引入外部的动态链接库,这些库
4、里有本程序需要的函数函数-代码重用代码重用开发语言开发语言MASM32;数据段数据段 .dataszText db HelloWorld,0 ;要显示的信息要显示的信息;代码段代码段 .codestart: invoke MessageBox,NULL,offset szText,NULL,MB_OK invoke ExitProcess,NULL end start开发语言开发语言MASM32invoke MessageBox,NULL,offset szText,NULL,MB_OKInvoke-并不是并不是80386处理器的指令,而是一个处理器的指令,而是一个MASM编译器的伪指令编译器
5、的伪指令调用调用WINDOWS API,或调用汇编子程序。,或调用汇编子程序。格式为格式为invoke 程序名程序名,参数参数1,参数参数2,参数参数2先入堆栈,参数先入堆栈,参数1再入堆栈,以此类推再入堆栈,以此类推如如invoke mysubpro,eax,ecx编译器会编译成下面这个模样:编译器会编译成下面这个模样:push ecxpush eaxcall mysubpro开发语言开发语言MASM32invoke MessageBox,NULL,offset szText,NULL,MB_OK Win32程序是构筑在程序是构筑在Win32 API基础上的。基础上的。 在在Win32 AP
6、I中,包括了大量的函数、结构和消息等,中,包括了大量的函数、结构和消息等, 它不仅为应用程序所调用,也是它不仅为应用程序所调用,也是Windows自身的一部分,自身的一部分,Windows自身的运行也调用这些自身的运行也调用这些API函数。函数。MessageBox win32 API函数,由函数,由user32.dll提供提供u MessageBoxA-窄字符窄字符:ANSIu MessageBoxW-宽字符宽字符:unicode开发语言开发语言MASM32Microsoft-Microsoft Win32 Programmers Reference中中定义了常用定义了常用API的参数和函数
7、声明,消息框函数的声明:的参数和函数声明,消息框函数的声明:int MessageBox( HWND hWnd, / handle to owner window窗口句柄窗口句柄 LPCTSTR lpText, / text in message box要显示的字符串地址要显示的字符串地址 LPCTSTR lpCaption, / message box title标题字符串地址标题字符串地址 UINT uType / message box style消息框类型消息框类型 );最后还有一句说明:最后还有一句说明:Library: Use User32.lib-说明了这个函数包括在说明了这个函
8、数包括在User32.dll中中invoke MessageBox,NULL,offset szText,NULL,MB_OK开发语言开发语言MASM32u 研究研究EXE文件内部指令跳转、病毒分析、逆向工程文件内部指令跳转、病毒分析、逆向工程调试软件调试软件OllyDBG-OD1、指令集指令解释区、指令集指令解释区4、栈区、栈区2、寄存器及运行状态区、寄存器及运行状态区3、代码和数据字节码区、代码和数据字节码区u 该位置处的数据是一个内存地址,该地址指向了该位置处的数据是一个内存地址,该地址指向了kernel32.dll动态链接库中函数动态链接库中函数ExitProcess的真实的真实位置。
9、位置。调试软件调试软件OllyDBG-OD 指令集指令解释区指令集指令解释区u包含了所有的包含了所有的32位寄存器:位寄存器:eax、ebx、ecx、esi、edi等等uebp 栈基地址指针栈基地址指针 uesp栈顶指针栈顶指针 ueip 指向下一条要执行的指令的位置指向下一条要执行的指令的位置调试软件调试软件OllyDBG-OD 寄存器及运行状态区寄存器及运行状态区u 指定内存范围的字节码指定内存范围的字节码调试软件调试软件OllyDBG-OD 代码和数据字节码区代码和数据字节码区u 反映了当前栈的分配情况及栈在程序与栈在程序运反映了当前栈的分配情况及栈在程序与栈在程序运行过程中的变化情况。
10、行过程中的变化情况。调试软件调试软件OllyDBG-OD 栈区栈区u F8:单步步过。每按一次这个键执行一条反汇编窗:单步步过。每按一次这个键执行一条反汇编窗口中的一条指令,遇到口中的一条指令,遇到 CALL 等子程序不进入其等子程序不进入其代码。代码。u F7:单步步入。功能同单步步过:单步步入。功能同单步步过(F8)类似,区别是类似,区别是遇到遇到 CALL 等子程序时会进入其中,进入后首先等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上。会停留在子程序的第一条指令上。调试软件调试软件OllyDBG-OD HelloWorld.exe的跟踪执行的跟踪执行u 左右分别是指令执行后
11、栈的变化情况左右分别是指令执行后栈的变化情况调试软件调试软件OllyDBG-OD 利用利用F7执行指令执行指令EIP发生变化了吗?发生变化了吗?u PUSH hellowor.00403000 即指向即指向szText调试软件调试软件OllyDBG-OD 继续继续u call指令处使用指令处使用F8,不会内部跟踪该函数,直接给,不会内部跟踪该函数,直接给出结果。出结果。调试软件调试软件OllyDBG-OD F8 单步步过单步步过u 00402000 开始的开始的1000H为为.rdata区,输入表。区,输入表。u 查看这部分内容。查看这部分内容。调试软件调试软件OllyDBG-OD 是一个地址
12、 0X75 45 BC 9A也就是ExitProcess函数的入口EXE文件被装载到内存后的部分结构文件被装载到内存后的部分结构调试软件调试软件OllyDBG-OD EXE文件文件u 对目标对目标EXE文件进行修改文件进行修改u 将显示信息将显示信息HelloWorld更改为更改为GoodMorning调试软件调试软件OllyDBG-OD 修改修改EXE文件字节码文件字节码调试软件调试软件W32DASM十六进制编辑软件十六进制编辑软件FlexHexu 破解软件注册破解软件注册-思路思路 左:破解前左:破解前 右:破解后右:破解后破解实例破解实例-U盘监控器盘监控器u 运行软件,获取与破解有关的
13、提示信息运行软件,获取与破解有关的提示信息u 提示提示-注册失败注册失败破解实例破解实例-U盘监控器盘监控器u 利用利用FlexHEX获取获取“注册失败!注册失败!”字符串的文件偏字符串的文件偏移地址。移地址。0X00081A79破解实例破解实例-U盘监控器盘监控器u 以上是打开静态的以上是打开静态的EXE文件,一旦文件,一旦EXE文件运行,文件运行,也就是载入内存后,该字符串的地址就是内存地址也就是载入内存后,该字符串的地址就是内存地址了。内存地址了。内存地址=0X00400000+ 0X00081A79 =0X00481A79u 在在OD中搜索这个常量中搜索这个常量-内存地址为内存地址为0X00405D2D破解实例破解实例-U盘监控器盘监控器-OD中搜索中搜索用到用到MessageboxA函数,以此为线索,发现红框内的提示:和一个函数,以此为线索,发现红框内的提示:和一个0X00405CD2处处jump有关有关破解实例破解实例-U盘监控器盘监控器-W32DASM找判断语句的位置找判断语句的位置u 到到0X00405CD2处,果然是一个处,果然是一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 水库泥沙淤积防治技术方案
- 环保设备装配流程优化实施方案
- 风电机组选型与布置优化方案
- 夜间混凝土浇筑质量保障方案
- 风电场应急救援预案方案
- 供水水质保护技术措施实施案
- 农畜产品协同发展实施案
- 合肥中级钳工试卷及答案
- 护理岗面试题型及答案
- 西医护理基础知识试题及答案
- 家博会现场抽奖活动方案
- 芦苇创意美术课件
- 古建筑保护和修复工程项目可行性研究报告
- 第1章 勾股定理 问题解决策略 课件 北师大版数学八年级上册
- 三方检测公司管理制度
- 湖北省枣阳市实验中学2025届七年级英语第二学期期末考试试题含答案
- 公司行政综合部管理制度
- 2025至2030年中国特种石墨行业市场发展态势及投资机会研判报告
- 餐厅迎宾培训内容
- 《中国古代的法治与教化》部优课件1
- 梅毒测试题及答案
评论
0/150
提交评论