java殺毒代碼,殺毒軟件源代碼

電腦的系統(tǒng)殺毒軟件怎么制作啊?

至少會(huì)兩種以上編程語(yǔ)音,一定要學(xué)C語(yǔ)言,三大操作系統(tǒng)內(nèi)核主要都是C編寫的,想要了解系統(tǒng)內(nèi)核必須學(xué)C,只有弄明白系統(tǒng)內(nèi)核機(jī)制才能與系統(tǒng)很好的結(jié)合。病毒庫(kù)必須強(qiáng)大,其他資料你看一下我轉(zhuǎn)的吧

成都創(chuàng)新互聯(lián)公司技術(shù)團(tuán)隊(duì)10余年來致力于為客戶提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)、成都品牌網(wǎng)站建設(shè)、成都全網(wǎng)營(yíng)銷、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗(yàn)豐富的技術(shù)團(tuán)隊(duì),先后服務(wù)、推廣了數(shù)千家網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機(jī)構(gòu)單位。

程序模塊:

1、基于特征值的掃描引擎

2、對(duì)內(nèi)存、文件、注冊(cè)表的監(jiān)控模塊

3、自我保護(hù)模塊

4、未知病毒或危險(xiǎn)行為主動(dòng)防御系統(tǒng)

5、升級(jí)等服務(wù)模塊

6、用戶界面

過程:

立項(xiàng)/需求分析/功能設(shè)計(jì)/概要設(shè)計(jì)/詳細(xì)設(shè)計(jì)/編碼/測(cè)試

如今病毒木馬蠕蟲層出不窮,變種也是一個(gè)接一個(gè)。反病毒公司以及各大安全公司隨著影響很大的病毒的出現(xiàn)都會(huì)免費(fèi)提供病毒專殺工具,這個(gè)舉措對(duì)普通用戶來說確實(shí)很有幫助。其實(shí)寫病毒專殺工具也不像大家想象的那么神秘,利用SDK寫個(gè)控制臺(tái)程序來實(shí)現(xiàn)病毒專殺,因無須寫圖形界面,所以簡(jiǎn)便快捷!你自己也能寫!不信?就接著看吧 廢話不說了,接下來就開始談?wù)劜《緦⒐ぞ叩乃悸芳皩?shí)現(xiàn)方法。

此文中講解的病毒專殺工具是針對(duì)木馬、蠕蟲等獨(dú)立的程序而言的廣義的病毒而言,而不是指那種自我復(fù)制感染PE文件的依附于其他程序的那種狹義的病毒。因?yàn)閷懩欠N病毒的專殺工具需要PE文件結(jié)構(gòu)等知識(shí),相對(duì)而言有點(diǎn)難度,所以我們就先從相對(duì)簡(jiǎn)單點(diǎn)的開始,難的以后再介紹。

對(duì)于大多數(shù)病毒而言,殺毒的思路其實(shí)很簡(jiǎn)單,那就是:終止病毒的進(jìn)程、刪除自啟動(dòng)項(xiàng)目(一般在注冊(cè)表中的run*主鍵下)、刪除病毒文件,對(duì)設(shè)置了文件關(guān)聯(lián)的病毒而言還要修改注冊(cè)表恢復(fù)文件關(guān)聯(lián)。下面將分別陳述。

一.終止進(jìn)程

以前網(wǎng)上曾有許多朋友問我怎么根據(jù)文件名終止指定進(jìn)程,為什么使用函數(shù)TerminateProcess()不能直接終止指定進(jìn)程。首先讓我們來看看函數(shù)TerminateProcess()的聲明吧:Bool TerminateProcess(HANDLE hPeocess,UINT uExitCode),其中第一個(gè)參數(shù)為進(jìn)程句柄,而不是進(jìn)程名稱(文件名)。那怎樣才能獲得指定進(jìn)程的句柄呢?我們可以使用函數(shù)OpenProcess(),其原型為

HANDLE OpenProcess(

DWORD dwDesiredAccess, // 訪問標(biāo)志

BOOL bInheritHandle, // 處理繼承的標(biāo)志

DWORD dwProcessId // 進(jìn)程標(biāo)識(shí)號(hào),即進(jìn)程ID

);

最后一個(gè)參數(shù)就是該進(jìn)程的ID,進(jìn)程句柄和進(jìn)程ID是兩回事,這時(shí)你可能很郁悶:怎么知道進(jìn)程ID呢?方法當(dāng)然有啦!在Windows9X/2000/XP/2003中,微軟均提供了用來枚舉進(jìn)程的ToolHelp API系列函數(shù)。先運(yùn)用函數(shù)CreateToolhelp32Snapshot()取得快照句柄,然后使用Process32First()以及Process32Next()枚舉當(dāng)前的進(jìn)程。枚舉過程中會(huì)將每一個(gè)進(jìn)程的信息存放到PROCESSENTRY32結(jié)構(gòu)中。PROCESSENTRY32的原型為:

typedef struct tagPROCESSENTRY32

