PE学习(一)masm32开发环境和ollyICE使用

第一章:windows PE 开发环境
MASM32 ml.exe汇编编译器 rc.exe资源编译器 link.exe
安装masm32到d:\masm32
增加环境变量用户变量
include=d:\masm32\include;
lib=d:\masm32\lib;
path=d:\masm32\bin;

修改文件字节码:
HEX数据  edit -> copy to excutable -> pop up a window then click edit -> binary edit (note: keep size) then -> save file...
修改文件字符串常量不能像上字节码那样,字符串数据修改时要用十六进制工具来修改,

内存地址 = 基地址 + 文件偏移量

//helloword.asm
.386
.model flat,stdcall
option casemap:none

include windows.inc
include user32.inc
includelib user32.lib
include kernel32.inc
includelib kernel32.lib

.data
szText  db 'Hello World',0

.code
start:
    invoke MessageBox,NULL,offset szText,NULL,MB_OK
    invoke ExitProcess,NULL
end start


c:\testmasm>ml /coff helloword.asm /link -subsystem:windows


PE(Portable Executeable File Format,可移植的执行体文件格式),使用该格式的目标是使链接生成的EXE文件能在不同的CPU工作指令下工作。
window os下执行程序:COM,PIF,SCR,EXE等,大部分继承自PE,.dll也是PE文件。
在PE格式中,每一个大的部分的对齐方式就是按照200h大小对齐的

第二章:三个小工具的编写
PEDump文件字节码查看器 PEComp文件比较器 PEInfo文件结构查看器
内存映射文件(Maped):是指将硬盘上的文件不做修改地装载到内存中。这样,文件中字节间是顺序排列的;
       在硬盘上,文件被分割成若干簇,这个簇不一定会按照文件内容顺序排列在一起。大型软件设计上利用这点存取磁盘文件。
PE内存映像(IMAG): 是将PE文件按照一定的规则装载到内在中,装入后的整个文件头内容不会发生变化,但PE文件的某一部分如节的内容会按照
     字段中的对齐方式在内存中对齐,从而使得内存中的PE映像与装载前的PE文件不同。
     PE内存映像与一般的内存映射文件不一样,原因PE文件是OS装载进内存的,按一定的格式对齐,提高运行效率。所以PE内存映像和原来硬盘上文件是不同的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值