?? 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 + -