教程詳情
文件下載 | 文件名稱:甲殼蟲VIP_PE結構(無KEY) | 文件大小:414.17 MB |
下載聲明:本站文件大多來自于網絡,僅供學習和研究使用,不得用于商業用途,如有版權問題,請聯系博豬! | ||
下載地址: 下載教程 |
教程目錄:
PE結構1——基本知識
PE結構2——基本結構
PE結構3——PE頭
PE結構4——區段與代碼類型
PE結構5——輸入表
PE結構6——輸出表
PE結構7——重定位
PE結構8——資源表
免殺方法1——免殺前的特征碼歸
免殺方法2——彙編下修改特征碼方
免殺方法3——字符串特征碼修改方法
免殺方法4——輸入表特征碼免殺方法
一、 什麽叫PE文件:
PE文件指的是可移植可執行(Portable Executable)文件。這些文件通常是DLL和EXE文件。一個 PE 文件中可以有多個命名空間,也可以包括嵌套的命名空間。而一個命名空間可以拆分到多個 PE 文件。一個或多個 PE 文件(可能還有其它非PE文件,如資源文件)可以組合在一起創建程序集。程序集是可部署、可進行版本編号和可複用的物理單元。
二、 PE文件的基本術語:
1、文件地址:
分爲 偏移地址(C32載入可見,是PE文件儲存在硬盤上時的一個内部的絕對地址)
RVA地址(PE文件各數據導入内存鏡像後相對于基地址的偏移量)
VA地址(PE文件各數據導入内存鏡像後虛拟地址,OD載入可見)
鏡像基址(PE文件導入内存鏡像時的初始地址,EXE缺省值爲00010000h,DLL爲00400000h)
其中 VA地址=RVA地址+鏡像基址
文件A 内存A 内存B
舉例:圖書館的每本書都是存放在固定的書架上的,其存放地址稱之爲偏移地址;
圖書館外借時都有個外借編碼,稱之爲VA地址,外借編碼前面标識的外借日期稱爲鏡像基址,外借序号稱爲RVA地址;
其中 外借編碼=外借日期+外借序号。
0812030456=081203+0456
2、區段:
PE文件在載入内存鏡像時,是分段載入的,表示爲區段,故偏移地址要轉換成RVA、VA地址,每個區段的計算公式是不一樣的。
舉例:列車分爲駕駛區、動力區、軟卧區、硬卧區、餐車、軟座區、硬座區、車尾。
3、常見目錄表:
輸入表——PE文件調用WINDOWS DLL函數的列表
輸出表——PE文件輸出DLL函數的列表
重定位表——PE文件用來重新定位某些代碼(字符串、指針地址等等)的列表。
資源表——PE文件運行時釋放出的一些資源文件(如DLL、EXE、圖标、圖形界面CSS等等)
舉例:在打網球時,我們用網球俱樂部提供的網球、場地等等就稱爲輸入表;而我們自己拿出自己專用的球拍、護腕、頭巾等等,則稱爲輸出表;我們根據俱樂部發給我們的号碼牌,根據号碼牌上的号碼,去儲物櫃拿我們儲存進去的一些東西時,稱爲重定位表;我們身上穿的衣服、帶的鑰匙、包括皮膚顔色、背包,統稱爲資源表。
4、代碼:
分爲 HEX十六進制代碼
字符代碼
(字符代碼分爲字符串和亂碼,字符串有ASCII字符串和UNICODE字符串兩種)
ASCII字符串讀取以一個00結束
UNICODE字符串以2個00結束,或以讀取錯誤結束(字符之間沒有00間隔)
彙編代碼
5、高位讀取:
PE文件有個原則——高位讀取。
比如文件中有段代碼是指針:7F 98 01 00。
那麽這段代碼應該從高位讀取00 01 98 7F,轉換成指針:0001987F,PE文件裏的指針一般爲RVA地址。
這個類似于彙編知識中的堆棧的儲存與讀取(PUSH和POP後的ESP值),在彙編知識教程裏大家應該學到。
教程截圖
教程下載
原文鏈接:【教程寶盒網】 https://www.jc-box.com/7338.html,轉載請注明出處。
請先
!