信息安全课设--哈工大

合集下载

信息与网络安全课程设计

信息与网络安全课程设计

信息与网络安全课程设计一、课程背景信息安全和网络安全已经成为现代社会的重要议题,随着互联网的飞速发展,人们对于信息和网络安全的需求越来越高。

信息与网络安全课程作为计算机科学与技术专业的重要课程之一,旨在培养学生在计算机信息和网络安全领域的综合素质和技能。

二、教学目标本课程旨在使学生了解信息和网络安全的基本概念、技术和实践,包括现代密码学、数字证书、基本安全模型、网络攻击与防范措施等方面的内容,使其具备以下能力:1.掌握现代密码学基础知识及其应用技巧。

2.理解数字证书、公钥基础设施以及其在网络和信息系统中的应用。

3.分析和设计信息和网络安全模型,并对不同模型进行评估和选择。

4.熟悉基本的网络攻击和防范手段。

5.掌握网络安全实践的基本方法和技能。

三、教学内容1. 信息安全基础•信息安全基础概念和原则•信息攻击和防御的基本原理•常见威胁和攻击方式2. 现代密码学•对称加密算法•非对称加密算法•消息摘要算法•数字签名和认证3. 数字证书和PKI•数字证书的基本原理和应用•PKI系统的结构和性能•数字证书的管理和使用4. 认证与访问控制•认证的基本原理和方法•访问控制模型和技术•网络身份验证机制5. 网络安全管理•安全管理的基本原则和实践•安全管理的流程和方法•安全管理的评估和测试6. 网络攻击与防范•网络攻击的类型和特点•网络攻击与防范技术•常见的网络安全工具和软件四、教学方法本课程采用讲授、案例研讨、实验和课堂小组讨论等多种教学方法。

其中,实验和案例研讨占据了重要的教学内容,能够帮助学生更好地理解和掌握信息和网络安全的实际应用。

五、教学评估本课程的评估方式主要包括课堂作业、实验报告、小组讨论以及期末考试。

具体评分标准和比例如下:•课堂作业:30%•实验报告:30%•小组讨论:20%•期末考试:20%六、教材参考与资源教材参考:•《信息安全技术基础》•《计算机与网络安全》•《网络与信息安全综合教程》教学资源:•实验室设备和环境•网络安全实验平台•各种安全工具和软件七、总结信息和网络安全课程设计面向计算机科学与技术专业的学生,其重要性不言而喻。

信息安全技术课程设计

信息安全技术课程设计

系 专业 班 学号 姓名2 引言随着网络的发展,互联网技术的应用日益增强,随之而来的是一系列与网络安全相关的问题:如对主机的攻击,网络上传输的信息被截取、篡改、重发等,由此,它对网络应用的进一步推广构成了巨大威胁,于是数据加密便成了软件项目开发的重要之处。

数据加密技术不仅具有保证信息机密性的信息加密功能,而且具有数字签名、秘密分存、系统安全等性能。

因而可以保障信息的机密性、完整性和准确性,防止信息被窃取、篡改、伪造和假冒。

因此本系统运用了MD5数据加密技术。

同时,在竞争日趋激烈的今天,只有实行对数据加密的加强管理,建设性提高信息安全在网络中的地位,以至在竞争中求生存,以期更好地发展下去。

3 摘要近年来,随着电脑的普与,互联网技术的发展与互联网信息市场的不断完善,网络已经成为人们学习生活不可或缺的一部分,在人们获取知识、了解社会方面更是扮演着重要角色,社会的各行各业都离不开互联网。

本设计尝试用架构一个基于MD5的用户登录系统,本文从理论和实践两个角度出发,论文首先较为详尽地介绍了系统设计的有关概念与技术,特别深入介绍了在系统开发过程中用到的开发平台、开发语言以与MD5数据加密的介绍,接着对基于MD5的用户登录系统的可行性与需求进行了分析,最后对系统的主要页面、数据库、应用程序的设计与实现作了较为详细的讲解。

本系统是在Microsoft SQL Server 2005和Microsoft Visual Studio 2008开发平台实现的,其主要功能有:管理员具有登录、查询、修改删除信息功能普通用户具有注册、登录、查询、修改信息功能等。

论文在撰写过程中,力求将理论与实践应用相结合,对各种理论进行阐述的同时配合系统从实际应用和操作技巧上加以说明,希望能够更充分地体现到这些知识与技术在本系统中的应用与实现。

关键词:信息加密;c#语言;MD5加密;登录系统。

目录1 试题 .......................................................................... 错误!未定义书签。

《信息安全技术课程设计》教学大纲

《信息安全技术课程设计》教学大纲

《信息安全技术课程设计》教学大纲
Information Security Technology Course Design 课程编码:TX204040 适用专业:信息安全
先修课程:无学分数:2
总学时数:28 实验(上机)学时:28
考核方式:院系考
一、课程性质和任务
为提高学生对信息安全相关技术的理解及应用能力,增强实践操作能力,组织学生对所学的信息安全相关技术进行系统的专业实践,理论联系实际,最终完成课程设计报告。

二、教学组织形式及各阶段时间安排
三、教学内容及要求
四、实践教学所需设备、材料及条件
五、考核办法与成绩评定
成绩考核由以下及部分组成:各项报告完成情况、设计任务完成情况、设计论文完成情况、实验结果情况,平时上机记录情况,和指导老师沟通情况、实验室老师报告。

综合以上各项分别给出优、良、中、及格、不及格成绩。

六、建议教材及参考资料
信息安全概论
计算机文化基础课程教材
安全操作系统。

信息安全课程设计

信息安全课程设计

信息系统安全课程设计报告课题名称: OpenSSL 非对称加密提交文档学生姓名:提交文档学生学号:同组成员名单:指导教师姓名:指导教师评阅成绩:指导教师评阅意见:. .提交报告时间: 2014年 6 月 10日1.课程设计目标了解OpenSSL非对称加密算法的背景知识,并实现加密解密。

2.分析与设计(1)实现方法:编程语言为C++语言。

编程方法:根据算法要求编写代码。

(2)利用OpenSSL命令制作生成密钥:#include <stdlib.h>#include <stdio.h>#include <string.h>#include <openssl/pem.h>#include <openssl/rsa.h>int main(){char plain[256]="啦啦啦啦啦";char encrypted[1024];char decrypted[1024];const char* pub_key="public.pem";const char* priv_key="private.pem";printf("%s\n",plain);int len=strlen(plain);BIO *pBio = BIO_new_file(pub_key,"r");if(pBio==NULL){printf("failed to open pub_key file %s!\n", pub_key);return -1;}RSA* rsa1= PEM_read_bio_RSA_PUBKEY(pBio, NULL, NULL, NULL);if(rsa1==NULL){printf("unable to read public key!\n");return -1;}BIO_free_all(pBio);int outlen=RSA_public_encrypt(len, (unsigned char *)plain,(unsigned char *)encrypted, rsa1,RSA_PKCS1_PADDING);printf("%d\n",outlen);encrypted[outlen]='\0';printf("%s\n",encrypted);FILE* fp=fopen("out.txt","w");fwrite(encrypted,1,outlen,fp);fclose(fp);pBio = BIO_new_file(priv_key,"r");if(pBio==NULL){printf("failed to open priv_key file %s!\n", pub_key);return -1;}RSA *rsa2 = PEM_read_bio_RSAPrivateKey(pBio, NULL, NULL, NULL);if(rsa2==NULL){printf("unable to read private key!\n");return -1;}BIO_free_all(pBio);outlen=RSA_private_decrypt(outlen,(unsigned char *)encrypted,(unsigned char *)decrypted, rsa2,RSA_PKCS1_PADDING);decrypted[outlen]='\0';printf("%s\n",decrypted);return 0;}(3)手动产生公钥:#include <stdlib.h>#include <stdio.h>#include <string.h>#include <openssl/pem.h>#include <openssl/rsa.h>int main(){char plain[256]="rtre";char encrypted[1024];char decrypted[1024];const char* pub_key="public2.pem";const char* priv_key="private2.pem";const int g_nBits = 1024;printf("%s\n",plain);int len=strlen(plain);RSA *rsa1 = RSA_generate_key(g_nBits,RSA_F4,NULL,NULL);if (rsa1 == NULL){printf("rsa_generate_key error\n");return -1;}BIO *pBio = BIO_new_file(pub_key,"w");if (pBio == NULL){printf("BIO_new_file %s error\n", pub_key);return -1;}PEM_write_bio_RSAPublicKey(pBio,rsa1);BIO_free_all(pBio);int outlen=RSA_public_encrypt(len, (unsigned char *)plain,(unsigned char *)encrypted, rsa1,RSA_PKCS1_PADDING);printf("%d\n",outlen);encrypted[outlen]='\0';printf("%s\n",encrypted);FILE* fp=fopen("out.txt","w");fwrite(encrypted,1,outlen,fp);fclose(fp);pBio = BIO_new_file(priv_key,"w");if (pBio == NULL){printf("BIO_new_file %s error\n", priv_key);return -1;}PEM_write_bio_RSAPrivateKey(pBio,rsa1,NULL,NULL,NULL,NULL,NULL);BIO_free_all(pBio);outlen=RSA_private_decrypt(outlen,(unsigned char *)encrypted,(unsigned char *)decrypted, rsa1,RSA_PKCS1_PADDING);decrypted[outlen]='\0';printf("%s\n",decrypted);return 0;}3.总结RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的绝大多数密码攻击,已被ISO 推荐为公钥数据加密标准,学习这个算法让我对加密和解密的知识有了更加深入的理解。

