題:
規避ZwSetInformationThread反調試技術的規範方法
ŹV -
2013-03-24 03:18:53 UTC
view on stackexchange narkive permalink

我確定你們中的許多人都熟悉通過調用 ZwSetInformationThread 並將 ThreadInformationClass 設置為0x11來完成的經典反調試技巧。儘管存在許多OllyDbg模塊是為了揭示此方法隱藏的線程的存在,但我無法找到有關在OllyDbg中取消隱藏這些線程的規範技術的任何信息。

該函數是否通常掛在用戶模式下(例如 SetWindowsHookEx ),或者修補直接調用NTDLL函數或間接調用NTDLL函數的指令的實用性?

一 回答:
Peter Andersson
2013-03-24 03:51:25 UTC
view on stackexchange narkive permalink
據我所知,

SetWindowsHookEx並沒有真正用於這種掛鉤。

您可以將NtSetInformationThread鉤在要分析的二進製文件的導入中,並使其始終在ThreadHideFromDebugger上返回成功,但不將調用轉發給實際函數。這將很弱,因為GetProcAddress或手動導入會繞過它。 。

我強烈建議不要這樣做,但是出於完整性考慮,您也可以將NtSetInformationThread鉤在系統服務分配表中。在此處的不同Windows版本中都有很好的表轉儲。如果您想自己獲取表中的索引,則只需從ntdll.dll中反彙編NtSetInformationThread導出即可。

如果您對更多的反調試技術感興趣,強烈建議閱讀 Peter Ferrie反調試參考



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...