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.