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:noneinclude 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_OKinvoke 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內存映像和原來硬盤上文件是不同的。
總結
以上是生活随笔為你收集整理的PE学习(一)masm32开发环境和ollyICE使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 破解入门(六)-----实战“内存镜像法
- 下一篇: PE学习(二) IMAGE_DOS_HE