• 反调试技术总结


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

    一、使用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.注册表项:
          SOFTWAREMicrosoftWindows NTCurrentVersionAeDebug(32位系统)
          SOFTWAREWow6432NodeMicrosoftWindowsNTCurrentVersionAeDebug(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
  • 相关阅读:
    Netty实战
    ObjectTools反射实例
    SpringBoot新增监听器Listener
    拦截器(Inteceptor),过滤器(Filter),切面(Aspect)处理HttpServiceReqeust请求
    Linux CentOS7.2下安装Redis && 配置Redis开机自启动
    JVM命令行工具&垃圾收集器&垃圾收集策略思维导图
    Redis总结
    Java自定义注解的实现
    反射实例
    系统管理员常用的Linux命令
  • 原文地址:https://www.cnblogs.com/HsinTsao/p/7492806.html
Copyright © 2020-2023  润新知