《Windows PE》第一章 PE学习环境搭建

基础篇

第一章 PE学习环境搭建

在正式学习PE之前,先给大家介绍一下学习WindowsPE所需的开发环境和相关工具软件的使用方法。

本章学习知识概要:

      源码编译工具

      静态分析工具

      动态分析工具

    1. 源码编译工具

本书提供的示例代码有两种,一种是32位汇编语言代码,另一种是32位C语言代码。因此,需要使用汇编语言和C语言两种不同的编译工具。接下来我们将介绍汇编和C语言两种编译环境的搭建。有兴趣的读者可以将两种代码互译。

本节必须掌握的知识点:

    汇编语言开发环境

    C语言开发环境

1.1.1 汇编语言开发环境

MASM32介绍

MASM32是Steve Hutchessond在微软的不同产品基础上集成开发出来的汇编开发工具包,适合Win32编程环境的汇编语言,主要用于基于Windows平台的32位汇编语言开发, 是现在最流行的Win32汇编开发包。与VC++和VB等高级语言相比,Win32汇编具有得天独厚的优势,这些优势主要体现在:

(1)摒弃了对系统细节的封装,更接近于系统的底层,从而使得编码更加灵活,能完成许多髙级语言无法做到的事情(如代码重定位和特殊寄存器赋值等)。

(2)生成的可执行PE文件体积小,执行速度快。

(3)可用于软件的核心程序段设计,以提高软件的性能。

(4)能够直接接触系统的底层,所以使用它要远比使用VC++和VB等高级语言更适合开发与系统安全相关的程序。比如,与计算机硬件密切相关的驱动程序的开发、计算机病毒的分析与防治、软件加密与解密、软件调试、Windows PE研究等。

MASM32是一个免费的软件包,该软件包中包含了汇编器ml.exe、资源编译器rc.exe、32位的链接器link.exe和一个简单的集成开发环境(Intergrated Development Environment, IDE) QEditor.exe。

软件包中的ml.exe来自Microsoft的MASM软件包,rc.exe和link.exe则来自Microsoft的 Visual Studio。

MASM32软件包还包括了详尽的头文件、导入库文件、例子文件、帮助文档和一些工具程序,如lib.exe和dumpbin.exe等。可以从网站http://www.masm32.com/上获得MASM32 SDK的最新版本(masm32v11r),并可以在论坛里与来自世界各地的汇编爱好者交流技术和思想。

       ■MASM32安装

步骤1:运行安装程序install.exe,安装汇编环境。

首先选择安装路径,此处我们选择的路径为 D:\(软件),然后单击“Install”按钮,如图1-1和图1-2所示。此后,中间过程所有的按钮均选择默认的设置,即可完成软件安装。安装结束后,会显示IDE汇编集成环境QEditor的界面,如图1-3所示。我们也可以选择自己熟悉的文本编辑工具,建议使用Notepad++,如图1-4所示。

图1-1 MASM32安装                                                                

图1-2 安装路径

图1-3 Qeditor                                                                           

图1-4 Notepad++

步骤2:建立自己的工作区

建议选择将软件安装到非系统盘(例如D盘)。为了能存放自己编写的汇编代码。可以在D:\masm32中新建立一个文件夹source存放代码。也可以在其他目录新建一个文件夹,如图1-5所示。接下来设置汇编程序所依赖的环境,以及要调用的API函数库都在该文件夹内。

图1-5 设置工作区

步骤3设置系统环境变量

“我的电脑”上点鼠标右键,选择“属性”,选择“高级”选项 卡,单击“环境变量”按钮,在用户的环境变量中增加以下三个环境变量,如图1-6所示:

1.include=d:\masm32\include        //头文件目录

2.lib=d:\masm32\lib               //lib库

3.path=d:\masm32\bin            //编译工具软件

如果系统中已经存在相同名字的环境变量(如path变

量),则在该变量的值的最后加上一个分号,然后加

上上面列出的值即可。

例如,假设未设置前系统存在路径变量path,且值为:

C:\Users\16400\AppData\Local\Microsoft\WindowsApps

修改以后的值为:                                     

d:\masm32\bin; C:\Users\16400\AppData\Local 

\Microsoft\WindowsApps

特别提示:要用英文输入,且不要忘记前面的分号。               

也可以建立系统环境变量的批处理文件:假设文件名为var.bat

@echo off

set include = d:\masm32\include

set lib = d:\masm32\lib

set path = d:\masm32\bin;%path%

echo on

图1-6 环境变量设置

文件中设置了3个环境变量:

1.indude变量指定头文件的搜索目录。定义了这个环境变量后,ml.exe和rc.exe在处理asm和rc文件中遇到include语句时,会自动在环境变量定义的目录中查找include 语句指定的文件,这样include语句中就不必写头文件的全路径名,如下所示:

include c : \masm32 \ include\windows . inc     //不设置. include 环境变量时的写法

include windows . inc                        //设置include环境变量后可以这样写

这样处理的好处是以后移动了 MASM32的安装位置后不必修改每个源文件中的include语句。

如果使用Visual C++的集成环境来建立rc文件的话,为了使rc.exe能找到头件,还要把VC++安装目录下的include和MFC\include 目录包含进来,多个路径之间用“;”隔开:

set include=x:\masm32\include;VC目录\include;VC目录\MFC\include。

2.lib环境变量指定导入库文件的搜索目录。ml.exe根据这个变量寻找include lib语句指定的导入库文件,Link.exe也根据这个变量寻找库文件的位置。

3.path环境变量可以使我们不必在键入命令时带长长的路径。

代码编辑工具软件2使用Nodepad++,如图1-7所示。可以根据个人偏好选择自己满意的编辑工具。

实验一:使用NotePad++编写32位汇编源程序HelloWord.asm。

图1-7 Notepad++

        

源代码

;FileName:HelloWorld.asm

;例1:第一个32位汇编源程序

;by:bcdaren

;2021.01.06

;=======================================

.386 ;支持386及以上CPU

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值