2019年哈工大考试大纲-网络空间安全837专业课

2019年哈工大考试大纲-网络空间安全837专业课

2019年硕士研究生入学考试大纲考试科目名称:网络与信息安全基础考试科目代码:[837]本考试科目考试时间180分钟,满分150分。

包括计算机网络及信息安全基础两部分,每部分各75分。

计算机网络部分(75分)一、考试要求掌握计算机网络的基本概念、基本原理和基本方法;掌握计算机网络的体系结构和典型网络协议,了解典型网络的组成和特点,理解典型网络设备的工作原理;掌握socket编程基本技术;能够运用计算机网络的基本概念、基本原理和基本方法进行网络系统的分析、设计和应用。

注:考试内容以参考书目1为主。

二、考试内容1)计算机网络体系结构的概念a:报文交换基本概念b: TCP/IP体系结构c: IP地址,子网2)应用层a: Web与HTTPb: DNSc: SMTP3)传输层a: UDPb: TCPc: 拥塞控制4)socket编程a: UDP编程b: TCP编程c: 原始套接字编程5)网络层a:链路状态路由协议b:距离向量路由协议c: BGP6)链路层a:ARPb:WIFIc: CDMA三、试卷结构1)题型结构a:填空题(0—15分)b:选择题(0—30分)c:简答题(0—30分)d:问答题(0—30分)注:题型分数在以上范围内浮动,总分为75分四、参考书目1.James F. Kurose, and Keith W. Ross,计算机网络-自顶向下方法(原书第6版),机械工业出版社. 20142. 谢希仁. 计算机网络(第6版). 电子工业出版社,2013信息安全部分(75分)一、考试要求要求考生全面掌握信息安全领域的基本内涵、概念、原理和方法,系统深入地理解密码学基本理论、身份认证、访问控制、计算机病毒与网络入侵、防火墙与入侵检测、安全传输协议、风险评估与控制理论、信息安全标准与法律法规,掌握信息安全服务的逻辑设计与基本技术路线,理解各种信息安全服务之间的相互关系,建立信息安全体系的整体概念。

二、考试内容1)信息安全的基本概念a: 信息安全知识体系结构b:信息的基本安全属性c: 信息保障d: 安全服务与机制2)密码学基础a: 密码分类、作用与基本设计原理b: 对称密钥密码与DESc: 公开密钥密码、DH密钥交换协议与RSAd:散列函数原理及作用3) 身份认证与访问控制a: 基于对称密钥的认证设计与kerberos协议b: 基于公开密钥的认证设计与PKI理论c: 三种典型的访问控制模型及实现机制d: Windows系统网络认证及访问控制4)计算机病毒与网络入侵a: 传统计算机病毒、蠕虫病毒、木马病毒的特点、原理与防治b: 拒绝服务攻击的特点及典型攻击机理c: 欺骗类攻击的特点与典型攻击d:利用型攻击的特点及缓冲区溢出原理5)防火墙、入侵检测与安全传输协议a: 防火墙理论与netfilter结构原理b: 入侵检测理论与snorts结构原理c: IPSec与SSL协议的组成及工作原理d: SET协议体系与关键技术6)安全风险管理与法律法规a: 信息系统风险评估与控制b: CC标准与BS7799c: 信息安全道德与法律法规三、试卷题型结构a: 填空题( 0-20分 )b: 选择题( 0-20分 )b: 简答题( 0-30分)c: 计算与综合设计题( 0-30分)四、参考书目1.翟健宏,信息安全导论,科学出版社,2011.072.刘建伟等,网络安全——技术与实践,清华大学出版社,2011.07。

信息安全课程设计

信息安全课程设计

