-
-
[翻译]使用NtQuerySystemInformation和DuplicateHandle的系统级反调试技术
-
发表于:
2022-2-16 16:50
17098
-
[翻译]使用NtQuerySystemInformation和DuplicateHandle的系统级反调试技术
翻译
原文地址:https://www.x86matthew.com/view_post?id=system_anti_debug
功能:使用NtQuerySystemInformation和DuplicateHandle的系统级反调试技术
我开发了一种反调试技术,它不加区别地针对用户模式调试器,而不是检测是否有个别进程被调试。
总的来说,这种方法的工作原理如下:
1. 使用带有SystemExtendedHandleInformation的NtQuerySystemInformation检索系统中所有打开的句柄列表。
2. 检查是否有进程包含一个活动的调试句柄。
3. 使用带有DUPLICATE_CLOSE_SOURCE标志的DuplicateHandle终止远程进程中的这个句柄。
4. 循环回到步骤#1。
使上述方法复杂化的一件事是在步骤2中识别调试句柄。每个句柄的类型都是通过NtQuerySystemInformation返回的ObjectTypeIndex字段来识别的,但这个值在不同版本的Windows中并不一致。
我们显然可以在一个查找表中硬编码各种可能的值,但通用的解决方案总是更好的。为了计算出当前操作系统的调试手柄类型索引,我采取了以下步骤:
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)