-
-
[原创]XAntiDenbug的检测逻辑与基本反调试
-
发表于:
2024-3-2 16:53
12103
-
[原创]XAntiDenbug的检测逻辑与基本反调试
可能存在错误 大佬们可以的话给提示
XAntiDebug 初始化获取当前模块地址 与设置了一个标识
获取当前系统相关信息
会设置线程标识
把调试端口置空
添加调加校验crc32的初始值
获取64位 ZwQueryInformationProcess的地址 然后减去ntdll64位模块地址 算偏移=0x000000000009d370
这段代码是直接分析ntdl pe结构 然后计算这个偏移 得到代码 直接得到文件中的代码
为了得到映射的下标 构造系统调用 代码目保证应用层的NtQueryInformationProcess正确
并使用crc保护自己的代码
fs:[30h]指向PEB的基址
检测BeingDebugged的值
实际上是查询NtQueryInformationProcess ProcessDebugPort
如果DebugPort存在返回 true
CloseHandle->NtClose 如果存在debuginfo与debugPort抛出异常 0xC0000008L被调试器接管
我这边追流程 好像还是DuplicateHandle...->ObDuplicateObject 调用了NtClose
0x1E ProcessDebugObjectHandle
DbgkOpenProcessDebugPort
如果DebugPort未存在 返回 STATUS_PORT_NOT_SET 端口未设置
这个没看懂和上面有区别吗
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2024-3-2 16:54
被tian_chen编辑
,原因: