用vc編寫任務管理器殺不掉的程序

2021-05-21 19:24:32 字數 692 閱讀 3696

記得自己上高中的時候,我們上微機課,那時候每個機子都有個監控程式,很麻煩,老師上課了機子就被鎖住了,什麼也做不了,很不爽,那時候大家都知道用任務管理器結束程序,但是偏偏這個程序結束不了,後來我找到了個方法,在cmd下執行ntsd -c q -p 程序id,這樣這個監控程式就會結束了。那時候只知道這個方法,但不知道為什麼任務管理器無法結束那個程序。現在我們也來寫乙個任務管理器殺不掉的程序吧。

上面的**是在我前一篇的基礎上,做了些修改,讓它更容易使用,並且修正了一些錯誤。大家可以寫個exe呼叫上面的dll,看看效果啊。

當然,ring0級的工具結束上面的程式還是很easy的。其實上面的程式只是給大家做了個演示,告訴那些殺不掉的程序是怎麼樣實現的,不論是ring0還是ring3,都離不開api的hook。

實驗中也發現ring3下的iat hook不是很穩定,容易使程式崩潰,而且如果對方程式事先獲得了呼叫函式的真實位址,你修改了iat是沒用的,(即便你hook了getprocaddress,當然inline hook除外)。有可能是我**的問題吧,這只是我個人的一些觀點。(感覺那些成熟的安全軟體都是寫驅動的,估計是自己認識太少吧)

任務管理器的建立

因為任務管理器中涉及到程序的列舉操作,設計介面 以及列表控制項變數的繫結 列表控制項樣式的指定 m tasklist.setextendedstyle lvs ex gridlines lvs ex fullrowselect m tasklist.insertcolumn 0,t 程序名稱 0,1...

用任務管理器畫CPU正弦曲線

這個最初是在microsoft的 程式設計之美 中看到的,用你的程式來控制cpu的使用率。首先是要求寫乙個用來實現cpu使用率為50 程式。這個還是很好實現的,只要讓你的程式忙的時間課空閒時間對半就可以了。這裡主要要用到兩個函式 gettickcount以及sleep。gettickcount函式據...

VC中列舉所有的任務,任務管理器的一些資料的整理

1.列舉所有的任務 enumproc就是那個 函式,真正的操作,都在這個函式裡實現 第二個引數,是使用者自定義傳送的,比如這裡,可以是對話方塊的指標 enumproc的原型是 bool callback cplistdlg enumproc hwnd hwnd,lparam lparam 如果是類成...