第1章windowspe开发环境_第1页
第1章windowspe开发环境_第2页
第1章windowspe开发环境_第3页
第1章windowspe开发环境_第4页
第1章windowspe开发环境_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Windows

PE权威指南作者戚利出版社机械工业出版社Windows

PE什么是PE?我们讨论的不是Windows

PreinstallationEnvironment,Windows预安装环境。而是PE:PortableExecutableFileFormat(可移植的执行体)。Windows平台主流可执行文件格式。.exe与.dll文件都是PE格式。Windows

PE了解Windows

PE文件结构加密与解密、软件汉化、逆向工程、反病毒等安全领域的应用Windows

PE为什么研究PE本章介绍学习WindowsPE需要的软件开发环境开发语言:MASM32源程序的编辑器:记事本notepad动态调试器OllyDBG静态调试器W32DASM字节码的阅读器和编辑器FlexHexWindows

PE开发环境搭建学习WindowsPE需要的软件开发环境基于MASM32的汇编程序更接近于系统的底层,灵活、强大生成的可执行PE文件体积小,速度快...Windows

PE开发环境开发语言MASM32Windows

PE开发环境开发语言MASM32.386.model

flat,stdcalloption

casemap:none作业:注释以上3行。Windows

PE开发环境开发语言MASM32includeincludewindows.incuser32.incincludelib

user32.libinclude

kernel32.incincludelib

kernel32.lib引入外部的动态链接库,这些库里有本程序需要的函数-代码重用Windows

PE开发环境开发语言MASM32;数据段.datadb

'HelloWorld',0

;要显示的信息szText;代码段.codestart:invoke

MessageBox,NULL,offset

szText,NULL,MB_OKinvoke

ExitProcess,NULLend

startWindows

PE开发环境开发语言MASM32invoke

MessageBox,NULL,offset

szText,NULL,MB_OKInvoke-并不是80386处理器的指令,而是一个MASM编译器的伪指令调用WINDOWS

API,或调用汇编子程序。格式为invoke

程序名,参数1,参数2,…参数2先入堆栈,参数1再入堆栈,以此类推如invoke

mysubpro,eax,ecx编译器会编译成下面这个模样:push

ecxpush

eaxcall

mysubpro开发语言MASM32Windows

PE开发环境invoke

MessageBox,NULL,offset

szText,NULL,MB_OKWin32程序是构筑在Win32

API基础上的。在Win32

API中,包括了大量的函数、结构和消息等,

它不仅为应用程序所调用,也是Windows自身的一部分,

Windows自身的运行也调用这些API函数。MessageBox

win32

API函数,由user32.dll提供MessageBoxA-窄字符:ANSIMessageBoxW-宽字符:unicode开发语言MASM32Windows

PE开发环境Microsoft-《Microsoft

Win32

Programmer‘s

Reference》中定义了常用API的参数和函数声明,消息框函数的声明:int

MessageBox(HWND

hWnd, //

handle

to

owner

window窗口句柄LPCTSTR

lpText,

//

text

in

message

box要显示的字符串地址LPCTSTR

lpCaption, //

message

box

title标题字符串地址//message

box

style消息框类型UINT

uType);最后还有一句说明:Library:

Use

User32.lib-说明了这个函数包括在User32.dll中invoke

MessageBox,NULL,offset

szText,NULL,MB_OKWindows

PE开发环境开发语言MASM32研究EXE文件内部指令跳转、病毒分析、逆向工程Windows

PE开发环境调试软件OllyDBG-OD1、指令集指令解释区4、栈区2、寄存器及运行状态区3、代码和数据字节码区

该位置处的数据是一个内存地址,该地址指向了

kernel32.dll动态链接库中函数ExitProcess的真实位置。Windows

PE开发环境调试软件OllyDBG-OD指令集指令解释区包含了所有的32位寄存器:eax、ebx、ecx、esi、edi等ebp

栈基地址指针esp栈顶指针eip

指向下一条要执行的指令的位置Windows

PE开发环境调试软件OllyDBG-OD

寄存器及运行状态区指定内存范围的字节码Windows

PE开发环境调试软件OllyDBG-OD

代码和数据字节码区反映了当前栈的分配情况及栈在程序与栈在程序运行过程中的变化情况。Windows

PE开发环境调试软件OllyDBG-OD

栈区F8:单步步过。每按一次这个键执行一条反汇编窗口中的一条指令,遇到CALL

等子程序不进入其代码。F7:单步步入。功能同单步步过(F8)类似,区别是遇到CALL

等子程序时会进入其中,进入后首先会停留在子程序的第一条指令上。Windows

PE开发环境调试软件OllyDBG-OD

HelloWorld.exe的跟踪执行左右分别是指令执行后栈的变化情况Windows

PE开发环境调试软件OllyDBG-OD

利用F7执行指令EIP发生变化了吗?PUSH

hellowor.00403000

即指向szTextWindows

PE开发环境调试软件OllyDBG-OD

继续call指令处使用F8,不会内部跟踪该函数,直接给出结果。Windows

PE开发环境调试软件OllyDBG-ODF8

单步步过00402000

开始的1000H为.rdata区,输入表。查看这部分内容。Windows

PE开发环境调试软件OllyDBG-OD是一个地址0X75

45

BC

9A也就是ExitProcess函数的入口EXE文件被装载到内存后的部分结构Windows

PE开发环境调试软件OllyDBG-OD

EXE文件对目标EXE文件进行修改将显示信息HelloWorld更改为GoodMorningWindows

PE开发环境调试软件OllyDBG-OD

修改EXE文件字节码Windows

PE开发环境调试软件W32DASMWindows

PE开发环境十六进制编辑软件FlexHex破解软件注册-思路左:破解前右:破解后Windows

PE开发环境破解实例-U盘监控器运行软件,获取与破解有关的提示信息提示-注册失败Windows

PE开发环境破解实例-U盘监控器利用FlexHEX获取“注册失败!”字符串的文件偏移地址。0X00081A79Windows

PE开发环境破解实例-U盘监控器以上是打开静态的EXE文件,一旦EXE文件运行,也就是载入内存后,该字符串的地址就是内存地址了。内存地址=0X00400000+

0X00081A79=0X00481A79在OD中搜索这个常量-内存地址为0X00405D2DWindows

PE开发环境破解实例-U盘监控器-OD中搜索用到MessageboxA函数,以此为线索,发现红框内的提示:和一个0X00405CD2处jump有关Windows

PE开发环境破解实例-U盘监控器-w32dasm找判断语句的位置到0X00405CD2处,果然是一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论