{

DWORD dwSize; // 結(jié)構(gòu)大小;

DWORD cntUsage; // 此進(jìn)程的引用計(jì)數(shù);

DWORD th32ProcessID; // 進(jìn)程ID;

DWORD th32DefaultHeapID; // 進(jìn)程默認(rèn)堆ID;

DWORD th32ModuleID; // 進(jìn)程模塊ID;

DWORD cntThreads; // 此進(jìn)程開啟的線程計(jì)數(shù);

DWORD th32ParentProcessID; // 父進(jìn)程ID;

LONG pcPriClassBase; // 線程優(yōu)先權(quán);

DWORD dwFlags; // 保留;

char szExeFile[MAX_PATH]; // 進(jìn)程全名;

} PROCESSENTRY32;

其中th32ProcessID就是進(jìn)程的ID,szExeFile為該進(jìn)程的文件名。所以要終止指定進(jìn)程,我們可以枚舉進(jìn)程,逐一判斷szExeFile是否和我們欲終止的進(jìn)程名相同,如果相同就取其th32ProcessID參數(shù),然后代入OpenProcess函數(shù),取得目標(biāo)進(jìn)程的句柄。這樣就可以利用函數(shù)TerminateProcess()終止該進(jìn)程了。我寫了個(gè)終止指定進(jìn)程的函數(shù),如下:

void KillProcessFromName(LPCTSTR name)//name為你要終止的進(jìn)程的名稱,Win9X則需包括路徑

{

PROCESSENTRY32 pe;//定義一個(gè)PROCESSENTRY32結(jié)類型的變量

HANDLE hShot=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);// 創(chuàng)建快照句柄

pe.dwSize=sizeof(PROCESSENTRY32);//一定要先為dwSize賦值

if (Process32First(hShot,pe))

{

do

{if (strcmp(pe.szExeFile,name)==0) //判斷此進(jìn)程是否為你要終止的進(jìn)程

HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe.th32ProcessID);//如果是就利用其ID獲得句柄

TerminateProcess(hProcess,0);//終止該進(jìn)程

}

while(Process32Next(hkz,pe));

}

CloseHandle(hShot);//最后別忘記Close

}

在使用時(shí)只要在main()主函數(shù)里調(diào)用函數(shù)KillProcessFromName(),把參數(shù)設(shè)為你要終止的進(jìn)程的名稱即可,Win9X則需包括路徑。還有一點(diǎn)值得注意一下,就是別忘了#include TlHelp32.h。

二、刪除文件

這一步驟很簡(jiǎn)單,調(diào)用函數(shù)DeleteFile()即可,Bool DeleteFile(LPCTSTR lpFilename),把lpFilename設(shè)要指向刪除的文件的文件名的指針即可,可包含具體路徑。

三、修改注冊(cè)表,刪除啟動(dòng)項(xiàng)及文件關(guān)聯(lián)

首先用函數(shù)RegOpenKeyEx()打開目標(biāo)主鍵,RegOpenKeyEx()函數(shù)原型為

LONG RegOpenKeyEx(

HKEY hKey,// 將要打開的鍵的句柄

LPCTSTR lpSubKey,// 指向?qū)⒁蜷_的包含子建的名稱字符串指針

DWORD ulOptions,// 為保留字,必須為NULL

REGSAM samDesired,// 訪問權(quán)限

PHKEY phkResult//指向打開鍵的句柄指針

);

獲得句柄后用函數(shù)RegSetValueEx()進(jìn)行修改鍵值,函數(shù)原型為:

LONG RegSetValueEx(

HKEY hKey, //當(dāng)前打開的鍵的句柄

LPCTSTR lpValueName, //指向非空的包含要查詢的值名稱的字符串指針

DWORD Reserved, //保留值,必須為NULL

DWORD dwType,//鍵值類型,比如REG_SZ、REG_DWORD等

CONST BYTE * lpData , //指向鍵值數(shù)據(jù)的指針,注意此變量類型,不是LPCTSTR!

DWORD cbData//指向保存設(shè)定值長(zhǎng)度變量的指針,以字節(jié)為單位

);

當(dāng)然也可以用函數(shù)RegDeleteValue()來刪除鍵值。操作完畢后別忘了用函數(shù)RegCloseKey()來Close。

使用這些函數(shù)很簡(jiǎn)單,只要把相應(yīng)的參數(shù)換為你要?jiǎng)h除或修改注冊(cè)表的相應(yīng)數(shù)值,唯一值得注意的是RegSetValueEx()函數(shù)中第5個(gè)參數(shù)的類型是BYTE而不是LPCTSTR!通過這些就可以很方便刪除指定啟動(dòng)項(xiàng)以及恢復(fù)文件關(guān)聯(lián),為了便于大家理解,我舉個(gè)修復(fù)EXE文件關(guān)聯(lián)的例子,大家修改相應(yīng)的參數(shù)就可以適用其它鍵值的修改,換用RegDeleteValue函數(shù)就可以實(shí)現(xiàn)刪除自啟動(dòng)項(xiàng)。

HKEY hKey;

