SIGTRAP 反调试

当程序触发SIGTRAP信号,通常用于操作系统与调试器之间的交互。然而,在自动生成SIGTRAP信号并处理时,若调试器介入,原本在信号处理函数中还原断点的逻辑将无法执行,可能导致程序陷入调试死循环,从而实现反调试的效果。
摘要由CSDN通过智能技术生成
SIGTRAP : 调试器设置断点时发出的信号
// arm 断点指令
Thumb	0x01 0xde
Thumb2	0xf0  0xf7  0x00  0xa0
Arm	0x01 0x00 0x9f   0xef
</pre><pre code_snippet_id="1722808" snippet_file_name="blog_20160621_5_730062" name="code" class="html">//intel
CC           int3
CD 03         int 0x3


当促发指令断点时候,这是操作系统会收到 SIGTRAP 信号,并传给调试器,调试器收到信号会还原被设置断点指令,退回pc到值断点处。


那么问题来了,当我们自几signal 出 SIGTRAP 信号处理函数 sigfun 

 signal(SIGTRAP,sigfun);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值