逆向工程 (3)

2021-08-28 22:24:38 字數 1562 閱讀 6358

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...