采用修改導入節的HOOK方式使用范圍
HOOK有很多種方法,修改導入節的指定API地址是一種方式,但這種方式有缺限,請看下面解釋。
一般的PE文件對于靜態導入的文件在其導入節中指定對應的API地址,但WINDOWS中的很多庫文件是以DLL的方式連接的,因此在PE的導入節中并沒有該符號的定義,所以使用這種方式對于那些使用LOADLIBARY和GETPROCESS的PE文件就HOOK不成功了。
這個時候應該使用其他的HOOK辦法,例如:遠程線程技術。
留下點回憶
HOOK有很多種方法,修改導入節的指定API地址是一種方式,但這種方式有缺限,請看下面解釋。
一般的PE文件對于靜態導入的文件在其導入節中指定對應的API地址,但WINDOWS中的很多庫文件是以DLL的方式連接的,因此在PE的導入節中并沒有該符號的定義,所以使用這種方式對于那些使用LOADLIBARY和GETPROCESS的PE文件就HOOK不成功了。
這個時候應該使用其他的HOOK辦法,例如:遠程線程技術。
按照你前面說的,應該是HOOK API,只是我不知道你后來說遠程線程是什么意思。遠程線程只不過是一種Inject DLL的方式,至于你說的要HOOK API,一種解決方法就是在函數入口 Jmp detours function 回復 更多評論
我后來也看到了這個問題,遠程線程是一方面,但修改導入節對于動態調用的方式是不行的,需要取得GetProcAddress來得到地址,且跳轉。 回復 更多評論
呵呵,都不知道你反復提到遠程線程是為什么,遠程線程作為置入DLL的方法還是不錯的,對于動態加載的DLL,修改導入節的方式當然是不行的,而且使用過程中會發現,很多人還是偏向于使用動態加載的,所以說,修改函數頭才是王道啊.沒見Detours用起來是那么的爽嗎. 回復 更多評論
只有注冊用戶登錄后才能發表評論。 | ||
【推薦】100%開源!大型工業跨平臺軟件C++源碼提供,建模,組態!
![]() |
||
網站導航:
博客園
IT新聞
BlogJava
博問
Chat2DB
管理
|
||
|