SIGTRAP 反調試

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);

黨有調試的情況下,調試器接管了 SIGTRAP  信號,那我們原本可以在 程序中 sigfun  還原斷點指令的工作就得不到運行,而這個斷點又不是我們在調試器中主動設置的,調試器也沒給我們記錄,那麼就會陷入一個死循環,達到調試目的。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章