📄 virusbook.txt
字号:
、课程简介
本课程是信息安全专业的专业选修课。开设本课程的目的是使学生了解并掌握计算机病毒产生和传染的机理,具备分析、预防和对抗计算机病毒的基本能力。
10、指定教材
《计算机病毒分析与对抗》,傅建明、彭国军、张焕国,武汉大学出版社,2004。
11、参考书目
《计算机病毒防治实用技术》,袁忠良,清华大学出版社,1998年。
《计算机病毒——病毒机制与防范技术》,李旭华,重庆大学出版社,2002年。
《计算机病毒防范与信息对抗技术》,刘尊全,清华大学出版社,1990年。
《计算机病毒防治使用教程》,何江安、梁新宇,清华大学出版社,1990年。
《计算机病毒分析与防治技术》,刘真,电子工业出版社,1993年。
信息隐藏技术
汇编语言课程设计任务书、指导书
设计题目:小型文件管理加密系统
一、课程设计任务书
1、设计题目:小型文件管理加密系统
2、设计内容和要求:
编写一个汇编语言程序,该程序运行后提示符为kcsj:,在该提示符后可键入
字符命令: (功能)
d 显示当前目录文件名
显示格式:文件名.后缀
r 改文件名
提示:old filename: 键入文件全名,若该文件存在,则
提示:new filename:键入新文件全名后,磁盘文件改名;
若不存在,则提示:file not found!
t 显示文件内容
提示:filename:键入文件全名,若该文件不存在,则提示:
file not found!;若该文件存在,显示该文件内容。
s 加密文件内容
提示:filename:键入文件全名,若该文件不存在,则提示:
file not found!;若该文件存在,则提示:s-code:,键入密码(
数字或ascll码),提示:new filename:键入新文件全名后,
将文件内容顺序与密码进行异或操作,异或后的文件内容存
入新文件。
a 显示加密文件内容
提示:filename:键入文件全名,若该文件不存在,则提示:
file not found!;若该文件存在,则提示:s-code:,键入密码,
显示该文件内容与密码异或后的内容。
q 退出程序,返回dos提示符状态。
3、提交设计成果形式及完成时间
(1)程序设计说明
(2)程序框图
(3)源程序代码
(4)可执行程序
完成时间:一周
二、课程设计指导书
1、设计目的和意义
通过本课程设计,深入了解dos及其目录文件系统,并初步具备完成
大型汇编程序的能力,巩固汇编语言知识,提高学生理论与实践相结合的
能力。
2、完成本课题待解决的问题
1 使用中断指令搜索dos文件
2 了解DTA磁盘传输区内容
3 掌握文件代号式磁盘文件存取方法
3、设计进程计划
周一:整体设计,建立程序框架。
周二:完成按d字符,显示当前目录文件名;按r字符,改文件名。
周三:完成按t字符,显示文件内容。
周四:完成按s字符,进行文件加密。
周五:完成按t字符,显示加密文件内容;完成设计说明书。
4、设计步骤和方法
步骤:
1)分析设计要求,熟悉相关知识
2)建立程序框架,每个字符命令对应一个子程序
3)依次编写各子程序汇编语言代码
4)汇编,连接,调试。
方法:
1)显示文件名,可使用INT 21H中断的4EH号功能(搜索第一个匹配文件)、4FH号功能(搜索下一个匹配文件),通过搜索‘*.*’文件,获得文件名,再在屏幕上显示文件名。两中断参数说明如下:
A、功能4EH:调用参数:AH=4EH,DS:DX=ASCII字符串(文件名)的地址 返回:若成功,CF=0,当前磁盘传输区(DTA)填写如下:
字节0-20 = 保留给MS-DOS以后使用
字节21 = 被匹配的文件的属性
字节22-23 = 文件时间
字节24-25 = 文件日期
字节26-27 = 文件长度低位字
字节28-29 = 文件长度高位字
字节30-42 = ASCII字符串形式的文件名,扩展名
若失败,CF=1,AX=错误代码
2 路径无效
12H 找不到匹配的目录条目
本功能使用前应使用INT 21H中断的1AH功能设置磁盘传输区地址
(参见教材第十二章磁盘文件存取技术)
B、功能4FH:调用参数:AH=4FH,且之前调用过INT 21H的4EH或4FH号功能 返回:若成功,CF=0,当前磁盘传输区(DTA)填写如下:
字节0-20 = 保留给MS-DOS以后使用
字节21 = 被匹配的文件的属性
字节22-23 = 文件时间
字节24-25 = 文件日期
字节26-27 = 文件长度低位字
字节28-29 = 文件长度高位字
字节30-42 = ASCII字符串形式的文件名,扩展名
若失败,CF=1,AX=错误代码
12H 找不到匹配的目录条目
2)改文件名:使用INT 21H的56H号功能,参数说明如下:
调用参数: AH=56H
DS:DX=当前ASCII文件名的段:偏移
ES:DI=新的ASCII文件名的段:偏移
返回:成功,CF=0;
失败,CF=1,AX=错误代码
2 找不到文件
3 找不到路径或文件不存在
5 拒绝被访问
11H 不是同一设备
3)显示文件内容
4)加密文件内容并存盘
5)显示加密文件内容
上述三功能参见教材第十二章 磁盘文件存取技术
5、设计说明书要求:
1)写明题目,目的,意义
2)说明完成该题目的详细设计方法及相关知识
3)完整的程序设计框图
4)完整的源程序代码(包括注释等程序说明)
源代码:
data segment
titl db 0dh,0ah,'jsde:','$'
sch_str db '*.*',0
dir_buff db 43 dup(0),'$'
endcde db 0
handle dw ?
getn db 10,0
pathnam db 12 dup(41h),0
renn db 10,0
rennam db 12 dup(41h),0
renokmsg db 0dh,0ah,'*** rename ***','$'
renerrmsg db 0dh,0ah,'*** error ***','$'
ren_dispstr1 db 0dh,0ah,'old file name :','$'
ren_dispstr2 db 0dh,0ah,'new file name:','$'
ioarea db 32 dup(?)
readmsg db 0dh,0ah,'*** read error ***','$'
openmsg db 0dh,0ah,'***file not found!****','$'
read_prompt db 0dh,0ah,'read file name:','$'
row db 0
errcde db 0
getwrinam db 12,0
writefnam db 12 dup(?),0
wri_promstr1 db 0dh,0ah,'write file name:','$'
password db 'password:','$'
opnmsg db 0dh,0ah,'*** open error ****','$'
wrtmsg db 0dh,0ah,'****write error ************','$'
handle1 dw ?
scode db 8,12 dup(0)
read_len dw 0
data ends
code segment
assume cs:code,ds:data
begin proc far
push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
mov es,ax
;___________________________________________
loopso:
mov endcde,0
mov dx,0
mov ah,9
int 21h
mov ah,01
int 21h
cmp al,71h
je exit2
cmp al,64h
je ddd
cmp al,72h
je rrr
cmp al,74h
je ttt
cmp al,73h
je sss
cmp al,61h
je aaaxianjia
jmp loopso
exit2:
retf
ddd:
call ddlie
jmp loopso
rrr:
call rrname
jmp loopso
ttt:
call tt
jmp loopso
sss:
call ssjiami
jmp loopso
aaaxianjia:
call aa
jmp loopso
retf
begin endp
;::::::::::::::::::::::::::::::::::::::
ddlie proc near
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
mov ah,1ah
mov dx,seg dir_buff
mov ds,dx
mov dx,offset dir_buff
int 21h
mov ah,4eh
mov cx,0
mov dx,seg sch_str
mov ds,dx
mov dx,offset sch_str
int 21h ;读第一个文件信息,包括文件名
jc dir_exit
call dir_disp ;读取正确,显示文件名
dir_rot:
mov ah,4fh
int 21h ;读下一个文件信息
jc dir_exit ;读取失败
call dir_disp ;读取正确,显示文件名
jmp dir_rot
dir_exit:
ret
ddlie endp
;:::;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
dir_disp proc near
push dx
push ax
lea dx,dir_buff[29]
mov ah,9 ;显示文件名
int 21h
mov dl,0dh ;回车换行
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
call clear_buff
pop ax
pop dx
ret
dir_disp endp
clear_buff proc near
push cx
push ax
lea di,dir_buff[30]
mov cx,12
mov al,0
cld
rep stosb
pop ax
pop cx
ret
clear_buff endp
;::::::::::::::::::::::::::::::
rrname proc near
mov dx,offset ren_dispstr1
mov ah,9
int 21h
call get_fname
mov dx,offset ren_dispstr2
mov ah,9
int 21h
call get_rename
mov dx,seg pathnam
mov ds,dx
mov dx,offset pathnam
mov di,seg rennam
mov es,di
mov di,offset rennam
mov ah,56h ;文件改名
int 21h
jc ren_error
mov dx,offset renokmsg
mov ah,9
int 21h
jmp ren_exit
ren_error:
mov dx,offset renerrmsg
mov ah,9
int 21h
ren_exit:
ret
rrname endp
;-----------------------------
get_fname proc near ;键盘输入文件名,存入pathnam
mov ah,0ah
mov dx,offset getn
int 21h
mov dl,getn[1]
mov dh,0
mov bx,dx
mov getn[bx+2],0
ret
get_fname endp
;--------------------------------------
get_rename proc near ;键盘输入文件名,存入rennam
mov ah,0ah
mov dx,offset renn
int 21h
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -