信息安全与应用---实验指导书
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息安全与应用
实验指导书
任课教师:***
目录
实验1. office口令破解工具aoxppr的使用
实验2. Winhex编辑软件的使用
实验3. 用C语言编程实现凯撒密码
实验4. 嗅探器Ethereal的使用
实验5. Word宏病毒实验
实验6. Web恶意代码实验
实验7. 端口扫描X-scan的使用
实验8. 加密软件pgp的使用
实验一 office口令破解工具aoxppr的使用
实验目的:了解word口令破解的方法,掌握暴力破解和字典破解的原理,具体破解某个word 文档。
实验要求:某个同学设置word口令,长度分别为4,5,6,采用字母数字混合。
实验步骤:
1.安装aoxppr,点setup,一步步安装完成;
2.运行Aoxppr,点击“帮助”,点击“输入注册码”,打开key.txt文件,输入注册码,OK;3.破解类型选项,选暴力破解,字母数字混合,密码长度最大选6;
4.某人制作一个word文档,对其进行加密;
5.另一人对其进行解密,在Aoxppr中输入待解密文件的文件名,点击开始解密。如果该文档没有密码,软件马上就会报告此文档不用解密,4位密码很快就可破译,6位的密码破解时间要长一点,运行过程中,随时可以终止运行。
6.系统破解后,会显示出Office文档的密码。
7.破解过程中可以使用掩码,如密码有8位,以x开始,以99结束,可以设置掩码为"x99"
8.用该密码去解密OFFICE文档。
实验二.winhex编辑软件的使用
实验目的:1。利用Winhex查看磁盘文件的十六进制编码;
2。利用Winhex实现文件的简单数学
3.加密变换;利用Winhex恢复被误删除的文件。
实验要求:1人1组,独立完成
实验步骤:
1.在D盘根目录中建立X-ways文件夹,再在这个文件夹中建立case、images、temp等3个文件夹,分别用于保存案例文件、镜像文件和临时文件。运行
winhex,进入系统。
2.根据提示,必须选择“Computer forensics interface(计算机取证)”。
3.完成后进入软件操作界面。
4.在D盘的X-ways中建立一个文本文件x-ways.txt,内容为“练习使用winhex 软件”。在winhex界面中,单击“file”----“open”。
5.将第1,2两个字节改为“D1 A7”,“练习”变为“学习”。
6.保持打开的x-ways.txt文件,单击“Edit”----“modify data”,选择“xor”并输入75,即完成了该文件的加密变换。
7.在winhex中关闭x-ways.txt文件,进入“资源管理器”将该文件删除并清空回收站,此时windows系统无法恢复该文件。下面利用winhex来恢复该文件。
8.单击“case data”窗口中的“file”----“create new case”建立新的分析案例,然后单击“file”----“add medium”添加新的存储介质,此处为D盘。添加后
进入“x-ways”文件夹,可发现被删除的文件已在其中。右击该文件,选择
“Recover/copy”,指定目录文件夹后即可恢复该文件。
实验三. 用C语言编程实现凯撒密码
一、实验目的:
通过编程实现替代密码算法和置换密码算法,加深对古典密码体制的了解,为深入学习
密码学奠定基础。
二、实验内容:
实验参考步骤:
1.新建工程。工程类型选“win32 console application”,输入工程名称,选取工程存储位置,“下一步”,“一个空工程”,完成。
2.选取“FileView”,点“Source Files”,按鼠标右键,选取“添加文件到目录”,输入文件名,点“确定”。
3.开始编程。
4.编译。在“工程“,”设置”,“链接”里,把ws2_32.lib 加入。
5.编译生成可执行文件。
6.运行进行测试,输入数据串和密钥,加密,然后解密。记录下明文和密文。
myCrySubstitude.cpp内容如下:
#include "myCrySubstitude.h"
int Encrypt(unsigned char* str,unsigned char* code)
{
if(str==NULL || code==NULL)
return CRYPT_ERROR;
int str_length = 0;
int i = 0;
while(str[i]!='\0')
{
str_length++;
i++;
}
if(str_length>1024)
{
printf("明文的长度超过1024位");
return CRYPT_ERROR;
}
else if(code[1] != '\0')
{
printf("密钥输入字符不是一位");
return CRYPT_ERROR;
}
if(ToLowerCase(str) != 0)
{
printf("明文字符串转化小写字符出错");
return CRYPT_ERROR;
}
if(ToLowerCase(code) != 0)
{
printf("密钥字符串转化小写字符出错");