親手打造一個QQ惡作劇程序
發(fā)表時間:2024-01-04 來源:明輝站整理相關(guān)軟件相關(guān)文章人氣:
[摘要]安全警示 僅供娛樂參考,不承擔(dān)該程序使用的相應(yīng)后果和責(zé)任 時間:2002年11月26日 Author:Inetufo Email:Inetufo@thugx.com Homepagehttp://www.thugx.com Date:3-8-2003 本文將一步一步教你如何編寫一個QQ...
安全警示 僅供娛樂參考,不承擔(dān)該程序使用的相應(yīng)后果和責(zé)任
時間:2002年11月26日
Author:Inetufo
Email:Inetufo@thugx.com
Homepagehttp://www.thugx.com
Date:3-8-2003
本文將一步一步教你如何編寫一個QQ惡作劇程序,轉(zhuǎn)載請注明出處:
程序原理:獲取系統(tǒng)中的所有進程,并保存在一個數(shù)組中,然后在數(shù)組中查找含有QQ,oicq,qq,OICQ字樣的進程,如果找到就立即殺掉該進程.這樣你一運行QQ,QQ進程就會被立即殺掉,也就是說如果該惡作劇程序一直運行你就不能上QQ了。呵呵,這招是不是有點毒啊?好了,現(xiàn)在一步一步的來講程序的編寫過程。
首先我們要解決的問題是如何實現(xiàn)惡作劇程序的自我隱藏,關(guān)于進程隱藏的文章很多,我就只簡單的介紹一下了。在Win9X系統(tǒng)下可以通過調(diào)用RegisterServiceProcess API這個API函數(shù)將進程注冊為一個服務(wù)模式的進程,這樣在Win9X系統(tǒng)下用Ctrl+Alt+Del調(diào)出的任務(wù)管理器中將不會出現(xiàn)這個進程了。RegisterServiceProcess API函數(shù)存放于系統(tǒng)內(nèi)核Kernel32.dll中.具體聲明如下:
DWORD RegisterServiceProcess(
DWORD dwProcessId, //服務(wù)進程的進程標(biāo)志,如果為NULL表示當(dāng)前進程
DWORD dwType //如果參數(shù)為RSP_SIMPLE_SERVICE 表示注冊當(dāng)前進程
//如果參數(shù)為RSP_UNREGISTER_SERVICE 表示取消當(dāng)前進程的注冊
);
函數(shù)調(diào)用成功返回1,否則返回0
通過對RegisterServiceProcess 這個API函數(shù)的調(diào)用我們就能實現(xiàn)在Win9X系統(tǒng)下的進程隱藏了。但是要在WinNT系統(tǒng)下真正的實現(xiàn)進程隱藏就沒有在Win9X系統(tǒng)下那么簡單了。只要進程以進程內(nèi)核的形式運行,進程就將出現(xiàn)在任務(wù)管理器中.要實現(xiàn)WinNT下進程的真正隱藏,只能以非進程的方式執(zhí)行目標(biāo)代碼,也就是說把目標(biāo)代碼以線程的方式遠程注冊到宿主進程中.關(guān)于這種方法的實現(xiàn)已經(jīng)有文章介紹,在這里就不多說了。在這里,我并沒有采用這種隱藏進程的方法而是將進程注冊為系統(tǒng)的一個名為Service的服務(wù)進程,雖然這樣并沒有真正的隱藏進程,但是在一般情況下還是不容易發(fā)現(xiàn)的。在Win2000下用任務(wù)管理器查看進程時是不能結(jié)束該進程的,必須通過控制面板中的服務(wù)管理控制臺來停止服務(wù),也可以在命令行下用net stop service來停止服務(wù)在XP下可以通過任務(wù)管理器結(jié)束該進程。這里簡單介紹一下WinNT中的服務(wù)程序: