月刊可以用什么網(wǎng)站做廣告投放平臺(tái)系統(tǒng)
我的目標(biāo)是能夠運(yùn)行windows 下的大部分PE格式的程序,這一點(diǎn)通過(guò)實(shí)驗(yàn)已經(jīng)證明完全是可行的。
PE格式主要有exe dll sys等文件,這三個(gè)文件可以用相同的函數(shù)解析,
主要有以下段組成,
?1、文件頭,包含DOS文件頭、PE文件頭、段信息等
2、.text區(qū)段:包含可執(zhí)行代碼,也稱為代碼區(qū)段。
3、.data區(qū)段:包含已初始化的全局和靜態(tài)變量。
4、.rdata區(qū)段:包含只讀數(shù)據(jù),如常量、字符串等。
5、.bss區(qū)段:包含未初始化的全局和靜態(tài)變量,該區(qū)段在文件中不占用空間,只在內(nèi)存中分配。
6、.idata區(qū)段:包含導(dǎo)入表,用于存儲(chǔ)程序運(yùn)行時(shí)需要?jiǎng)討B(tài)鏈接的外部函數(shù)和庫(kù)的信息。
7、.rsrc區(qū)段:包含資源數(shù)據(jù),如圖標(biāo)、位圖、字符串等。
exe、dll、sys區(qū)別主要是入口函數(shù)不用,其他基本一樣。
因此只需要將文件分段加載至內(nèi)存,再處理好導(dǎo)入表,還有一些重定位等需要處理,就可以正常運(yùn)行。
ntoskrnl.exe hal.exe 以及sys加載至內(nèi)核
ntdll.dll kernel32.dll user32.dll gdi32.dll等加載到用戶進(jìn)程。他們之間做api處理相應(yīng)調(diào)用
用戶進(jìn)程與內(nèi)核用kiFastSystemCall 調(diào)用 ,sysenter_entry 接收內(nèi)核的調(diào)用,并返回用戶態(tài)。
以上過(guò)程均已通過(guò)代碼實(shí)驗(yàn)成功。
現(xiàn)在要處理是驅(qū)動(dòng)程序 sys的加載與調(diào)用,主要是內(nèi)核api的資料比較少,還在試驗(yàn)當(dāng)中。