前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >64位内核开发第五讲,调试与反调试

64位内核开发第五讲,调试与反调试

作者头像
IBinary
发布2019-06-14 14:24:15
1.2K0
发布2019-06-14 14:24:15
举报
文章被收录于专栏:逆向技术逆向技术

反调试与反反调试

一丶反调试的几种方法

1.DebugPort端口清零

debugport是在EPROCESS结构中的.调试时间会通过DebugPort端口将调试事件发送给ring3进行调试的.如果设置为0.则ring3就无法进行调试了 也就是说你不能单步了.等相关调试操作了.

如果做反调试.开启一个线程.不断的对这个DebugPort进行清零. 进而进行反调试. 思路: 1.找到当前进程的EPROCESS结构 2.通过硬编码找到这个位置.(硬编码) 如果是硬编码.就需要自己根据系统去判断.

2.KdDisableDebugger

在内核中调用这个函数后,它会检测是否检测是否挂载了windbg. 也是开启线程.不断调用.

3.ring3下的 isDebuggerpresent和CheckRemoteDebuggerPresent

应用层可以调用这两个函数判断

4.使用Hook手段.

如在内核中进行HOOK

下面列出函数名

函数名字

作用

HOOK后

NtOpenThread

创建内核线程

防止调试器在内部创建线程

NtOpenProcess

打开进程

防止OD等调试工具在调试列表中看到

kiAttachProcess

附加调试进程

防止被附加

NtReadVirtualMemory

读取虚拟内存

防止自己进程被读内存(ReadProcessMemory)

NtWriteVirtualMemory

写内存

防止内存被写

KdReceivePacket

KDCOM.dll中Com串口接收数据的函数

你自己做过滤

KdSendPacket

KDCOM.dll中的Com串口发送数据函数

HOOK上面跟这个函数.可以防止双机调试

二丶反反调试

上面说的是防,那么我们可以进行攻击

1.针对DebugPort

1.可以对DebugPort下内存断点.一旦有程序进行修改.就会被断下. 从而找到对应的反调试代码.对这个代码进行patch.

2.可以自建调试体系.不走它的.进而绕过这个保护.

2.针对 KdDisableDebugger

这个函数会检测调试器.从而禁止被调试.

可以在对应的这些函数地址下段点.然后对相关代码进行patch.比如进行返回.

3.针对HOOK 如果是HOOK.我们可以借助一些工具进行恢复.当然如果可以你自己也可以写恢复代码.这看你当时的需求了. 常见的就比如: pchunter PowerTools anti(安天)

3.花指令

进行反调试可以进行加花.故意进行干烧.

如:

代码语言:javascript
复制
push edx
pop edx
inc ecx
dec ecx
add  esp,1
sub esp,1

直接对一个寄存器进行加.然后进行减.操作完根本不会影响寄存器的原值.

代码语言:javascript
复制
jmp LABEL
db opcode
LABEL

还有这种.中间加个db.但是他会影响你.

db Opcode跟后面指令结合就会错乱.但是不会影响程序正常执行.

代码语言:javascript
复制
jz  label
jnz label
db opcode
Label

不管是否正确.都会进行强制跳转.进而进行干扰.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-06-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 反调试与反反调试
    • 一丶反调试的几种方法
      • 1.DebugPort端口清零
      • 2.KdDisableDebugger
      • 3.ring3下的 isDebuggerpresent和CheckRemoteDebuggerPresent
      • 4.使用Hook手段.
    • 二丶反反调试
      • 1.针对DebugPort
      • 2.针对 KdDisableDebugger
      • 3.花指令
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档