信息安全课程设计(论文)说明书题目:网络嗅探器的设计与实现学院:专业:姓名:学号:指导教师:2011年月日摘要随着网络技术的飞速发展,以及越来越多的信息资源放在了网上,网络安全问题越来越被人们所重视,其安全性和可靠性也越发重要。

嗅探技术作为网络安全攻防中最基础的技术,它既可以用于获取网络中传输的大量的敏感信息,又可以用来进行网络管理。

但同时它又有另一方面的影响,即攻击者可以利用它来监听网络中的数据,达到非法获得信息的目的。

因此对网络嗅探器的研究具有重要意义,分析其通过获取网络包得流向和内容等信息,从而进行网络安全分析和网络威胁应对。

本课程设计是关于网络嗅探器的简单设计与实现,同时对网络嗅探技术进行了简要分析,研究了网络数据包的捕获机制,以VS2010为开发平台,使用Windows环境下的网络数据包捕获开发库WinPcap认真学习和掌握网络嗅探器工作原理,设计出一个嗅探器程序,使其实现网络层抓包,并对获得包的源和目的地址、端口、协议等进行分析及显示,实现简单的包嗅探器功能。

关键字:网络嗅探数据包捕获数据包分析网络协议 WinPcap VS2010目录1、引言 (1)1.1 开发背景 (1)1.2 开发意义 (1)1.3 正文安排 (1)2、系统分析 (2)2.1 需求分析 (2)2.1.1 功能需求 (2)2.1.2 适用范围 (2)2.1.3 基本思路 (2)2.1.4 使用环境 (2)2.1.5 可行性分析 (2)2.2 技术分析 (2)2.2.1 嗅探原理 (2)2.2.2 捕获机制 (3)2.2.3 WinPcap 技术 (3)3、程序设计与实现 (4)3.1 主要流程 (4)3.2 总体规划 (4)3.3 函数说明 (4)3.4 分块设计 (6)3.4.1 获得网卡列表信息 (6)3.4.2 数据包捕获 (7)3.4.2 数据包过滤 (7)3.4.2 数据包分析 (8)4、问题分析及测试 (9)4.1 问题分析 (9)4.2 测试 (10)5、结论 (11)5.1 设计心得 (11)5.1 谢辞 (11)参考文献 (12)附录(源程序) (13)1、引言1.1 开发背景随着网络技术的迅速发展,加速了全球信息化进程,各种重要数据在网上的传播日益普遍,使得网络安全问题越来越为人们所关注。

哈尔滨工业大学(威海)数据结构课程设计任务书

哈尔滨工业大学(威海)数据结构课程设计任务书
(3)绘图:
通过MFC绘制国家铁路客运图(部分),当用户输入起始点和终点时,文本输出不同优先条件下的路线,用户选择其中一条推荐路径,在国家铁路客运图(部分)绘出所选的路径。
同组设计者及分工:
赵天麒:主要负责对国家铁路客运图(部分)的抽象,抽象出数据结构中的图,为下一环节作准备。整合所有程序,修改完成最后项目。
张峥:通过数据结构所学的算法,计算不同优先考虑因素下的推荐路径,记录途经路径。为MFC绘图作准备。指导其他同学解决遇到的问题。
王海:利用MFC绘图,显示用户输入起始点到所到终点的路径、前期查找资料选择数据。
赵磊:对程序进行测试,调试,找出不足,并进一步完善此程序,界面设计,并完成车次查询、车站查询模块、点击选站。
哈尔滨工业大学(威海)数据结构课程设计任务书
姓名:张峥赵磊王海赵天麒
学号:080420229 080420228 080420227 080420113
院(系):计算机科学与技术学院专业: Nhomakorabea息安全课程设计题目:中国铁路客运导航服务系统
1.问题阐述与分析:
铁路客运是一种最有效的已知陆上交通方式,,以其安全程度高、运输速度快、运输距离长、运输能力大、运输成本低、污染小、潜能大、不受天气条件影响等优势受到旅客青睐。这些年来,全国的铁路客运系统有了很大的发展,使得公众的出行更加通畅、便利。但由于客运线路错综复杂,特别是当前大部分火车票查询系统无法显示中转站、没有人性化的推荐结果,当需要转车时,旅客将会面临着多条线路的选择问题。
为了解决这些问题,我们组经过缜密考虑,决定利用自己学过的数据结构与算法的知识结合MFC编程,设计铁路客运选路系统。此系统能方便快捷的为使用者提供不同优先考虑因素下的推荐路径,希望能为大家带来方便。

信息安全技术教程课程设计

信息安全技术教程课程设计

