1. 程式人生 > >程式阻礙OD除錯的方式1

程式阻礙OD除錯的方式1

一個簡單軟體阻礙OD除錯的方式:

1.

API函式

IsDebuggerPresent 

確定呼叫程序是否由使用者模式的偵錯程式除錯。

語法

BOOL WINAPI IsDebuggerPresent(void);

引數

該函式沒有引數

返回值

如果當前程序執行在偵錯程式的上下文,返回值為非零值。

如果當前程序沒有執行在偵錯程式的上下文,返回值是零。

2.第一個示例:

該程式通過IsDebuggerPresent  函式的返回值為1(非零值)使程式以不同的方式結束,阻止除錯軟體OD對自己除錯,返回值為1時讓除錯過程跳進系統領空,不能進行操作的區域,使程式(程序)異常終止。

3.第二個示例:

該程式通過IsDebuggerPresent  函式的返回值為1(非零值)使程式無條件直接跳轉到(JMP跳轉)程式結束的位置,使程式(程序)執行結束。

4.第三個示例:

該程式通過IsDebuggerPresent  函式的返回值為1(非零值)使程式無條件直接跳轉到一個受保護的地址,使程式崩潰(我認為是被作業系統踢出來的)。