驅(qū)動(dòng)-進(jìn)程強(qiáng)殺
在Windows平臺(tái),經(jīng)常會(huì)碰到惡意或者流氓軟件,我們使?常規(guī)的?式是?法結(jié)束其進(jìn)程,有些甚?于任 務(wù)管理器終?都會(huì)報(bào)錯(cuò)。我們需要了解?個(gè)進(jìn)程的本質(zhì)。
????? ? -進(jìn)程是基于線程調(diào)度才會(huì)執(zhí)?的。
????? ? -如果?個(gè)進(jìn)程下所有線程都“死亡”,那么也就意味著進(jìn)程的結(jié)束。
我們通過(guò)逆向分析NtTerminateProcess來(lái)查看Windows是怎么處理結(jié)束進(jìn)程的:
IDA中打開(kāi)內(nèi)核?件,查看NtTerminateProcess函數(shù)

PspTerminateAllThreads字?意思不難看出結(jié)束全部線程,IDA繼續(xù)查看PspTerminateAllThreads函數(shù)

PspTerminateThreadByPointer此函數(shù)中會(huì)插?APC結(jié)束線程.通過(guò)特征碼定位并調(diào)?其結(jié)束進(jìn)程下所有線
程達(dá)到強(qiáng)殺進(jìn)程.
驅(qū)動(dòng)代碼:
????特征碼定位PspTerminateThreadByPointer,不同操作系統(tǒng)版本均有不同所以就不貼查詢(xún)函數(shù)代碼了



????????????????????????????????????????????????????????????????????????????????????????????------------Ferry 學(xué)院