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

DebugObject

之前都是从被调试进程入手找痕迹,除此以外调用了DebugAPI的调试器必然要向系统进行声明注册,因此从调试器一边寻找痕迹也是可行的

调试器与被调试程序建立关系有两种途径

  • 在创建进程时设置DEBUG_PROCESS
  • 调用DebugActiveProcess附加到某个一运行的进程上

当调试器开启的时候会创建一个DebugObject,并且储存在了NtCurrentTeb()->DbgSs Reserved[1]处

普通的进程中DbgSsReserved[1]应该为NULL,因此此处如果有值那么就说明该进程是一个用户态的调试器进程

Ntdll中有导出函数可以操作这个域:DbgUiGetThreadDebugObject(VOID)
因此可以通过这个方法来判断一个进程是不是调试器,进而反调

然而这个函数只能判断某一个进程,有些累赘
再向上追踪可以发现DebugObject是由ZwCreateDebugObject调用了ObCreateObject来创建的,因此可以用ZwQueryObject查询所有对象的类型,若发现DebugObject的数目不为0,就说明系统中此时运行着调试器

诚然有调试器并不意味着对方就是在破解自己的软件,不过普通用户一般是不会开着调试器的,所以从这个角度想,错杀还是可以接受的

C. 明日计划
反调试技术(4)

180310 逆向-反调试技术(3)DebugObject相关推荐

  1. 180306 逆向-反调试技术(1)BeingDebugged

    1625-5 王子昂 总结<2018年3月6日> [连续第521天总结] A. 反调试技术(1) B. BeingDebugged Win32API为程序提供了IsDebuggerPres ...

  2. 静态反调试技术(3)

    文章目录 ZwSetInformationThread 破解方法 **调试程序代码**: 利用TLS回调函数(详情通过以下链接查看) ETC 破解之法 **调试程序代码**: 篇章大总结: 反调试技术 ...

  3. 静态反调试技术(2)

    文章目录 NtQueryInformationProcess() `ProcessDebugPort`(0x7) CheckRemoteDebuggerPresent() ProcessDebugOb ...

  4. 静态反调试技术(1)

    文章目录 声明 静态反调试目的 注意 PEB https://blog.csdn.net/CSNN2019/article/details/113113347 BeingDebugged(+0x2) ...

  5. 反调试技术揭秘(转)

    在调试一些病毒程序的时候,可能会碰到一些反调试技术,也就是说,被调试的程序可以检测到自己是否被调试器附加了,如果探知自己正在被调试,肯定是有人试图反汇编之类的方法破解自己.为了了解如何破解反调试技术, ...

  6. windows平台下的反调试技术

    在调试一些病毒程序的时候,可能会碰到一些反调试技术,也就是说,被调试的程序可以检测到自己是否被调试器附加了,如果探知自己正在被调试,肯定是有人试图反汇编啦之类的方法破解自己.为了了解如何破解反调试技术 ...

  7. Windows反调试技术全攻略

    在调试一些病毒程序的时候,可能会碰到一些反调试技术,也就是说,被调试的程序可以检测到自己是否被调试器附加了,如果探知自己正在被调试,肯定是有人试图反汇编啦之类的方法破解自己.为了了解如何破解反调试技术 ...

  8. 如何绕过反调试技术——PhantOM插件总结

    PhantOM是OllyDbg的一款插件,可以用来绕过大多数的反调试技术,功能十分强大,所以单独对这个插件进行使用总结.(Ps:现在似乎不怎么常用,在64位下的兼容性比较差,现在比较常用的是sharp ...

  9. 详解反调试技术(转)

    反调试技术,恶意代码用它识别是否被调试,或者让调试器失效.恶意代码编写者意识到分析人员经常使用调试器来观察恶意代码的操作,因此他们使用反调试技术尽可能地延长恶意代码的分析时间.为了阻止调试器的分析,当 ...

最新文章

  1. Android中的定时器AlarmManager
  2. Data Set 投票
  3. 汇编语言典型例子详解_数据分析常用的7大思维方法详解
  4. Eclipse Debugger Error - Web Launch Already running的处理方法
  5. mysql数据库快捷添加外键_mysql 数据库添加外键的几种方式
  6. 破碎的互联网下,加密技术正在恢复数据主权!
  7. .NET开源 Visual Studio支持Android和iOS 编程
  8. MyBatis如何返回自增的ID
  9. Parse分析之 -- Enum.Parse
  10. mybatis3动态创建表,判断表是否存在,删除表
  11. Cisco Packet Tracer思科模拟器中OSPF动态路由配置
  12. Matlab根据广播星历表计算卫星坐标
  13. Latex 数学符号速查字典(第2版)
  14. 算法竞赛专题解析(0)--写作计划
  15. Halcon——颜色检测
  16. A1012 The Best Rank
  17. The World is Flat 世界是平坦的
  18. yield 跟 yield * 的区别
  19. 购买计算机一定要追求独立显卡,购买电脑的常识.pptx
  20. elasticsearch 父子文档

热门文章

  1. swoole和java_swoole比java怎样_PHP开发框架教程
  2. java spring getbean_spring getbean 方法分析(很实用!)
  3. 【Java】JVM学习(一)
  4. excel解决“输入值非法”问题
  5. 服务端安全之XML外部实体注入(XXE)
  6. 从神话诗歌到奇幻科学的人类探索史·《月亮》·一
  7. 面向对象程序设计主要的三个特征
  8. Google要做手机芯片 但和苹果的不太一样
  9. python1~10阶乘_python阶乘怎么写
  10. HTML/CSS/JavaScript——VSCode的插件推荐