02 · Breakpoints
Invisible Software Breakpoint
INT3 handled in the virtualization layer — original bytes unchanged, scans find nothing.
How it works
全程不向目标内存写入字节。VMX 层对执行流做指令地址监控,RIP 命中断点地址时触发 VM exit 暂停并回放上下文。目标代码段字节零修改,0xCC 扫描、CRC/哈希完整性校验都返回干净结果。
Scenarios
反作弊代码段扫描
反作弊扫描 0xCC 特征,因字节未改返回正常,断点不暴露。
目标自校验完整性
目标周期性 CRC/哈希校验代码段,校验通过,调试行为无感。
DR 清零替代方案
反调试清空 DR 后,软件断点不依赖 DR,继续稳定下断。
Specs
| 断点类型 | 执行断点(指令地址命中) |
|---|---|
| 断点数量 | 无上限(地址匹配,不占 DR) |
| 检测面 | 0 字节内存修改 |
| 性能 | 仅命中时单次 VM exit,稳态零开销 |
| 部署层 | VMX non-root 指令流监控 |
FAQ
和硬件断点有什么区别?
硬件断点依赖 DR0-3 共 4 组寄存器、数量受限且易被清零;软件断点不占 DR、数量无上限,可叠加使用。
会拖慢目标程序吗?
不会。仅在执行流命中断点地址时触发一次 VM exit,未命中时稳态零开销。
Related
Ready for invisible debugging?
Free 2h/day, download in seconds.