程序保護原理Hook函式Openprocess

2021-06-26 22:28:40 字數 2559 閱讀 4854

win32子系統:

win32是windows的乙個子系統,還有另外的子系統如os/2、posix等,不同的子系統系統提供了不同的程式設計介面,即api,一般說的api指的就是win32 api。

win32子系統是最純正的windows子系統,提供了大量的api函式,程式設計師只需要熟練的使用這些api就可以寫出windows應用程式,當然程式設計師也可以考慮第三方庫,如vc提供的mfc,但這些庫不過是在應用程式和win32子系統中間加了一層封裝而已,沒有本質的區別。

windows api 分為三類分別是user函式,gdi函式,和kernel函式

user函式(user32.dll):這類函式管理視窗,選單,對話方塊和控制項

gdi函式(gdi32.dll):這類函式在物理裝置上執行繪圖操作 -shadow ssdt,-dwin32k.sys

kernel函式(kernel32.dll):這類函式管理非gui資源,例如,程序,執行緒,檔案和同步服務等.

ntkrnlpa.exe+ntkrnlpa.lib

native api(ntdll.dll)

native api 是可由使用者模式和核心模式程式呼叫的nt系統服務集介面,它們直接由nt作業系統實現。

ssdt

ssdt的全稱是system services descriptor table,系統服務描述符表。這個表就是乙個把ring3的win32 api和ring0的核心api聯絡起來。ssdt並不僅僅只包含乙個龐大的位址索引表,它還包含著一些其它有用的資訊,諸如位址索引的基位址、服務函式個數等。

1

、應用層到核心的流程

openprocess

為例:

//ring3環應用程式的呼叫流程

xx.dll----kernel32.openprocess---ntdll.ntopenprocess*****==ntdll.zwopenprocess

7c92d5e0>  b8 7a000000     mov eax,7a

7c92d5e5    ba 0003fe7f     mov edx,7ffe0300

7c92d5ea    ff12            call dword ptr ds:[edx]

7c92d5ec    c2 1000         retn 10

//ring3環到ring0環的切換

7ffe0300  7c92e4f0 ntdll.kifastsystemcall //eax

引數

7c92e4f0>  8bd4           

mov edx,esp

7c92e4f2    0f34           

sysenter    //

切換到核心

0xa53a41aa   0x805cc40a

//進入核心以後,通過查詢

ssdt

表,找到核心函式ntkrnlpa.ntopenprocess進行呼叫

jmp       ntkrnlpa.ntopenprocess

核心呼叫流程:

核心ntkrnlpa.zwopenprocess--

-ssdt--ntkrnlpa.ntopenprocess

2

、**過保護原理

除錯程序必經過程:

獲取程序

id-openprocess

開啟被除錯的程序;

read processmemory()

讀取除錯程序的

pe映象;

writeprocessmemory()

寫程序的記憶體下斷點。

很多軟體保護程序的方法就是在ring0環hook掉openprocess函式的核心函式ntopenprocess,進行過濾處理;當我們用偵錯程式對它的程序進行除錯時,就會出現開啟程序失敗,無法引導程式。

編寫hook函式,改寫hook函式

在conftest裡面加上這麼乙個函式,那麼在命令列裡面使用pytest 會出現如下效果 編寫 命令列新增引數 def pytest addoption parser mygroup parser.getgroup hogwarts group 將下面所有的option都展示最這個group下 my...

鉤子(HOOK)函式

我的理解是 鉤子函式可以 鉤住 我喜歡的東西 在window中就是我喜歡的訊息 這應該就是鉤子函式叫鉤子函式的原因吧。鉤子函式的意義 用處 在於 我寫了乙個window程式,在程式中我寫了一段 呼叫window的api來實現鉤子 這段 被系統通過系統呼叫,把其掛入系統中,然後我就可以對我感興趣的訊息...

Hook相關函式

add action 與 add filter的呼叫內容一樣其引數也相同 函式名 add action 函式說明 將函式連線到指定action 動作 在plugin api action reference 上檢視動作hook列表。wordpress核心呼叫do action 時觸發動作。函式使用方...