ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:26.16KB ,
资源ID:6334092      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6334092.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(信息安全工程实践.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

信息安全工程实践.docx

1、信息安全工程实践信息安全工程实践二实践报告姓 名朱杰学 号班 级软信1603指 导 教 师徐剑 王学毅 马毅程序实践名称信息安全工程实践二 程序实践内容网 络 程 序 设 计开 设 学 期2017-2018第二学期开 设 时 间第17周第19周报告日期2018年7 月 14日评 定 成 绩评定人签字评 定 日 期东北大学软件学院一、程序实践概述1、题目名称:Linux操作系统及其相关命令,Linux编程基础Linux程序设计基础2、时间进度:12学时3、开发环境:Ubantu二、问题分析1、功能说明: 熟练掌握如下Linux命令。 系统信息命令:who,w,du,du,df等 文件操作命令:t

2、ouch,cp,mv,rm,find,grep,cat,more,sort等 目录操作命令:ls,dir,mkdir,rmdir,cd 进程操作命令:ps,top,cal,last,whereis,date 网络操作命令:ping,write,telnet,ftp,talk vi命令编程实现快速排序算法;实现文本文件拷贝函数copy(f_source, f_target);即实现如下功能: $ ./copy f1 f2以上程序执行后当前目录会形成一个新的文件f2,且其内容与f1完全一致。编写一个程序,要求:输入N个学生的学号和成绩,并保存在文本文件中,对学生成绩进行排序并把排序后的结果输出到文

3、件中,同时在屏幕上输出高于平均成绩的学生的学号和成绩。编写一个程序找出串str1和串str2的所有最长公共子串。从文件中读出整数,将其中不同整数及其出现次数,按整数由大到小的顺序输出到文件中。要求:采用2叉有序树做为存储结构。(选作)2、解决方案: 利用PPT中所提供的相关函数使用解决问题三、方案设计1、模块结构: 模块功能图和模块描述根据用户输入数组进行快速排序,然后输出排序后的数组用户创建f1,然后运行函数生成f2根据用户输入学生的数据,生成原数据stu文本以及根据成绩进行排序并把排序后的结果输出到score文本中,在屏幕上输出高于平均成绩的学生的学号和成绩根据用户输入的两个字符串,找出最

4、长公共子串读出文件中的整数,将其中不同整数及其出现次数,按整数由大到小的顺序输出到文件中2、数据结构:int a10FILE *fp1,*fp2struct studentint number;int score;student10char a10,b10文本f13、总体流程:给出流程图4、关键算法:给出关键算法描述if (num1) core; sort(a,m); for(i=0;im;i+) core) strcpy(student1i.num,studentj.num); student1i.score=studentj.score; fp=fopen(,w+); fwrite(&st

5、udent1,sizeof(student1),1,fp); fclose(fp);for(i=0;ilen;i+) for(j=0;jstrlen(b) strcpy(b,a); m=0; 四、调试记录给出测试用例编号用例描述测试结果修改情况分析2 1 3 4 5 6 7 8 9 101 2 3 4 5 6 7 8 9 10无程序运行正确在f1中输入asd生成了f2,打开后里面有asd无程序运行正确在屏幕中输入123456 80123457 70123458 60屏幕上输出:比平均成绩高的学生:123456 80无程序运行正确输入f1=abcdef输入f2=abcgkt最长公子串为:abc无

6、程序运行正确五、创新说明用户可以自行定义数据,根据用户输入的数组进行排序将f1的内容同时在屏幕上输出,用户可以直接查看文件内容用户可以自行定义学生个数以及在屏幕上输入学生数据,并且将成绩单独放到另一数组排序后根据序号对结构体排序用户可以输入任一字符串进行对比一、程序实践概述1、题目名称:Socket编程基础(1)时间服务器(2)远程文件备份服务器2、时间进度:8学时3、开发环境: Ubantu二、问题分析1、功能说明: 编程实现时间服务器编写一个网络时间服务器timeserver,该服务器能应具有如下功能: 够为网络上的用户提供时间服务,即为网络用户返回服务器的当前时间; 记录发出请求的网络用

7、户的IP地址(保存到文件中),格式如下: IP地址 请求时间编写时间服务客户端timeclient,该客户端能够向服务器发送时间服务请求,并把获得的时间返回给用户。 编程实现远程文件备份服务器分别采用TCP或UDP协议编写一个远程数据备份服务器,运行客户端将本地文件备份到远程的服务器中。 服务器的功能:接受客户端请求,把客户端的文件进行备份(可以备份到指定的文件夹)。 客户端的功能:与远程服务器进行连接,在连接后把本地的文件发送给远程备份服务器。 设计并实现带身份认证的远程数据备份服务器(选作) 在实验的基础上增加身份管理和认证功能:2、解决方案:服务器端过程就是socket-bind-lis

8、ten-accept-Read,write对于客户端则是socket-connect-read,write三、方案设计1、模块结构:2、数据结构:文件操作,time_t t,socket文件操作,socket3、总体流程:4、关键算法: time_t t; if(argc!=2) /获得ip地址 printf(usage %sn,argv0); return 0; if(he = gethostbyname(argv1) = NULL) printf(gethostbyname errorn); return 0; if(sockfd = socket(AF_INET, SOCK_STREAM

9、, 0) = -1) printf(socket() error n); return 0; bzero(&server, sizeof(server); = AF_INET; = htons(PORT); = *(struct in_addr *)he-h_addr); if(connect(sockfd, (struct sockaddr *)&server, sizeof(server) = -1) printf(connetc() errorn); return 0; recv(sockfd,(void *)&t,sizeof(time_t),0); printf(Time is %s

10、n,ctime(&t);5、界面设计:直接使用终端界面进行四、调试记录给出测试用例编号用例描述测试结果修改情况分析1在connetc()错误将ip改为这里的ip地址应使用服务端的ip地址2在客户端输入client is Sat Jul 7 10:48:30 2018此时结果正确3在客户端输入client 客户端输入/home/login/Desktop/服务端输入/home/login/Desktop/在服务端的文件夹里找到,并且内容与f1一致无程序运行正确五、创新说明拥有错误提示,即用户可以知道是哪个模块出错,方便进行检查拥有用户认证功能,即登录时需要特定的用户名跟密码,客户端在屏幕上输入文

11、件路径上载,服务端再输入存贮的文件路径。一、程序实践概述1、题目名称:Libpcap开发包使用2、时间进度:16学时3、开发环境: Ubantu二、问题分析1、功能说明: (1)获取网络接口名字和掩码等信息(2)捕获数据包(单个数据包和多个数据包两种情况)(3)以太网数据报捕获(4)ARP数据包捕获2、解决方案: 使用QT图形化编程,将4个功能分别对应4个按钮点击事件,并把抓包结果输出在文本框中三、方案设计1、模块结构:2、数据结构: Libpcap3、总体流程:4、关键算法:给出关键算法描述void getip() char error_contentPCAP_ERRBUF_SIZE; st

12、ruct in_addr net_ip_address; /网络地址 struct in_addr net_mask_address;/掩码地址 char *net_interface; /接口名字 char *net_ip_string; /网络地址字符串形式 char *net_mask_string; /掩码地址字符串形式 u_int32_t net_ip; /网络地址 u_int32_t net_mask; /掩码地址 net_interface=pcap_lookupdev(error_content); /获取网络接口 pcap_lookupnet( /获取网络和掩码地址 net_

13、interface, &net_ip, &net_mask, error_content ) ; printf(接口名字为:%sn,net_interface); =net_ip; net_ip_string=inet_ntoa(net_ip_address); /网络地址转为字符串形式 printf(网络地址为: %sn,net_ip_string); =net_mask; net_mask_string=inet_ntoa(net_mask_address);/掩码地址转为字符串形式 printf(掩码地址为: %sn,net_mask_string);void getpacket() c

14、har error_contentPCAP_ERRBUF_SIZE; struct pcap_pkthdr protocol_header; /数据包头 pcap_t *pcap_handle; /libpcap句柄 struct bpf_program bpf_filter; /BPF过滤规则 char bpf_filter_string=ip; /过滤规则 const u_char *packet_content; /数据包内容 bpf_u_int32 net_mask; /掩码地址 bpf_u_int32 net_ip; /网络地址 char *net_interface; /网络接口

15、net_interface=pcap_lookupdev(error_content); /获取网络接口 pcap_lookupnet( /获取网络和掩码地址 net_interface, &net_ip, &net_mask, error_content ) ; pcap_handle=pcap_open_live(net_interface,BUFSIZ,1,0,error_content); /网络接口,数据包大小,混杂模式,等待时间,错误信息 pcap_compile(pcap_handle,&bpf_filter,bpf_filter_string,0,net_ip); /编译过滤原

16、则 pcap_setfilter(pcap_handle,&bpf_filter); /设置过滤原则 packet_content=pcap_next(pcap_handle,&protocol_header);/捕获一个数据包 printf(从 %s 捕获了一个数据包n,net_interface); printf(数据包长度为:%dn,; pcap_close(pcap_handle);void getpackets() void packet_callback(u_char *argument,const struct pcap_pkthdr* packet_header,const u

17、_char* packet_content) static int packet_number=1; printf(捕获数据包的个数为:%dn,packet_number); packet_number+; char error_contentPCAP_ERRBUF_SIZE; struct pcap_pkthdr protocol_header; /数据包头 pcap_t *pcap_handle; /libpcap句柄 struct bpf_program bpf_filter; /BPF过滤规则 char bpf_filter_string=ip; /过滤规则 const u_char

18、*packet_content; /数据包内容 bpf_u_int32 net_mask; /掩码地址 bpf_u_int32 net_ip; /网络地址 char *net_interface; /网络接口 net_interface=pcap_lookupdev(error_content); /获取网络接口 pcap_lookupnet( /获取网络和掩码地址 net_interface, &net_ip, &net_mask, error_content ) ; pcap_handle=pcap_open_live(net_interface,BUFSIZ,1,0,error_cont

19、ent); /网络接口,数据包大小,混杂模式,等待时间,错误信息 pcap_compile(pcap_handle,&bpf_filter,bpf_filter_string,0,net_ip); /编译过滤原则 pcap_setfilter(pcap_handle,&bpf_filter); /设置过滤原则 pcap_loop(pcap_handle,10,packet_callback,NULL); pcap_close(pcap_handle);void getethernet() struct ether_header u_int8_t ether_dhost8; /目的以太网地址 u

20、_int8_t ether_shost8;/源以太网地址 u_int16_t ether_type; /以太网类型 ; char error_contentPCAP_ERRBUF_SIZE; struct pcap_pkthdr protocol_header; /数据包头 pcap_t *pcap_handle; /libpcap句柄 struct bpf_program bpf_filter; /BPF过滤规则 char bpf_filter_string=ip; /过滤规则 bpf_u_int32 net_mask; /掩码地址 bpf_u_int32 net_ip; /网络地址 cha

21、r *net_interface; /网络接口 const u_char *packet_content; /数据包缓存 u_char *mac_string; /以太网地址 u_short ethernet_type; /以太网类型 struct ether_header *ethernet_protocol;/以太网协议变量 net_interface=pcap_lookupdev(error_content); /获取网络接口 pcap_lookupnet( /获取网络和掩码地址 net_interface, &net_ip, &net_mask, error_content ) ; p

22、cap_handle=pcap_open_live(net_interface,BUFSIZ,1,0,error_content); /网络接口,数据包大小,混杂模式,等待时间,错误信息 pcap_compile(pcap_handle,&bpf_filter,bpf_filter_string,0,net_ip); /编译过滤原则 pcap_setfilter(pcap_handle,&bpf_filter); /设置过滤原则 if(pcap_datalink(pcap_handle)!=DLT_EN10MB) return; packet_content=pcap_next(pcap_ha

23、ndle,&protocol_header);/捕获一个网络数据包 printf(从 %s 捕获了一个数据包n,net_interface); printf(数据包长度为:%dn,; ethernet_protocol=(struct ether_header*)packet_content; ethernet_type=ntohs(ethernet_protocol-ether_type);/获得以太网类型 printf(以太网类型为:%04xn,ethernet_type); switch(ethernet_type) case 0x0800: printf(协议类型为IP协议n);bre

24、ak; case 0x0806: printf(协议类型为ARP协议n);break; case 0x8035: printf(协议类型为RARP协议n);break; default: break; mac_string=ethernet_protocol-ether_shost;/获得源以太网地址 printf(源以太网地址为:%02x:%02x:%02x:%02x:%02x:%02x,*mac_string,*(mac_string+1),*(mac_string+2),*(mac_string+3),*(mac_string+4),*(mac_string+5); mac_string

25、=ethernet_protocol-ether_dhost;/获得目的以太网地址 printf(目的以太网地址为:%02x:%02x:%02x:%02x:%02x:%02x,*mac_string,*(mac_string+1),*(mac_string+2),*(mac_string+3),*(mac_string+4),*(mac_string+5); pcap_close(pcap_handle);void getarp() pcap_t* pcap_handle; char error_contentPCAP_ERRBUF_SIZE; char *net_interface; str

26、uct bpf_program bpf_filter; char bpf_filter_string=arp; bpf_u_int32 net_mask; /掩码地址 bpf_u_int32 net_ip; /网络地址 pcap_lookupnet( /获取网络和掩码地址 net_interface, &net_ip, &net_mask, error_content ) ; struct ether_header u_int8_t ether_dhost8; /目的以太网地址 u_int8_t ether_shost8;/源以太网地址 u_int16_t ether_type; /以太网类型

27、 ; typedef u_int32_t in_addr_t; struct arp_header /arp协议格式 u_int16_t arp_hardware_type;/硬件地址类型 u_int16_t arp_protocol_type;/协议地址类型 u_int8_t arp_hardware_length;/硬件地址长度 u_int8_t arp_protocol_length;/协议地址长度 u_int16_t arp_operation_code;/操作类型 u_int8_t arp_source_ethernet_address6;/源以太网地址 u_int8_t arp_s

28、ource_ip_address4;/源IP地址 u_int8_t arp_destination_ethernet_address6;/目的以太网地址 u_int8_t arp_destination_ip_address4;/目的IP地址 ; void arp_protocol_packet_callback(u_char *argument,const struct pcap_pkthdr* packet_header,const u_char* packet_content) struct arp_header *arp_protocol; /arp协议变量 u_short protocol_type;/协议类型 u_short hardware_type;/硬件类型 u_short operation_code;/操作类型 u_char *mac_string;/以太网地址 struct in_addr source_ip_address;/源IP地址 struct in_addr destination_ip_address;/目的I

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1