繁体   English   中英

在Linux中检测硬件断点

[英]Detecting hardware breakpoints in Linux

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

似乎没有,因为当调试寄存器中的条件得到满足(即程序代码不变)时,是处理器会中断。

而且,无论何时/在运行时将程序放入调试器中,您都无法[轻松地]防止软件断点:调试器将用导致和异常的指令替换一条指令,捕获异常,暂停程序,显示注册,并在您希望其继续执行时恢复指令等。

尽管很多年前,我试图破解DBASE,但发现了一个非常聪明的窍门:该程序在某个时刻检查了下一条指令是否为INT 3指令(软件断点),如果是,则跳入无内容。 花了我几天的时间找到这个窍门...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM