第一天 体系概述:
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。
之后,要写出自己的调试器。(最起码得能单步,步过)
第二天 重写DebugActiveProcess: