⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 virusbook.txt

📁 文件加密
💻 TXT
📖 第 1 页 / 共 2 页
字号:
、课程简介

本课程是信息安全专业的专业选修课。开设本课程的目的是使学生了解并掌握计算机病毒产生和传染的机理,具备分析、预防和对抗计算机病毒的基本能力。

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