1.pe檔案格式
pe檔案是win作業系統下的可執行檔案格式
pe檔案指32位可執行檔案(pe32),pe+/pe32+指64位的可執行檔案
1.1.pe檔案種類
可執行:exe,scr
驅動程式:sys,vxd
庫:dll,ocx,cpl,drv
物件檔案:obj(除了obj外所有檔案都是可執行的,在逆向分析中幾乎不需要關注它)
1.2.基本結構
dos頭(dos header)到節區頭(section header)是pe的頭部分,其下的節區合稱節區體。各節區頭定義了節區在檔案或記憶體中的大小、位置、屬性等
檔案中使用偏移(offset),記憶體中使用va(虛擬位址)來表示位置
檔案載入到記憶體時,節區的位置大小等就會發生變化
檔案的內容一般可分為**(.text)、資料(.data)、資源(.rsrc)節,分別儲存下來
pe頭和各節區的尾部存在乙個區域(null填充)
1.3.va(程序虛擬記憶體的絕對位址)&rva(從某個基準位置開始的相對虛擬位址)
pe頭內部資訊大多以rva形式存在
1.4.pe頭
1.4.1.dos頭
為了充分考慮pe檔案對dos檔案的相容性,在pe頭在前面新增乙個image_dos_header結構體,用來擴充套件dos exe頭
結構體的大小為40個位元組
typedef struct _image_dos_header image_nt_headers32, *pimage_nt_headers32; //可選頭
1.5.1.檔案頭
表現檔案大致屬性的image_file_header結構體
typedef struct _image_file_header image_file_header, *pimage_file_header;
1.5.2.可選頭(image_optional_header32)
pe頭結構體中最大的
typedef struct _image_data_diectory image_data_diectory, *pimage_data_diectory;
#define image_numberof_diectory_entries 16
typedef struct _image_optional_header image_optional_header32, *pimage_optional_header32;
1.6.iat(匯入位址表)
iat儲存的內容與win的核心程序、記憶體、dll結構等有關,簡言之,iat是一種**,記錄程式正在使用哪些庫中的函式
1.6.2.dll(動態鏈結庫)
不要把庫包含到程式中,單獨構成dll檔案,需要時呼叫即可
記憶體對映技術使載入後的dll**、資源在多個程序中實現共享
更新庫時只要替換相關dll檔案
載入dll方式:
PowerDesigner 逆向工程
1.odbc教程 1.1 設定odbc資料來源,控制面板 管理工具 資料來源 odbc 1.2 系統dsn 新增 選擇sqlserver 1.3,其他不管下一步 輸入登陸id,密碼 進行測試,沒通過重複上面步驟 2.powerdesigner教程 reverse engineer database ...
逆向工程入門
本問只是為初入逆向工程大坑的新人們指出方向學習,沒有實質性的技術。總的來說,基礎才是最重要的。逆向工程入門應該算是所有學習方向中最難的。但是選擇了這一方向的請不要放棄,一旦學成,必定會是大神級別的存在。那麼,逆向工程的入門需要學習什麼?學習c語言是逆向工程的基礎。如果是學習滲透方向的,也許可以選擇p...
逆向工程工具
此處逆向工程特指從源 生成設計圖。三大設計工具是 microsoftvisio ibm rose sybase powerdesigner。visio不支援逆向工程。rose功能強大 依賴關係處理費勁 速度慢。powerdesigner可以依據源 生成漂亮的類圖,對閱讀源程式很有好處。如圖 dl4j...