LPCTSTR data1="\"%1\" %*";//EXE文件默認(rèn)的open方式,”%1\"表EXE文件本身

DWORD lResult=RegOpenKeyEx(HKEY_CLASSES_ROOT,"exefile\\shell\\open\\command",0,KEY_WRITE,hKey);

if(lResult==ERROR_SUCCESS)

RegSetValueEx(hKey,"",NULL,REG_SZ,(LPBYTE)data1,9);//修改鍵值

RegCloseKey(hKey);

到這里,一個(gè)病毒專殺工具的模型就已初步完成了,大家自己編寫時(shí)只需把文中函數(shù)的形參換為你要?dú)⒌哪繕?biāo)病毒的相應(yīng)特征數(shù)據(jù)編譯即可。這個(gè)是個(gè)簡(jiǎn)單的專殺工具,只能對(duì)付普通的木馬、蠕蟲等病毒,大家應(yīng)具體情況具體分析,根據(jù)具體情況擴(kuò)充該程序功能,比如有些木馬是通過修改win.ini、system.ini來實(shí)現(xiàn)自動(dòng)運(yùn)行,我們就需操作文件刪除相應(yīng)數(shù)據(jù),除此之外,有時(shí)還需添加終止服務(wù)、卸載DLL模塊、進(jìn)入RING0操作等功能??傊蚁嘈糯蠹乙欢茏约簩懗霾《灸抉R專殺工具的!呵呵,是不是很有成就感呢!

1:編寫殺毒軟件,從程序來看,可以將殺軟分為2部分:外圍部分和內(nèi)核部分,外圍部分用于和用戶交互,比如它自己的主界面,這部分用什么語(yǔ)言都可以;內(nèi)核部分(其實(shí)就是驅(qū)動(dòng))才是核心,它用來完成程序安全掃描,文件操作的實(shí)時(shí)防護(hù),自身進(jìn)程的保護(hù)等,這部分需要能編寫驅(qū)動(dòng)的語(yǔ)言,比如C,C++,可以肯定的是JAVA是不行的。

2:當(dāng)黑客,你“學(xué)了一半”我不明白是什么意思,可以Hi我聊一下。

“有人跟我說學(xué)JAVA不能編寫殺毒軟件木馬病毒”,這個(gè)說法是不準(zhǔn)確的,其實(shí)JAVA是可以寫木馬病毒的,可以說任何語(yǔ)言都可以,但關(guān)鍵是極少有人用JAVA去做木馬病毒,因?yàn)镴AVA是一門面向?qū)ο蟮恼Z(yǔ)言,它的代碼是被JAVA虛擬機(jī)解釋執(zhí)行的,所以,JAVA編寫的可執(zhí)行程序必須要有JAVA虛擬機(jī)的支持。木馬病毒是要求隱蔽的,現(xiàn)在想一下,假如對(duì)方的電腦里沒有安裝JAVA虛擬機(jī),那么你用JAVA做的木馬就無法運(yùn)行,而一報(bào)錯(cuò),傻子也知道有程序在偷偷運(yùn)行,基于這種原因,幾乎沒有人用JAVA或C#做病毒木馬(C#需要.net framework的支持)。

這簡(jiǎn)單:

一。有錢,要靠金錢的

二。人才

三。專業(yè)知識(shí)

四。想象力

五。先制造病毒,目的是實(shí)驗(yàn)“你的殺毒軟件”

六。懂得病毒代碼、查殺引擎、軟件編寫知識(shí)等

七。。。

看的懂嘛!以下的東西!

ypedef char * a;

// a is a pointer to a char

typedef a b();

// b is a function that returns

// a pointer to a char

typedef b *c;

// c is a pointer to a function

// that returns a pointer to a char

typedef c d();

// d is a function returning

// a pointer to a function

// that returns a pointer to a char

typedef d *e;

// e is a pointer to a function

// returning a pointer to a

// function that returns a

// pointer to a char

e var[10];

// var is an array of 10 pointers to

// functions returning pointers to

// functions returning pointers to chars.

用JAVA編寫一個(gè)具有病毒功能的程序,殺毒軟件會(huì)報(bào)毒嗎

既然是簡(jiǎn)單的,又是Java編寫的,主流殺軟可以攔截,不能攔截只能說樓主的病毒很強(qiáng)大。

既然編寫這種程序,一定要做好影子系統(tǒng),否則。。。呵呵

用Java程序編寫殺毒軟件中的體檢功能怎么實(shí)現(xiàn)?

程序、軟件”等的還有我要實(shí)現(xiàn)某項(xiàng)特定的功能怎么編寫代碼實(shí)現(xiàn),如電腦的界面收縮效果,向左通常的殺毒軟件、 ,關(guān)閉殺毒軟件

本文標(biāo)題:java殺毒代碼,殺毒軟件源代碼
瀏覽路徑:http://www.muchs.cn/article20/hsseco.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站域名注冊(cè)、外貿(mào)網(wǎng)站建設(shè)關(guān)鍵詞優(yōu)化、云服務(wù)器移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)