信息安全技术教程课程设计一、课程设计背景随着互联网技术的快速发展与广泛应用,以及信息化进程的不断加快,信息安全问题日益成为社会的关注焦点。

信息安全强国建设已成为国家战略,信息安全技术的培养缺口巨大,急需高素质的信息安全技术人才。

为培养具有信息安全专业知识与技能的人才,我们设计了本门信息安全技术教程课程。

二、课程设计目标本门课程旨在通过讲授信息安全基础理论知识以及应用技术,提高学生关于信息安全的意识和实践能力,培养学生较为完整的信息安全理论体系,掌握信息安全评价与风险管理的方法,熟悉信息安全解决方案的设计与实现。

三、教学内容与课时安排1. 信息安全基础理论知识•信息安全概述(2课时)•密码学基础(4课时)•认证与授权(4课时)•安全漏洞分析(4课时)2. 信息安全应用技术•网络安全(8课时)•数据库安全(6课时)•应用系统安全(6课时)3. 实践教学•网络安全漏洞扫描与修复实践(6课时)•数据库安全实践(6课时)•应用系统安全测试实践(6课时)四、教学方法本门课程采用讲授与实践相结合的教学方法。

理论课程主要采用讲授方式,引导学生理解信息安全基础理论知识,为后续实践课程打下坚实基础。

实践教学通过组织学生完成一系列针对性项目实践,让学生感受实际操作过程中安全威胁的实质、掌握专业实践技能。

五、评估方式本门课程的评估方式主要分为两个方面:1. 课堂表现及作业(占70%)•课堂表现(出勤情况、发言、互动等)(20分)•课程作业(平时作业、小组作业等)(50分)2. 课程项目实践(占30%)•各项实践完成情况(30分)六、课程教材与参考资料1. 教材符合教学要求的信息安全技术教学参考书或教材。

2.参考资料•电子政务安全实务. 程伟峰等编高等教育出版社,2017•信息安全学习指南. 单安军,等编凤凰出版传媒集团,2017•信息安全体系建设. 王磊,等编清华大学出版社,2016七、总结本门课程是信息安全技术专业的一门必修课,它是一门综合性的课程,在信息安全行业起着至关重要的作用。

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

H a r b i n I n s t i t u t e o f T e c h n o l o g y a t W e i h a iWebMail 解析作者:院系:计算机科学与技术班级:学号:指导老师:需要源程序的留下联系方式哈尔滨工业大学(威海)二零一二年六月目录1.前言 (3)2.涉及的协议简介: (3)2.1HTTP协议简介: (3)2.2 TCP/IP协议简介: (4)3.程序设计思想: (4)4.程序函数设计: (5)5. webmail监控源程序 (5)6. 相应截图及说明 (9)21.前言随着网络的发展和普及,浏览网页、QQ聊天、电子留言、电子邮件己经深入人们的生活。

在众多的现代通信方式中,电子邮件(E- mail)己经成为了其中的重要组成部分。

当电子邮件给人们带来极大便利的同时,也带来了一系列的不安全因素:有害信息的广泛传播、国家和企业机密的泄露等。

为了控制和减少这些不安全因素的发生,需要建立一系列的安全机制。

对传输内容的监控是较为重要的一种,在监控的过程中,对传输内容的还原又是最重要的一步。

此次实验目的是捕获webmail的登录账号与密码等信息。

2.涉及的协议简介:2.1HTTP协议简介:超文本传送协议 (HTTP) 是一种通信协议,它允许将超文本标记语言(HTML) 文档从 Web 服务器传送到 Web 浏览器。

HTML 是一种用于创建文档的标记语言,这些文档包含到相关信息的链接。

您可以单击一个链接来访问其它文档、图像或多媒体对象,并获得关于链接项的附加信息。

HTTP工作在TCP/IP协议体系中的TCP协议上。

客户机和服务器必须都支持 HTTP,才能在万维网上发送和接收HTML 文档并进行交互。

HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。

它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。

前一段时间用的是 HTTP/1.0,现在WWW中使用的是HTTP/1.1。

而且HTTP-NG(Next Generation of HTTP)的建议已经提出。

HTTP主要特征:1.支持客户/服务器模式。

2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。

请求方法常用的有GET、HEAD、POST。

每种方法规定了客户与服务器3联系的类型不同。

由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。

3.灵活:HTTP允许传输任意类型的数据对象。

正在传输的类型由Content-Type加以标记。

4.无连接:无连接的含义是限制每次连接只处理一个请求。

