Windows PE 第一章开发环境和基本工具使用
第一章 Windows PE
基本工具
1.1开发语言MASM32
1.1.1设置开发环境
这个不细说了,我在整理Intel汇编的时候详细的说了环境搭建以及细节。地址是:http://blog.csdn.net/u013761036/article/details/52186683
1.1.2 开发第一个源程序HelloWorld.
这个也不多解释,我直接写了个简单例子:
;-------------------------------------
;功能:测试OD用的Hello
World程序
;作者:Act-Code
;日期:2016.9.1
;-------------------------------------
.386
.model flat,stdcall
option casemap:none
include windows.inc
include kernel32.inc
include user32.inc
includelib user32.lib
includelib kernel32.lib
.data
szText db "HelloWorld" ,0
.code
main proc
invoke MessageBox ,NULL ,addr szText ,addr szText ,MB_OK
invoke ExitProcess ,0
main endp
end main
运行结果:
1.2 调试软件OllyDBG
OD是破解常用软件之一,我们可以通过它来调试了解开发该程序的基本思路,调试是逆向工程必须掌握的一门技术。
下面调试上面的那个HelloWorld.exe来简单介绍下OD.
主界面(各种DIY版本比较多,我用的这个是小伙伴给的 吾爱破解上的)
一:
(1)指令及指令解释区;
该区域位于整个界面的左上角,共包含四列。分别为指令所在的内存地址、指令字节码、反汇编后的指令语句,以及指令相关的注释。OD的强大之处在于,它将许多难懂的指令字节码反解释成了汇编指令,并附以形象的说明。
(2)寄存器及运行状态区;
该区域位于整个界面的右上角,包含了所有的32位寄存器,如eax、ebx、ecx、esi、edi、esp、edp等。大家要特别关注以下几个寄存器:
ebp(栈基地址指针)
esp(栈顶指针)
eip(指向下一条指令的地址指针)
除了寄存器的值外,该区还显示所有段寄存器的值及标识的位置,如FS段,这个段在后面降到异常时会用到。
(3)代码和数据区;
该区域位于整个界面的左下角,它包含了指定内存范围的字节码,我们可以通过菜单命令随时查看当前内存中的数据。
(4)栈区;
该区域位于整个界面的右下角,它反映了当前栈的分配情况及栈在程序运行过程中的变化情况。
二:简单介绍下其他载入
F7 :单步步入
F8:单步步过
F2:下断点
F9:跳到断点
还有,看到那个00401000了吗,这个应该很熟悉,固定基址,比如如果我们是用vs2012开发c++程序,这个东西在这设置:
如果选择的是否,其他的什么也不填写,那么默认就是0x00400000,上面看到的那个0x0001000多出来的那个1000就是代码段的开始,对照下面这个结构。
汇编语言编译链接的程序的可执行代码被装入操纵系统后,代码的执行入口点被设置在进程地址空间的0x00401000处,大小为1000h;紧跟着是输入表,也占1000h字节;最后是数据段,大小为1000h。以下是exe文件被加载到内存后的部分结构:
1.2.2 修改EXE文件字节码
OD不仅可以让我们对exe文件进行反汇编和单步执行调试,还可以对目标exe文件进行修改,比我我们对上面的那个Helloworld进行修改,直接修改显示的字符串。我们可以直接在(3)右键保存exe文件,然后就会跳出来一个框,直接在上面找到helloworld进行修改,记得如果后面不是00的不要修改,可能会导致崩溃。
效果:
当然如果是光要实现这个目的,方法很多,这里只是简单介绍OD,完全可以直接二进制进行编辑,比如直接用十六进制编辑软件FlexHex进行修改等:
1.3 初识PE文件
PE(Portable Executeable File Format,可移植的执行文本格式),使用该格式的目标是使链接生成的EXE文件能在不同的CPU工作指令下工作。
可执行文件的格式是操作系统工作方式的真是写照。Windows操作系统中可执行的程序有好多种,比如COM、PIF、SCR、EXE等,这些文件的格式大部分都继承自PE。其中exe是最常见的PE,动态链接库(大部分以DLL为扩展名的文件)也是PE文件,本书只涉及这两种类型的PE文件。
PE格式中,每一个大的部分的对齐方式就是按照200h大小对齐的。
Windows PE 第一章开发环境和基本工具使用的更多相关文章
- Windows PE 第一章 熟悉OD(顺便破解一个小工具)
熟悉OD(顺便破解一个小工具) 上一节了解了OD的简单使用,这次就练习下,目标是破解一款小软件(入门练手用的,没有壳什么的). 首先我们来看一下这个小软件: 我们的目的是输入任何字符串都可以成功注册, ...
- 图文详解如何搭建Windows的Android C++开发环境
原地址:http://www.apkbus.com/android-18595-1-1.html //================================================= ...
- Windows 7 下 PHP 开发环境搭建(手动)
Windows 7 下 PHP 开发环境搭建 1.说明 做开发的都知道一句话,就是“站在巨人的肩膀上”.确实现在打开浏览器随便一搜很多一键安装PHP环境的软件,比如wamp.xampp.AppServ ...
- [转载]在Windows下搭建Android开发环境
http://jingyan.baidu.com/article/bea41d437a41b6b4c51be6c1.html 在Windows下搭建Android开发环境 | 浏览:30780 | 更 ...
- Windows系统下Android开发环境搭建
“工具善其事,必先利其器”.要想学好Android,搭建好Android开发环境是一个良好的开端. Windows系统下Android开发环境主要有4个大的步骤.分别是: 1.JDK的安装 2.ecl ...
- Windows平台下PHP开发环境的配置
Windows平台下PHP开发环境的配置 一.基本环境 1.Windows XP 32位 2.Apache 2.2.25,下载地址:http://mirror.bit.edu.cn/apache/ht ...
- Windows下搭建Git开发环境
Windows下搭建Git开发环境主要有以下三种方法: 1,VS,vs2013和vs2015中已经集成了git插件了 2,msysGit+TortoiseGit 3,msysGit+SourceTre ...
- 在windows 7搭建xcode开发环境
前言:本文适用于没有ios开发环境(如无iphone,mac等),在windows上搭建出ios的开发环境.值得注意的是,在windows搭建的ios开发环境只能做开发测试,无法发布产品.若需要发布产 ...
- [转]windows下安装Object-C开发环境
本文转自:http://hi.baidu.com/jeremylai/item/f40b9116cb3c5d582b3e22f5 在Windows下搭建Objective C开发环境,需要到GNUst ...
随机推荐
- 爬虫必知必会(5)_scrapy框架_基础
一.移动端数据的爬取 基于某一款抓包工具,fiddler,青花瓷,miteproxy fillder进行一个基本的配置:tools->options->connection->all ...
- 24端口以太网FPGA的开发板
板卡架构 板载FPGA(K7-325T)处理24端口10/100/1000M以太网数据: FPGA外挂4Gbit的DDR3颗粒,最大支持800MHz: 板载CPU进行系统配置.管理,并与客户端软件通信 ...
- 简单3步快速生成千万级别mysql测试数据库,模拟电商数据
https://blog.csdn.net/wuda0112/article/details/88387735 github项目地址:https://github.com/wuda0112/mysql ...
- TensorFlow学习(2)
TensorFlow学习(2) 一.jupyter notebook的安装和使用 1. 什么是jupyter notebook jupyter notebook(http://jupyter.org/ ...
- List的主要实现类
//ArrayList:List的主要实现类 /* * List中相对于Collection,新增加的方法 * void add(int index, Object ele):在指定的索引位置inde ...
- Go语言中利用append巧妙的删除slice切片中的元素
package main import ( "fmt" ) //删除函数 func remove(s []string, i int) []string { return appe ...
- teprunner测试平台用例前置模块开发
本文开发内容 现在正式进入测试相关功能开发.teprunner测试平台底层是pytest,中间层是tep,还没了解的朋友可以先看看tep的文章,整个平台的设计思路和后面用例的执行都会基于这个工具.te ...
- Tkinter教程系列01——引言和安装Tk
Tkinter教程系列01--引言和安装Tk 首发于我的个人博客 https://chens.life/tkinter-tutorial-chapter-01-introduction-and-ins ...
- Tomcat详解系列(3) - 源码分析准备和分析入口
Tomcat - 源码分析准备和分析入口 上文我们介绍了Tomcat的架构设计,接下来我们便可以下载源码以及寻找源码入口了.@pdai 源代码下载和编译 首先是去官网下载Tomcat的源代码和二进制安 ...
- 【Papers】Robust Lane Detection via Expanded Self Attention 论文解读
论文题目:Robust Lane Detection via Expanded Self Attention 链接地址:https://arxiv.org/abs/2102.07037 文章核心想要解 ...