在Linux中检测硬件断点

时间:2015-11-09 09:32:44

标签: c debugging reverse-engineering

我正在尝试为商业Linux软件实施一些最小的防反转保护。计算可执行文件的校验和似乎可以防止软件断点。有没有办法在Linux中检测硬件断点?

1 个答案:

答案 0 :(得分:1)

似乎没有,因为当满足其调试寄存器中的条件时,处理器会执行中断,即程序代码不会发生变化。

当程序在运行时/运行时进入调试器时,您无法[轻松]保护软件断点:调试器将使用导致异常的指令替换指令,捕获异常,停止程序,显示寄存器以及何时继续,恢复指令等。

虽然很多年前我试图破解DBASE并找到了一个非常聪明的技巧:程序在某些时候检查下一条指令是否为INT 3指令(软件断点),如果是,则跳入虚无。花了我几天才找到那个伎俩...