目录/参考资料:https://www.cnblogs.com/railgunRG/p/14412321.html


调试体系概述

0.什么是自建调试体系?

  就是复写windows的调试api,使得调试时进入我们自己定义的领空。

  自建调试体系需要写驱动,是一个比较大的项目。

1.为什么要自建调试体系?

  • 过保护
  • 保护程序自身(别人进入自己写的api时,如果要调试自己的进程..)

2.自建调试体系的步骤

  2.1-完成中心API(围绕这些api进行复写)

  • DebugActiveProcess(基本)
  • WaitForDebugEvent(基本)
  • ContinueDebugEvent(基本)
  • WriteProcessMemory
  • ReadProcessMemory
  • OpenProcess
  • OpenThread
  • GetContextThread(硬件断点)
  • SetContextThread(硬件断点)
  • VirtualProtectEx(软件断点)
  • Int3(Hook GDT0008,一模一样也可,防止自身函数被破坏)

  2.2-转移调试端口

  • 完成中心api后,需要移位DebugPort。

  2.3-删除多余代码(多余代码->反调试更容易)

  2.4-写入OD插件

3.自建调试体系的基本方法

  首先要把内核中的数据结构转移出来,并做一些SSDTHook和InlineHook。

  之后,要写出自己的调试器。(最起码得能单步,步过)

最新文章

  1. mysqldump: Got error: 1142: SELECT, LOCK TABLES command denied to user 'root'@'localhost' for table 'accounts' when using LOCK TABLES
  2. mysql 日期加减操作
  3. wpf Popup Win8.0 bug HorizontalOffset 弹出位置偏移
  4. C#枚举类型和结构体
  5. @ModelAttribute注解的作用
  6. CSRF攻击之原理讲解
  7. 浅谈用java解析xml文档(四)
  8. 《使用wxWidgets进行跨平台程序开发》chap02——一个简单的应用程序
  9. 如何在search中动态的显示和隐藏tree中的字段
  10. Trie implementation
  11. 自绘XP风格菜单
  12. %c输入应注意的问题
  13. word vbs脚本 设置所有题注样式为蓝色,下划线
  14. linux系统最常用命令(持续更新)
  15. 201521123094 《Java程序设计》第1周学习总结
  16. Windows 2008 r2上安装MySQL
  17. [学习笔记]修改关键跳无效且关键CALL又不存在的情况
  18. 用递归方法计算斐波那契数列(Recursion Fibonacci Sequence Python)
  19. awk简单用法-(1)
  20. HihoCoder - 1807:好的数字串 (KMP DP)

热门文章

  1. Dart 异步编程(二):async/await
  2. 使用MindSpore计算旋转矩阵
  3. UVA1306 The K-League(最大流)
  4. 【Java】学习路径58-TCP聊天-双向发送实现
  5. 【Java】学习路径46-两种创建多线程的方法、以及在匿名内部类创建线程
  6. D - Distinct Trio
  7. Linux之搭建FTP服务
  8. .NET使用StackTrace获取方法调用者信息
  9. 关于MicroPython mpremote工具 的一些用例,闲聊
  10. HDFS 伪分布式环境搭建