我是靠谱客的博主 粗犷白昼,最近开发中收集的这篇文章主要介绍180311 逆向-反调试技术(4)SystemKernelDebuggerInformation,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1625-5 王子昂 总结《2018年3月11日》 【连续第526天总结】
A. 反调试技术(4)
B.

SystemKernelDebuggerInformation

NativeAPI中还有一个函数ZwQuerySystemInformation
当SystemInformation = SystemKernelDebuggerInformation的时候可以判断是否有系统调试器存在
这个API跟ZwQueryProcessInformation没有多大区别,但是从检测目标可以看出来,它针对的是Kernel,即内核级别的调试器

调试器分为硬件调试器和软件调试器,前者暂不讨论,后者还分为用户态R3调试器和内核态R0调试器

  • 用户态调试器
    VC和OllyDbg是使用DebugAPI来开发的,自身也只是一个Ring3级应用程序,因此只是用户态调试器,只能调试应用程序,无法中断内核,自然也就无法调试驱动。
  • WinDbg
    WinDbg是一个比较奇特的调试器,即可以在用户模式下以R3级别调试,也可以使用Kernel模式进入R0模式调试,还可以调试Dump文件。
  • 内核态调试器
    当它以R0级别双机调试时(因为内核中断时系统都被中断,单机上的程序自然也会被中断,因此无法单机调试)即处于内核态调试器。

值得一提的是,SoftICE这个神奇的程序可以单机调试内核,但它不会被KernelDebugger的API探测到
这跟它们的实现原理有关:
WinDbg在双机调试时,只是通过端口传输了一些数据给系统,真正的内核调试机制是被Windows集成在内核中的。因此当使用调试方式启动系统时,系统会自己标识一些记号,导致KernelDebugger的API可以发现
而SoftICE是自己实现的调试功能,不需要太多操作系统的支持,因此不会被该API发现

可惜的是,SoftICE仅支持到DOS和WIN2000系统,之后就停止开发了。

C. 明日计划
NativeAPI

最后

以上就是粗犷白昼为你收集整理的180311 逆向-反调试技术(4)SystemKernelDebuggerInformation的全部内容,希望文章能够帮你解决180311 逆向-反调试技术(4)SystemKernelDebuggerInformation所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(41)

评论列表共有 0 条评论

立即
投稿
返回
顶部