冰河的使用

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

计算机信息安全实验指导书
2009-2010(2)
步山岳
计算机工程系
特别提示
1.在实验报告封面上要正确写上课程名称“计算机信息安全”、班级、学号、姓名。

书写实验报告内容包括:
(1)实验目的与要求;
(2)实验环境;
(3)实验内容与实验步骤(实验步骤、源代码);
(4)实验心得(可以是心得体会、难点讨论、意见建议等)。

2.对实验1和实验3一定要提前预习,充分准备,明确设计思路、编程逻辑和算法过程。

3.做实验时要将教材、实验指导书(如果有的话)和实验报告带到实验室,便于学习。

4.实验时要及时记录实验过程中所碰到问题和解决方法,并写到实验报告上。

5.每次做实验之前,请先看一下该实验最后“实验说明”,然后在做实验。

6.写实验报告时,除“实验目的与要求”外,“实验环境”要和当前实验室的实验环境相同,对于“实验内容与步骤”内容应该是你真正所做实验的具体内容,做什么就写什么请不要抄实验指导中的“实验内容与步骤”。

实验 1 RSA算法程序设计(4学时)
实验目的
1.掌握公开密钥体制基本原理;
2.熟悉RSA算法过程;
3.提高学生的逻辑思维能力和编程技术。

实验环境
Pentium4 1.4GHz以上 CPU,256M以上内存,10G以上硬盘,安装Windows2000以上操作系统。

实验内容与步骤
1.分析RSA算法
2.设计RSA算法实现流程图
3.用C语言或其他语言实现RSA算法。

4.设计产生素数程序模块
5.设计求最大公约数模块
6.设计求乘逆模块
7.设计选择密钥算法
8.设计主程序实现RSA算法
9.调试程序
实验说明
要按照实验步骤进行实验和编写程序,要按照实验步骤书写实验报告内容。

要及时记录实验过程中所碰到问题和解决方法,并写到实验报告上。

附 RSA算法程序
//RSA算法程序
#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int r,sk,pk,Euler;
primes1(int n1)//判断素数
{ int i,p1,n,sq,sq1;
unsigned short pritab2[10000];
n=3;p1=1;pritab2[0]=2;pritab2[1]=3; do
{n=n+2;sq=(int)sqrt(n);sq1=1,i=0;
while ((pritab2[i]<=sq)&(sq1!=0)) {sq1=pritab2[i];sq1=n%sq1;i++;};
if (sq1!=0) {p1++,pritab2[p1]=n;} }while (n<n1);
if((n!=n1)){ sq1=0;}
return sq1;//判断素数标志
}
//欧几里德算法求解最大公约数
int gcd(int a, int b)
{ //a为初选密钥,b为欧拉函数值
int c,c1,b1;
c=b;a=a+1;b1=b;
do
{a--;c=a;c1=1;b=b1;
while(c1!=0)//求解最大公约
{ c1=b%c;if (c1!=0){b=c;c=c1;}; }
}while(c>1);//最大公约数gcd(a,b)=1 return(a);//返回初选密钥值
}
//检查n是否是素数
int check(int n)
{ int sq1;
n=abs(n);sq1=1;
do
{ sq1=primes1(n);
if (sq1==0) n=n-1;
}while(sq1==0);
return n;//返回素数
}
void primes()
{int p,q;
cout<<"输入值不要太大,防止溢出"<<endl; cout<<"请输入p:";cin>>p;
p=check(p);
cout<<"请输入q:";cin>>q;
q=check(q); r=p*q;
cout<<"素数 "<<"p="<<p<<" q="<<q;
Euler=(p-1)*(q-1);
cout<<" 欧拉函数:"<<Euler;
cout<<" 公开模数:"<<r<<endl<<endl; }
int input(int m)
{while(m>=r)
{cout<<"m 值太大,请再输入编码";
m=abs(m);cin>>m;}
return m;//返回编码。

}
//使用"平方-乘"算法计算m mod r
int pf_c(int m,int k)
{int a,i1,a1,b[50];
unsigned long c1;
double long c;
c=1;c1=1;i1=0;
do // 将十进制转换成二进制
{ a=(int)ceil(k/2);a1=(k%2);
b[i1]=a1;k=a;i1++;
}while (a>0);
i1--;//"平方-乘"算法
for (int i=i1;i>=0;i--)
{c=fmod(c*c,r);if (b[i]==1)c=fmod(c*m,r);} c1=(int)ceil(c);
return c1;
}
//欧几里德扩展算法求解sk*pk≡1mod r
void ckey()
{int a,c,b1,b2,p,q;
cout<<"输入值不要太大,防止溢出"<<endl;
cout<<"请输入初选密钥:";
cin>>sk;sk++;
do
{sk--;sk=abs(sk); b1=1,b2=0;
sk=gcd(sk,Euler);a=sk;c=Euler;
do{q=(int)ceil(c/a);p=c%a;
pk=b2-b1*q;c=a;a=p;b2=b1;b1=pk;
}while (p!=1);
pk=abs(pk);
a=pf_c(9,sk);c=pf_c(a,pk);
} while(c!=9);//加密、解密正确判断
cout<<"sk="<<sk<<",pk="<<pk<<endl;
}
void pf_c1()
{int m,c;
cout<<"输入编码必须小于公开模数:"<<r<<endl; cout<<"输入明文编码:";cin>>m;
m=input(m);
cout<<"密钥 "<<"sk="<<sk<<",pk="<<pk<<endl; cout<<"请输入密钥sk: ";cin>>c;
c=pf_c(m,c);
cout<<"原编码:"<<m<<" 密文编码:"<<c<<endl; }
void pf_c2()
{int m,c;
cout<<"输入编码必须小于公开模数:"<<r<<endl; cout<<"输入密文编码:";cin>>m;
m=input(m);
cout<<"密钥 "<<"sk="<<sk<<" pk="<<pk<<endl; cout<<"请输入密钥pk: ";cin>>c;
c=pf_c(m,c);
cout<<"原编码:"<<m<<" 明文编码:"<<c<<endl; }
void use()
{cout<<endl;
cout<<"生产素数输入1";
cout<<" 产生密钥输入2";
cout<<" 加密输入3";
cout<<" 解密输入4";
cout<<" 退出输入5"<<endl;
}
void main()
{char c;
use();
do
{ cin>>c;
switch(c)
{ case '1':primes();use();break;
case '2':ckey();use();break;
case '3':pf_c1();use();break;
case '4':pf_c2();use();
}
}while(c=='1'||c=='2'||c=='3'||c=='4'); }
实验2 冰河远程控制软件使用(2学时)
实验目的
本次实验学习冰河木马远程控制软件的使用,通过实验可以了解木马和计算机病毒的区别,熟悉使用木马进行网络攻击的原理和方法,熟悉防范木马的方法。

实验环境
装有Windows 2000/XP系统的计算机,局域网或Internet,冰河木马软件(服务器和客户端)
实验内容与步骤
双击冰河木马.rar文件,将其进行解压,解压路径可以自定义。

解压过程见图1-图4,解压结果如图4所示。

图1
图2
图3
冰河木马共有两个应用程序,见图4,其中win32.exe是服务器程序,属于木马受控端程序,种木马时,我们需将该程序放入到受控端的计算机中,然后双击该程序即可;另一个是木马的客户端程序,属木马的主控端程序。

图4
在种木马之前,我们在受控端计算机中打开注册表,查看打开txtfile的应用程序注册项:HKEY_CLASSES_ROOT\txtfile\shell\open\command,可以看到打开.txt文件默认值是c:\winnt\system32\notepad.exe%1,见图5
图5
再打开受控端计算机的c:\winnt\system32文件夹(XP系统为C:\windows\system32),我们不能找到sysexplr.exe文件,如图6所示。

图6
现在我们在受控端计算机中双击Win32.exe图标,将木马种入受控端计算机中,表面上好像没有任何事情发生。

我们再打开受控端计算机的注册表,查看打开.txt文件的应用程序注册项:HKEY_CLASSES_ROOT\txtfile\shell\open\command,可以发现,这时它的值为C:\winnt\system32\sysexplr.exe%1,见图7。

图7
我们再打开受控端计算机的C:\WINNT\System32文件夹,这时我们可以找到sysexplr.exe文件,如图8所示。

图8
我们在主控端计算机中,双击Y_Client.exe图标,打开木马的客户端程序(主控程序)。

可以看到如图9所示界面。

图9
我们在该界面的【访问口令】编辑框中输入访问密码:12211987,设置访问密码,然后点击【应用】,见图10。

图10
点击【设置】->【配置服务器程序】菜单选项对服务器进行配置,见图11,弹出图12所示的服务器配置对话框。

图11
在服务器配置对话框中对待配置文件进行设置,如图12点击该按钮,找到服务器程序文件win32.exe,打开该文件(图13);再在访问口令框中输入12211987,然后点击【确定】(见图14),就对服务器已经配置完毕,关闭对话框。

图12
图13
图14
现在在主控端程序中添加需要控制的受控端计算机,我们先在受控端计算机中查看其IP地址,如图15(本例中为172.16.8.62)。

图15
这时可以在我们的主控端计算机程序中添加受控端计算机了,详细过程见图16-17。

图16
图17
当受控端计算机添加成功之后,我们可以看到图18所示界面。

图18
我们也可以采用自动搜索的方式添加受控端计算机,方法是点击【文件】->【自动搜索】,打开自动搜索对话框(见图19)
图19
搜索结束时,我们发现在搜索结果栏中IP地址为172.16.8.62的项旁状态为OK,表示搜索到IP地址为172.16.8.62的计算机已经中了冰河木马,且系统自动将该计算机添加到主控程序中,见图20。

图20
将受控端计算机添加后,我们可以浏览受控端计算机中的文件系统,见图21-23。

图21
图22
图23
我们还可以对受控端计算机中的文件进行复制与粘贴操作,见图24、图25。

图24
图25
我们在受控端计算机中进行查看,可以发现在相应的文件夹中确实多了一个刚复制的文件,见图26,该图为受控端计算机中文件夹。

图26
我们可以在主控端计算机上观看受控端计算机的屏幕,方法见图27、图28。

图27
图28
这时在屏幕的左上角有一个窗口,该窗口中的图像即受控端计算机的屏幕见图29。

图29
我们将左上角的窗口全屏显示,可得如图30所示(屏幕的具体状态应具体实验而不同)。

图30
我们在受控端计算机上进行验证发现:主控端捕获的屏幕和受控端上的屏幕非常吻合。

见图31
图31
我们可以通过屏幕来对受控端计算机进行控制,方法见图32,进行控制时,我们会发现操作远程主机,就好像在本地机进行操作一样。

图32
我们还可以通过冰河信使功能和服务器方进行聊天,具体见图33-35,当主控端发起信使通信之后,受控端也可以向主控端发送消息了。

图33
图34
图35
实验说明
学生可以相互组合,将对方的计算机作为被监控端,自己的计算机作为监控端,将“冰河”的所有功能都试做一下。

建议学生做实验的同时实验过程写到实验报告上,课后写实验。

实验 3 软件保护程序综合设计(4学时)
实验目的
1.掌握软件保护的基本方法;
2.加强软件保护应用能力;
3.提高编程技术。

实验环境
Pentium4 1.4G Hz以上CPU,256M以上内存,10G以上硬盘,安装Windows2000以上操作系统,VC、VB等编程环境。

实验内容
编写一程序,该程序可以完成一个简单操作(如加法运算等),但要对程序使用进行保护。

如每隔2分钟就会弹出警告窗口,提示“请购买正式版本”;使用该软件前需要输入序列号才能运行;该软件只能使用30天;程序中使用“花指令”防止破解;使用Key File 保护等,使用语言不限。

实验说明
本实验的目的主要是培养学生掌握软件保护的基本方法;提高编程技术。

编写的程序只要能对程序的使用进行一些限制,对程序的防破解具有一定的作用就可以了。

写实验报告时要写程序的代码,并对关键代码、函数、变量等进行说明。

写实验总结时要对程序的防破解能力进行分析,如何改进等。

下面程序可以完成加法运算,但每隔2分钟就会弹出警告窗口,提示“请购买正式版本”实例。

Public Class Form1
……
Dim t As Integer
Sub Button1_Click( ……) Handles Button1.Click
t =120 ‘Button1开始计时按钮,共120秒
Timer1.Enabled = True ‘定时器间隔设定位1秒(1ms)
End Sub
Sub Button2_Click( ……) Handles Button2.Click
TextBox3.Text= TextBox1.Text + TextBox2.Text ‘Button2加法计算按钮End Sub
Sub Timer1_Tick( ……) Handles Timer1.Tick
Dim m, s As Integer
t = t – 1 ‘到计时
If (t = 0) Then
Timer1.Enabled = False
MsgBox("请购买正式版本")
End If
End Sub。

相关文档
最新文档