資源簡介
關于修改 EXE 文件的導入表,實際上是一個很古老的話題了(如果您是此中高手,請不要在這
篇文章浪費時間了,如果您發現了其中的問題,還請多多指教).一些 PE 相關的軟件,也都實現
了這樣的功能,例如 Stud_PE.Stud_PE 通過添加一個新節并將導入表連同添加的內容一并復
制到新節的方法來實現對 DLL 的導入.使用這樣的方法只要是 PE 格式的 EXE 文件,都可以
實現導入 DLL 的功能,但此方法,實現了通用性,卻增加了文件的大小.對于存放在磁盤上 PE
文件,其中存在著大量的空隙,我們知道 PE 中的數據是按照一定的文件對齊來組
織.IMAGE_OPTIONAL_HEADER 結構中的 FileAlignment 成員保存著文件對齊的大小,這個
成員是在鏈接的時候由鏈接器指定,如果使用 VC 來編寫程序,可以使用 link 中的/filealign 來
調整文件對齊的大小.這里,就是利用這些空隙來使 EXE 在啟動時載入 DLL(類似于一些病毒
的技術),同時并不改變文件的大小.如何實現?還是要修改導入表.然而這種方法的缺點也是很
明顯的,并不是每個EXE都有足夠的空間讓我們來插入數據,按照我的測試,在 Windows 2003
Enterprise sp1 中,lsass.exe 以及 services.exe 都是有足夠的空間進行插入,而在 Windows 2000
Advance Server sp4 中,lsass.exe 無法插入,services.exe 可以插入.這些 EXE 文件的
FileAlignment 為 0x200H.為什么選擇這些 exe 文件?說到這里我的意圖已經很明顯了,黑客之
門便是利用這種方法實現自啟動的木馬.
篇文章浪費時間了,如果您發現了其中的問題,還請多多指教).一些 PE 相關的軟件,也都實現
了這樣的功能,例如 Stud_PE.Stud_PE 通過添加一個新節并將導入表連同添加的內容一并復
制到新節的方法來實現對 DLL 的導入.使用這樣的方法只要是 PE 格式的 EXE 文件,都可以
實現導入 DLL 的功能,但此方法,實現了通用性,卻增加了文件的大小.對于存放在磁盤上 PE
文件,其中存在著大量的空隙,我們知道 PE 中的數據是按照一定的文件對齊來組
織.IMAGE_OPTIONAL_HEADER 結構中的 FileAlignment 成員保存著文件對齊的大小,這個
成員是在鏈接的時候由鏈接器指定,如果使用 VC 來編寫程序,可以使用 link 中的/filealign 來
調整文件對齊的大小.這里,就是利用這些空隙來使 EXE 在啟動時載入 DLL(類似于一些病毒
的技術),同時并不改變文件的大小.如何實現?還是要修改導入表.然而這種方法的缺點也是很
明顯的,并不是每個EXE都有足夠的空間讓我們來插入數據,按照我的測試,在 Windows 2003
Enterprise sp1 中,lsass.exe 以及 services.exe 都是有足夠的空間進行插入,而在 Windows 2000
Advance Server sp4 中,lsass.exe 無法插入,services.exe 可以插入.這些 EXE 文件的
FileAlignment 為 0x200H.為什么選擇這些 exe 文件?說到這里我的意圖已經很明顯了,黑客之
門便是利用這種方法實現自啟動的木馬.
代碼片段和文件信息
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????904496??2007-08-19?16:47??C和匯編編程資料收集.pdf
-----------?---------??----------?-----??----
???????????????904496????????????????????1
-----------?---------??----------?-----??----
?????文件?????904496??2007-08-19?16:47??C和匯編編程資料收集.pdf
-----------?---------??----------?-----??----
???????????????904496????????????????????1
- 上一篇:王爽的《匯編語言》第二版的答案
- 下一篇:vfp6.0幫助文件
評論
共有 條評論