輸入表是PE文件結構中不可或缺的部分,輸入表也稱之爲「導入表」。 要想了解輸入表,首先還得先從DLL文件入手,dll文件也就是「動態連接庫文件」,這些文件中有不少的導入函數,這些函數不會直接被執行,當一個程序 (EXE)運行時,導入函數是被程序調用執行的,其執行的代碼是不在主程序(EXE)中的一小部分函數,其真正的代碼卻在DLL文件中。在PE文件映射到 內存後,windows將相應的DLL文件裝入,EXE文件經過「輸入表」找到相應的DLL中的導入函數,從而完成程序的正常運行,這一動態鏈接的過程都 是由「輸入表」參與的。windows
手工重建輸入表
用LoadPe查看文件的輸入表RVA和大小,記錄下來
而後把文件用OD載入,打開ImportREC,選中咱們要重建輸入表的文件,點「IAT自動搜索」,再填入輸入表RVA和大小,點擊「得到輸入表」, 「顯示無效」,若是找到了無效的輸入表函數就刪除掉,最後「修理Dump」,選中你用OD載入的文件,也就是要重建輸入表的文件,就能夠了。這樣改後,用 C32打開重建後的文件,把原來的輸入表函數填充掉便可ide
工具重建輸入表
用LoadPe找到輸入表RVA,轉換爲偏移地址。而後打開IAT重建工具,選中所有的輸入表dll,導出IAT爲一個文本文件,刪除IAT,增長區段,重建IAT,選中剛纔導出的文本文件就能夠了。而後刪掉原來的輸入表便可(從原來的輸入表偏移地址開始填充到末尾)函數
3. 輸入表函數、輸入表dll移位
把輸入表函數及其前面的兩個「提示」機器碼複製下來,移動到別的地方,而後記錄下如今的位置,轉換爲內存地址,再減去基址獲得RVA,用LoadPe改「Thunk值」爲如今的輸入表函數地址便可工具
4. 修改OriginalFirstThunk、日期時間標誌、ForwarderChain
這樣作能夠在必定程度上防止殺毒軟件的跟蹤查殺,針對國外殺毒軟件對輸入表的查殺通常是有效果的內存
5. 輸入表dll後加空格
這個方法在之前針對nod32有特效,但如今對付最新版的nod32是沒效果的了
還有在對付卡巴啓發查殺的時候,也是有效的。但卡巴查殺一個輸入表函數的時候,你能夠找到這個輸入表函數所在的dll,而後在這個dll名稱後面加空格,通常是能過掉卡巴啓發查殺輸入表的。it