在Windows 2000中,ThreadHideFromDebugger这项技能用到了经常被用来配置线程优先级的API ntdll!NtSetInformationThread(),它是Windows提供的第一个反调试技能之一,成果很是强盛。假如把该标识配置为一个线程,它将遏制发送关于调试变乱的关照。假如为主线程配置了ThreadHideFromDebugger,则这些变乱包罗关于措施完成的断点和关照。该标识的值存储在_ETHREAD布局的HideFromDebugger字段中,如下所示:
- 1: kd> dt _ETHREAD HideFromDebugger 86bfada8
- ntdll!_ETHREAD
- +0x248 HideFromDebugger : 0y1
以下是配置ThreadHideFromDebugger的示例:
- typedef NTSTATUS (NTAPI *pfnNtSetInformationThread)(
- _In_ HANDLE ThreadHandle,
- _In_ ULONG ThreadInformationClass,
- _In_ PVOID ThreadInformation,
- _In_ ULONG ThreadInformationLength
- );
- const ULONG ThreadHideFromDebugger = 0x11;
- void HideFromDebugger()
- {
- HMODULE hNtDll = LoadLibrary(TEXT("ntdll.dll"));
- pfnNtSetInformationThread NtSetInformationThread = (pfnNtSetInformationThread)
- GetProcAddress(hNtDll, "NtSetInformationThread");
- NTSTATUS status = NtSetInformationThread(GetCurrentThread(),
- ThreadHideFromDebugger, NULL, 0);
- }
怎样避开从调试器潜匿线程
为了防备应用措施将线程潜匿到调试器中,必要钩住NtSetInformationThread函数挪用。以下就是一个钩子代码:
- pfnNtSetInformationThread g_origNtSetInformationThread = NULL;
- NTSTATUS NTAPI HookNtSetInformationThread(
- _In_ HANDLE ThreadHandle,
- _In_ ULONG ThreadInformationClass,
- _In_ PVOID ThreadInformation,
- _In_ ULONG ThreadInformationLength
- )
- {
- if (ThreadInformationClass == ThreadHideFromDebugger &&
- ThreadInformation == 0 && ThreadInformationLength == 0)
- {
- return STATUS_SUCCESS;
- }
- return g_origNtSetInformationThread(ThreadHandle,
- ThreadInformationClass, ThreadInformation, ThreadInformationLength
- }
-
- void SetHook()
- {
- HMODULE hNtDll = LoadLibrary(TEXT("ntdll.dll"));
- if (NULL != hNtDll)
- {
- g_origNtSetInformationThread = (pfnNtSetInformationThread)GetProcAddress(hNtDll, "NtSetInformationThread");
- if (NULL != g_origNtSetInformationThread)
- {
- Mhook_SetHook((PVOID*)&g_origNtSetInformationThread, HookNtSetInformationThread);
- }
- }
- }
在钩子函数中,当以正确的方法挪用它时,就将返回STATUS_SUCCESS,而不将节制权转移到原始的NtSetInformationThread函数。
NtCreateThreadEx (编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|