服务器处理完客户的请求,并收到客户的应答后,即断开连接。

采用这种方式可以节省传输时间。

5.无状态:HTTP协议是无状态协议。

无状态是指协议对于事务处理没有记忆能力。

缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。

另一方面,在服务器不需要先前信息时它的应答就较快。

2.2 TCP/IP协议简介:Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,Internet 最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。

TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准。

协议采用了4层的层级结构,一层都呼叫它的下一层所提供的网络来完成自己的需求。

通俗而言:TCP 负责发现传输的问题,一有问题就发出信号,要求重新传输,直到所有数据安全正确地传输到目的地。

而IP是给因特网的每一台电脑规定一个地址。

3.程序设计思想:1.解析http,还原出tcp报文。

2.解析tcp,还原出ip报文。

3.解析ip报文。

4.查找post报文,找到username和password,把其中的参数打印出4来。

5.分析目的地址,源地址以及端口。

6.设置循环,进行捕包。

4.程序函数设计:1.http协议数据包解析函数:void http_callback。

2.tcp协议数据包解析函数:void tcp_protocol_packet_callback。

3.ip协议数据包解析函数:void ip_protocol_packet_callback。

4.以太网数据包解析:void ethernet_protocol_packet_callback。

5. webmail监控源程序#include "packet.h"#include <stdio.h>void http_callback(u_char *arg,const struct pcap_pkthdr* pcaket_header,const u_char* packet_content,u_int len){const u_char* p = packet_content + 14 + 20 + len ;char buf[1025];char buf1[1025];int i = 0;u_char* ps = strstr(p,"POST");if(ps != NULL ){while(*ps++ && i < 12){if(*ps == '\n')i++;printf("%c",*ps);}}//找到username出现的位置ps = strstr(p,"username=");if(ps != NULL){//printf("%s",ps);5sscanf(ps,"username=%[^&]&password=%[^&]&",buf,buf1);printf("username:%s\npassword:%s\n",buf,buf1);}printf("-----------------------------------------------------\n");}void tcp_protocol_packet_callback(u_char *argument,const struct pcap_pkthdr* packet_header,const u_char* packet_content){struct tcp_header *tcp_protocol;u_int head_length;u_short source_port;u_short destination_port;tcp_protocol = (struct tcp_header *)(packet_content+14+20);source_port = ntohs(tcp_protocol->tcp_source_port);destination_port = ntohs(tcp_protocol->tcp_destination_port);head_length = tcp_protocol->tcp_offset*4;printf("source port:%d\n",source_port);printf("destination port:%d\n",destination_port);switch(destination_port){case 80:http_callback(argument,packet_header,packet_content,head_length);break;default:break;}}void ip_protocol_packet_callback(u_char * argument,const struct pcap_pkthdr * packet_header,const u_char * packet_content){struct ip_header * ip_protocol;ip_protocol = (struct ip_header*)(packet_content+14);printf("source address :%s\n",inet_ntoa(ip_protocol->ip_source_address));6printf("destination address :%s\n",inet_ntoa(ip_protocol->ip_destination_address));//如果是TCP协议switch(ip_protocol->ip_protocol){case 6:tcp_protocol_packet_callback(argument,packet_header,packet_content);break;default:break;}}void ethernet_protocol_packet_callback(u_char *argument,const struct pcap_pkthdr * packet_header,const u_char * packet_content){u_short ethernet_type;struct ether_header *ethernet_protocol;ethernet_protocol = (struct ether_header *)packet_content;ethernet_type = ntohs(ethernet_protocol->ether_type);//如果是IP数据包,则作进一步处理switch(ethernet_type){case 0x0800:printf("-----------------------------------------------------\n");ip_protocol_packet_callback(argument,packet_header,packet_content);break;default:break;}}int main(){pcap_t *pcap_handle;char error_content[PCAP_ERRBUF_SIZE];char *net_interface;struct bpf_program bpf_filter;// 设置过滤字符串char bpf_filter_string[] = "tcp port 80";7bpf_u_int32 net_mask;bpf_u_int32 net_ip;//获取可用的网络设备net_interface = pcap_lookupdev(error_content);pcap_lookupnet(net_interface,&net_ip,&net_mask,error_content);//打开设备pcap_handle = pcap_open_live(net_interface,20480,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;//循环捕包pcap_loop(pcap_handle,-1,ethernet_protocol_packet_callback,NULL);pcap_close(pcap_handle);}896. 相应截图及说明1. 编译产生可执行文件watchwebmail 。

相关文档
最新文档