Stud_PE通過添加壹個新節並將導入表和添加的內容壹起復制到新節來導入DLL。
使用這種方法,只要是PE格式的EXE文件,都可以實現導入DLL的功能,但是這種方法實現了通用性,但是增加了文件大小。
對於存儲在磁盤上的PE文件,有很多空隙。我們知道PE中的數據是按照壹定的文件對齊方式組織的。IMAGE_OPTIONAL_HEADER結構中的文件對齊成員保存文件對齊大小,該大小由鏈接器在鏈接時指定。如果使用VC編寫程序,可以使用鏈接中的/file alignment來調整文件對齊大小。
在這裏,這些間隙用於使EXE在啟動時加載DLL(類似於某些病毒技術),而不改變文件大小。如何實現這壹點?我們仍然需要修改導入表。然而,這種方法的缺點是顯而易見的。不是每個EXE都有足夠的空間讓我們插入數據。根據我的測試,lsass.exe和services.exe有足夠的空間在Windows 2003 Enterprise sp1中插入數據。在Windows 2000 Advance Server sp4中,不能插入lsass.EXE,但可以插入services.exe。這些exe文件的文件對齊方式是0x200H。為什麽選擇這些exe文件?說了這麽多,我的意圖很明顯。黑客之門是壹匹用這種方法啟動自己的特洛伊馬。
上面有很多廢話。現在直接粘貼代碼。具體實現見程序的註釋。假設妳對PE格式有壹定的了解。將內容復制到剪貼板。