反调试技术总结

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反调试技术总结相关的知识,希望对你有一定的参考价值。

总结了一下网上的反调试技术,记录一下

一、使用WindowsAPI :
  1.IsDebuggerPresent
  2.CheckRemoteDebuggerPresent ->call NtInformationProcess( 2参数ProcessInformationClass)
  3.NTQueryObject(2参数ObjectInformationClass)检查调试对象
  4.NTQuerySystemInformation( 1参数SystemInformationClass)
  5.ZwSetInformationThread(2参数ThreadInformationClass)设置ThreadHideFromDebugger,使线程与调试器强制分离
二、手动检测数据结构
  1.IsDebuggerPresent 查看peb
  2.ProcessHeap  查看PEB结构的0x18处 ProcessHeap中的ForceFlags和Flags
  3.检测NTGlobalFlag
三、检测调试器:
  1.注册表项:
      SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug(32位系统)
      SOFTWARE\Wow6432Node\Microsoft\WindowsNT\CurrentVersion\AeDebug(64位系统)
  2.窗口检测:
      FindWindow  EnumWindow
  3.进程检测
  4.检测父进程
  5.是否有SeDebugPrivilege权限
  6.检测时间差
      使用rdtsc指令
      使用QueryPerformanceCounter和GetTickCount
  7.断点检测
      软件断点
      硬件断点
  8.执行代码校验和检查
四、干扰调试器
  1.使用TLS回调
  2.使用异常
      int 3
      int 2d
      设TF单步异常
      汇编插入异常
五、加密,加花
 
 
详解见相关博客:http://bbs.pediy.com/thread-212371.htm
     http://blog.csdn.net/qq_32400847/article/details/52798050

以上是关于反调试技术总结的主要内容,如果未能解决你的问题,请参考以下文章

Android签名验证与反调试机制的对抗技术

Android签名验证与反调试机制的对抗技术

[转转]反调试技巧总结-原理和实现-----转

WIN10 X64下通过TLS实现反调试

过反调试

一种基于TLS的高级反调试技术