Otázka:
Kanonická metoda obcházení techniky antidebugging ZwSetInformationThread
ŹV -
2013-03-24 03:18:53 UTC
view on stackexchange narkive permalink

Jsem si jistý, že mnoho z vás je obeznámeno s tímto klasickým antidebugovým trikem, kterého lze dosáhnout voláním ZwSetInformationThread s ThreadInformationClass nastaveným na 0x11. Ačkoli existuje mnoho modulů OllyDbg za účelem odhalení existence vláken skrytých touto metodou, nebyl jsem schopen najít žádné informace o kanonické technice použité k odkrytí těchto vláken v OllyDbg.

Je funkce obecně závislá na uživatelském režimu (např. SetWindowsHookEx ), nebo je pragmatičtější opravovat instrukce, které buď přímo volají funkci NTDLL, nebo systémová volání, která ji nepřímo vyvolávají?

Jeden odpovědět:
Peter Andersson
2013-03-24 03:51:25 UTC
view on stackexchange narkive permalink

SetWindowsHookEx se pro tento druh hákování opravdu nepoužívá, pokud vím.

Můžete importovat NtSetInformationThread při importu binárního souboru, který chcete analyzovat, a zajistit, aby vždy vrátil úspěch na ThreadHideFromDebugger, ale nepřeposlal volání skutečné funkci. To by bylo slabé, protože by to GetProcAddress nebo manuální import obešel.

Funkci NtSetInformationThread byste mohli zavěsit vložením volání své vlastní funkce do prologu funkce a poté ignorovat ThreadHideFromDebugger a zbytek předat původní funkci .

Velmi se proti tomu radím, ale pro úplnost můžete také připojit NtSetInformationThread do tabulky odeslání systémové služby. zde je dobrý výpis tabulky pro různé verze Windows. Pokud chcete získat index v tabulce sami, můžete jednoduše rozebrat export NtSetInformationThread z ntdll.dll.

Pokud vás zajímá více anti-debugovacích technik, důrazně doporučujeme přečíst Úžasné Peter Ferrie anti-debugging reference.



Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...