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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值