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