第2章编程.ppt

上传人:qwe****56 文档编号:70012856 上传时间:2023-01-14 格式:PPT 页数:47 大小:669.50KB
返回 下载 相关 举报
第2章编程.ppt_第1页
第1页 / 共47页
第2章编程.ppt_第2页
第2页 / 共47页
点击查看更多>>
资源描述

《第2章编程.ppt》由会员分享,可在线阅读,更多相关《第2章编程.ppt(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院第第2章章 网络安全程序设计基础网络安全程序设计基础计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院学习的必要性1、网络安全中存在着网络安全中存在着“攻攻”与与“防防”两种相两种相互矛盾而又相互依存的技术,互矛盾而又相互依存的技术,“攻攻”与与“防防”并不只是简单的使用他人提供好的现并不只是简单的使用他人提供好的现成工具就可以了,还应该深入了解其中的成工具就可以了,还应该深入了解其中的原理,不但原理,不但“知其然知其然”,还要,还要“知其所以知其所以然然”。2

2、、只有我们了解网络安全攻击与防范的一些、只有我们了解网络安全攻击与防范的一些基本原理以及相应的程序实现之后,我们基本原理以及相应的程序实现之后,我们才能才能更进一步加深对相关知识的理解与掌更进一步加深对相关知识的理解与掌握程度握程度,也才能更进一步地增强我们防范,也才能更进一步地增强我们防范网络攻击和动手解决实际网络安全问题的网络攻击和动手解决实际网络安全问题的能力。能力。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院Windows程序的工作机制消息机制是Windows应用程序的核心,Windows是一个以消息为导向的系统 1Windows消息的分

3、类(1)标准的Windows消息 除了WM_COMMAND消息,所有以WM_为前缀的消息都是标准的Windows消息 键盘消息,举例:WM_KEYDOWN 鼠标消息,举例:WM_MOUSEMOVE(2)控件消息:控件和子窗口向父窗口发出WM_COMMAND消息(3)命令消息:操作菜单项、工具栏按钮、快捷键等用户界面对象发出的WM_COMMAND消息。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院Windows消息循环 Windows程序的进行依靠外部事件来驱动,也就是说,程序不断等待(利用一个while循环),等待任何可能的输入,然后做判断,然后再

4、做适当的处理。p每一个Windows程序都应该有一个如下的循环:pMSG msg;pwhile(GetMessage(&msg,NULL,NULL,NULL)p /从消息队列中取得消息 p TranslateMessage(&msg);p /检索并生成字符消息WM_CHAR p DispatchMessage(&msg);p /将消息发送给相应的窗口函数 p 计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p消息,也就是上面的MSG结构,其实就是Windows内部的一种定义好的数据结构:pTypedef struct tagMSGpp HWND hw

5、nd;p UINT message;p WPARAM wParam;p LPARAM lParam;p DWORD time;p POINT pt;p计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院Windows SDK程序开发程序开发SDK是Software Development Kit的缩写,中文意思是“软件开发工具包”。Windows SDK包含了开发该Windows版本所需的Windows函数和常数定义、API函数说明文档、相关工具和示例。用VC+编写Windows程序有两种方式:Windows C方式(SDK)和C+方式(对SDK函数进行

6、包装,如VC+中的MFC(Microsoft Foundation Class),SDK编程就是直接用Windows API进行编程。API由上千个API函数组成,而MFC是API的封装,结合面向对象的继承、多态组成一个个类,共有一百多个类组成。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院几个概念API,也就是 Application Programming Interface,其实就是操作系统留给应用程序的一个调用接口,应用程序通过调用操作系统的 API 而使操作系统去执行应用程序的命令(动作)。DLL,即 Dynamic Link Libra

7、ry(动态链接库)。其实 Windows 的三大模块就是以 DLL 的形式提供的(Kernel32.dll,User32.dll,GDI32.dll),里面就含有了 API 函数的执行代码。为了使用 API 函数,我们就要有跟 API 所对应的.H 和.LIB 文件,而 SDK 正是提供了一整套开发 Windows 应用程序所需的相关文件、范例和工具的“工具包”计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院Windows SDK程序的开发流程 计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院简单的简单的W

8、indows程序示例程序示例p一个一个Win32应用程序框架主要由应用程序框架主要由初始化窗口初始化窗口类、窗口注册类、窗口的创建以及窗口消类、窗口注册类、窗口的创建以及窗口消息函数等组成息函数等组成。p结合教材分析:结合教材分析:p程序范例程序范例2-1:简单的:简单的Win32窗口程序窗口程序计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院Socket通信程序设计通信程序设计套接字套接字(Socket)起初来源于起初来源于UNIX,是加利福,是加利福尼亚大学尼亚大学Berkeley 分校开发的分校开发的UNIX 操作操作系统下的网络通信接口。系统

9、下的网络通信接口。90 年代初期,由年代初期,由Sun Microsystems、Microsoft 等几家公司联合制定了一套等几家公司联合制定了一套Windows 下套接字编程的规范,称为下套接字编程的规范,称为Windows Sockets 规范规范。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院常用常用winsock函数函数p(1)WSAStartup()p功能:Winsock.DLL模块初始化函数。p(2)socket()p功能:建立Socket。p(3)bind()p功能:指定 Socket 的本地地址(Local Address)。p(

10、4)listen()p功能:设定 Socket 为监听状态,准备接受连接请求。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院常用常用winsock函数函数p(5)connect()p功能:Client向Server正式发出连接请求。p(6)accept()p功能:接受某Client的连接要求,以完成 Stream Socket 的连接。p(7)closesocket()p功能:关闭Socket。p(8)WSACleanup()p功能:结束 Windows Sockets DLL 的使用。p(9)send()p功能:使用已连接(connected)的

11、Socket 发送数据。p(10)recv()p功能:从Socket 接收数据。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院winsock编程步骤编程步骤p服务器端:p(1)创建服务器套接字(socket)。p(2)服务器套接字进行信息绑定(bind),并开始监听连接(listen)。p(3)接受来自用户端的连接请求(accept)。p(4)开始数据传输(send/receive)。p(5)关闭套接字(closesocket)。p 客户端:p(1)创建用户套接字(socket)。p(2)与远程服务器进行连接(connect),如被接受则创建接收进

12、程。p(3)开始数据传输(send/receive)。p(4)关闭套接字(closesocket)。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院网络安全程序设计网络安全程序设计p 2.3.1 注册表操作注册表操作p1注册表概述注册表概述p注册表到底是什么东西?注册表到底是什么东西?Windows的注册的注册表表包含了包含了Windows的系统配置、计算机机的系统配置、计算机机的硬件配置、的硬件配置、Win32应用程序和用户的其他应用程序和用户的其他设置信息。设置信息。p在程序中使用注册表,不外乎创建、打开、在程序中使用注册表,不外乎创建、打开、读

13、取、设置、删除这五个常规操作读取、设置、删除这五个常规操作。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院注册表操作常用函数p(1)RegCreateKeyEx。p功能:通过RegCreateKeyEx函数可以在注册表中创建键,如果需要创建的键已经存在了,则打开键。p(2)RegOpenKeyEx。p功能:RegOpenKeyEx函数可以打开一个指定的键。p(3)RegQueryValueEx。p 功能:通过RegQueryValueEx函数可以从一个已经打开的键中读取数据。p(4)RegSetValueEx。p功能:RegSetValueEx函数

14、可以设置注册表中键的值。p(5)RegDeketeKey。p功能:函数RegDeketeKey删除一个键及所有的子键。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院注册表操作范例在Visual C+6.0中新建一基于对话框的工程,设置了两个命令按钮,名为“查询注册表”和“修改注册表”,用来查询和修改注册表中书名和作者名称。假定书和作者的信息位于系统注册表中 HKEY_LOCAL_MACHINESoftwareUESTCNETWORK的位置,键值名BookName和BookAuthor分别表示书籍的名称和书籍的作者。具体程序代码参加教材:程序范例2-

15、2:注册表查询计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院进程隐藏技术进程隐藏技术p三个相关的概念:进程,线程和服务三个相关的概念:进程,线程和服务。p进程:一个正常的进程:一个正常的Windows应用程序,应用程序,在运行之在运行之后,都会在系统之中产生一个进程,进程是资源后,都会在系统之中产生一个进程,进程是资源分配的基本单位分配的基本单位;同时,每个进程,分别对应了;同时,每个进程,分别对应了一个不同的一个不同的PID(Progress ID,进程标识符)这进程标识符)这个进程会被系统分配一个虚拟的内存空间地址段,个进程会被系统分配一个虚拟

16、的内存空间地址段,一切相关的程序操作,都会在这个虚拟的空间中一切相关的程序操作,都会在这个虚拟的空间中进行。进行。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p线程:线程:一个进程可以包含一个或多个线程,线一个进程可以包含一个或多个线程,线程是程是CPU调度分配的基本单位,线程之间同步调度分配的基本单位,线程之间同步执行多种操作执行多种操作,一般地,线程之间是相互独立,一般地,线程之间是相互独立的,当一个线程发生错误的时候,并不一定会的,当一个线程发生错误的时候,并不一定会导致整个进程的崩溃。导致整个进程的崩溃。p服务:服务:一个进程当以服务的方

17、式工作的时候,一个进程当以服务的方式工作的时候,它将会在后台工作,不会出现在任务列表中,它将会在后台工作,不会出现在任务列表中,但是,在但是,在Windows NT/2000下,你仍然可以通下,你仍然可以通过服务管理器检查任何的服务程序是否被启动过服务管理器检查任何的服务程序是否被启动运行。运行。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p进程隐藏技术进程隐藏技术的一个典型应用就是特洛伊木马,的一个典型应用就是特洛伊木马,特洛伊木马实际上是一种基于远程控制的黑客工特洛伊木马实际上是一种基于远程控制的黑客工具,具有隐蔽性和非授权性的特点。一般情况

18、下,具,具有隐蔽性和非授权性的特点。一般情况下,Windows下的木马程序,服务器端没有进程,没下的木马程序,服务器端没有进程,没有端口,开机自动运行,可以接收客户端发来的有端口,开机自动运行,可以接收客户端发来的文件并执行文件,只有不被发现的木马才具有实文件并执行文件,只有不被发现的木马才具有实质的意义。关于特洛伊木马的详细介绍,请教材质的意义。关于特洛伊木马的详细介绍,请教材第第4章,本部分将重点从程序设计的角度来讨论一章,本部分将重点从程序设计的角度来讨论一下木马程序如何隐藏进程的问题。下木马程序如何隐藏进程的问题。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都

19、理工大学工程技术学院p想要隐藏木马的服务器端,可以伪隐藏,想要隐藏木马的服务器端,可以伪隐藏,也可以是真隐藏。伪隐藏,也可以是真隐藏。伪隐藏,就是指程序的就是指程序的进程仍然存在,进程仍然存在,只不过是让他消失在进程只不过是让他消失在进程列表里列表里。真隐藏则是让程序彻底的消失,。真隐藏则是让程序彻底的消失,不以一个进程或者服务的方式工作。不以一个进程或者服务的方式工作。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院进程伪隐藏技术 p伪隐藏的方法,是比较容易实现的,只要伪隐藏的方法,是比较容易实现的,只要把把木马服务器端的程序注册为一个服务就木马服

20、务器端的程序注册为一个服务就可以了可以了,这样,程序就会从任务列表中消,这样,程序就会从任务列表中消失了,因为系统不认为他是一个进程,当失了,因为系统不认为他是一个进程,当按下按下Ctrl+Alt+Delete的时候,也就看不到的时候,也就看不到这个程序。这个程序。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p程序范例2-4:进程隐藏技术:伪隐藏pWINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int)pptryppDWORD dwVersion=GetVersion();/取得Windows的版本号pif(dw

21、Version=0 x80000000)/Windows 9x隐藏任务列表pp int(CALLBACK*rsp)(DWORD,DWORD);p HINSTANCE dll=LoadLibrary(KERNEL32.DLL);/装入KERNEL32.DLLprsp=(int(CALLBACK*)(DWORD,DWORD)GetProcAddress(dll,RegisterServiceProcess);计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p/找到RegisterServiceProcess的入口prsp(NULL,1);/注册服务pFr

22、eeLibrary(dll);/释放DLL模块pppcatch(Exception&exception)/处理异常事件pp/处理异常事件ppreturn 0;p计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院进程真隐藏技术p我们可以我们可以不把木马做成一个应用进程,而不把木马做成一个应用进程,而把他做成一个线程把他做成一个线程,一个其他应用程序的,一个其他应用程序的线程,把自身注入其他应用程序的地址空线程,把自身注入其他应用程序的地址空间。而这个应用程序对于操作系统系统来间。而这个应用程序对于操作系统系统来说,被认为是一个绝对安全的程序。这样,说,被

23、认为是一个绝对安全的程序。这样,就达到了就达到了进程彻底隐藏的效果进程彻底隐藏的效果,这样的结,这样的结果,将导致了查杀黑客程序难度大大增加。果,将导致了查杀黑客程序难度大大增加。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p因此,把因此,把木马程序作为其他安全进程中的木马程序作为其他安全进程中的一个线程运行一个线程运行,这样在,这样在 Windows 任务管理任务管理器的进程中就看不到了。器的进程中就看不到了。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院 最简单易用的方法就是把木马程序放在一个dl

24、l(动态链接库)中,另有一个程序负责将这个dll注入到其他进程,比如Explorer.exe进程中。负责注入dll的程序先用VirtualAllocEx(hRemoteProcess,.)在目标进程中分配一块儿内存,用WriteProcessMemory向该内存中写入要注入的dll的路径和名称,然后利用CreateRemoteThread在目标进程中创建一个线程,这个线程执行LoadLibraryW,并以刚才分配的那块内存中的dll的路径和名称为参数。这样就使dll载入了目标进程的地址空间,dll的载入将执行dll。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大

25、学工程技术学院进程隐藏范例p下面给出一个说明这种隐藏方法的程序,程序分为两部分,负责注入的叫NoProcessExe.exe,被注入的dll叫做NoProcessDll.dll。NoProcessExe.exe负责把NoProcessDll.dll注入到Explorer.exe进程中,NoProcessDll.dll中的程序首先获得所在进程的Pid(进程标识符),然后用MessageBox打印出来,以证明它是在Explorer.exe进程中运行的。注意一下NoProcessDll.dll,NoProcessExe.exe 要放在同一目录下,下面给出核心代码:p程序范例2-5:进程隐藏技术:真隐

26、藏计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院端口扫描端口扫描p一个端口就是一个一个端口就是一个潜在的通信通道潜在的通信通道,也就是一个,也就是一个入侵通道,对目标计算机进行端口扫描,可以得入侵通道,对目标计算机进行端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。到许多有用的信息,从而发现系统的安全漏洞。进行扫描的方法很多,可以是手工进行扫描,也进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行。可以用端口扫描软件进行。p端口扫描器是端口扫描器是一种自动检测远程或本地主机安全一种自动检测远程或本地主机安全性弱点的程序性弱点

27、的程序,通过使用扫描器你可以不留痕迹,通过使用扫描器你可以不留痕迹的发现远程服务器的各种的发现远程服务器的各种TCP端口的分配及提供端口的分配及提供的服务和它们的软件版本!这就能让我们间接的的服务和它们的软件版本!这就能让我们间接的或直观的了解到远程主机所存在的安全问题。或直观的了解到远程主机所存在的安全问题。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p 端口扫描器工作原理如下:扫描器通过端口扫描器工作原理如下:扫描器通过选择远选择远程主机程主机TCP/IP不同的端口的服务,并记录目标不同的端口的服务,并记录目标主机给予的回答主机给予的回答,通

28、过这种方法,可以搜集到,通过这种方法,可以搜集到很多关于目标主机的各种有用的信息很多关于目标主机的各种有用的信息 计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p需要注意的是,扫描器并非一个直接的攻击网络需要注意的是,扫描器并非一个直接的攻击网络漏洞的程序,它仅仅能漏洞的程序,它仅仅能帮助我们发现目标主机的帮助我们发现目标主机的某些内在的弱点某些内在的弱点。一个好的扫描器能对它得到的。一个好的扫描器能对它得到的数据进行分析,帮助我们查找目标主机的漏洞,数据进行分析,帮助我们查找目标主机的漏洞,但它一般不会提供入侵一个系统的详细步骤。但它一般不会提供

29、入侵一个系统的详细步骤。p扫描器应该有三项功能:扫描器应该有三项功能:p(1)发现一个主机或网络的能力;)发现一个主机或网络的能力;p(2)一旦发现一台主机,有发现什么服务正运行)一旦发现一台主机,有发现什么服务正运行在这台主机上的能力;在这台主机上的能力;计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p(3)通过测试这些服务,发现漏洞的能力。)通过测试这些服务,发现漏洞的能力。p编写扫描器程序需要我们前面学过的编写扫描器程序需要我们前面学过的Socket通信通信编程的知识,下面给出一个较为简单的单线程扫编程的知识,下面给出一个较为简单的单线程扫描

30、器程序的描器程序的C语言源码,通过这个例子的学习,语言源码,通过这个例子的学习,可以帮助我们进一步加深对可以帮助我们进一步加深对Socket通信编程的理通信编程的理解。解。p程序范例程序范例2-7:单线程端口扫描器程序:单线程端口扫描器程序计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院网页病毒网页病毒p网页病毒(又称网页恶意代码)是网页病毒(又称网页恶意代码)是利用网页来进利用网页来进行破坏的病毒行破坏的病毒,它使用一些脚本,它使用一些脚本(Script)(Script)语言编语言编写的一些恶意代码写的一些恶意代码利用浏览器的漏洞来实现病毒利用浏览

31、器的漏洞来实现病毒植入植入。当用户登录某些含有网页病毒的网站时,。当用户登录某些含有网页病毒的网站时,网页病毒便被悄悄激活,这些病毒一旦激活,可网页病毒便被悄悄激活,这些病毒一旦激活,可以利用系统的一些资源进行破坏。以利用系统的一些资源进行破坏。pWSHWSH,是,是“Windows Scripting HostWindows Scripting Host”的缩略形式,的缩略形式,其通用的中文译名为其通用的中文译名为“Windows Windows 脚本宿主脚本宿主”。p实际上,网页恶意代码的技术基础就是实际上,网页恶意代码的技术基础就是WSHWSH,通过,通过用户双击执行它,这时,系统就会自

32、动调用一个用户双击执行它,这时,系统就会自动调用一个适当的程序来对它进行解释并执行。适当的程序来对它进行解释并执行。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p恶意的脚本语言经常会恶意的脚本语言经常会被植入网页之中被植入网页之中(其中包括(其中包括HtmlHtml页面客户端和页面客户端和ASPASP等页面服务器端)。对于植入等页面服务器端)。对于植入HtmlHtml页页面的脚本,其所需要的解析引擎会由面的脚本,其所需要的解析引擎会由IEIE这样的网页浏览这样的网页浏览器载入;对于植入器载入;对于植入ASPASP服务器端的脚本,其所需要的引服务器

33、端的脚本,其所需要的引擎由擎由WEBWEB服务器(如服务器(如IISIIS)提供。而对于出现在)提供。而对于出现在HTMLHTML和和ASPASP页面之外的脚本(它们常常以独立的文件形式存在)页面之外的脚本(它们常常以独立的文件形式存在),就需要由,就需要由WSHWSH来处理,来处理,WSHWSH在工作时会调用在工作时会调用IEIE中的中的VBScriptVBScript和和JavaScriptJavaScript解析引擎。解析引擎。p就这样,当浏览了含有恶意脚本代码的网页时,脚本就就这样,当浏览了含有恶意脚本代码的网页时,脚本就会被会被WSHWSH解释执行,攻击者就达到了攻击的目的。解释执行

34、,攻击者就达到了攻击的目的。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院用户受了攻击之后有什么现象?p(1 1)更改)更改IEIE标题。标题。p(2 2)更改默认主页。)更改默认主页。p(3 3)连续打开无数个窗口。)连续打开无数个窗口。p(4 4)使浏览器崩溃。)使浏览器崩溃。p(5 5)永无休止的单击,迫使)永无休止的单击,迫使IEIE关闭。关闭。p(6 6)消耗内存。)消耗内存。p(7 7)使)使IEIE拒绝服务。拒绝服务。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p(8 8)共享你的硬盘。

35、)共享你的硬盘。p(9 9)开机弹出一个窗口。)开机弹出一个窗口。p(1010)修改注册表。)修改注册表。p(1111)禁止运行注册表编辑器。)禁止运行注册表编辑器。p程序范例程序范例2-82-8:打开多个:打开多个IEIE窗口窗口p程序范例程序范例2-92-9:无休止的对话框:无休止的对话框p程序范例程序范例2-102-10:修改注册表:修改注册表计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院网络监听与数据包过滤网络监听与数据包过滤p网络监听(也被称之为网络嗅探)与包过滤技术是网络入侵的核心技术之一,也是网络安全协议技术研究的核心技术之一。p网络

36、监听和过滤也成了黑客使用最多的技术,主要用于监视他人的网络状态、攻击网络协议、窃取敏感信息等目的。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p最简单的监听程序包括最简单的监听程序包括内核部分和用户分内核部分和用户分析部分析部分,其中,其中内核部分负责从网络中捕获内核部分负责从网络中捕获和过滤数据和过滤数据,用户分析部分,用户分析部分负责界面、数负责界面、数据转化与处理、格式化、协议分析据转化与处理、格式化、协议分析,如果,如果在内核没有过滤数据包,在这里还要对数在内核没有过滤数据包,在这里还要对数据进行过滤。据进行过滤。p一个较为完整的基于网络

37、监听和过滤的程一个较为完整的基于网络监听和过滤的程序一般包括序一般包括以下步骤以下步骤:数据包捕获、数据:数据包捕获、数据包过滤与分解、数据分析。包过滤与分解、数据分析。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院winpcap概述pWinpcap(WindowsWinpcap(Windows packet capture)packet capture)是是WindowsWindows平台下一个平台下一个免费、公共的网络访问系统免费、公共的网络访问系统。开发。开发WinpcapWinpcap这个项目的目的在于为这个项目的目的在于为win32win

38、32应用程序应用程序提供访问提供访问网络底层的能力网络底层的能力。WinpcapWinpcap提供了以下提供了以下的各项功能:的各项功能:p(1 1)捕获原始数据包捕获原始数据包,包括在共享网络上各,包括在共享网络上各主机发送主机发送/接收的数据包以及相互之间交换的数接收的数据包以及相互之间交换的数据包。据包。p(2 2)在数据包发往应用程序之前,按照自定在数据包发往应用程序之前,按照自定义的规则将某些特殊的义的规则将某些特殊的数据包过滤掉数据包过滤掉。p(3 3)在网络上发送)在网络上发送原始的数据包原始的数据包。p(4 4)收集网络通信过程中的收集网络通信过程中的统计信息统计信息。计算机网

39、络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院Winpcap函数p(1)int pcap_findalldevs(pcap_if_t*,char*)p 功能:用来获得网卡的列表。p(2)void pcap_freealldevs(pcap_if_t*)p功能:与int pcap_findalldevs(pcap_if_t*,char*)配套使用,当不再需要网卡列表时,用此函数free释放空间。p(3)pcap_t *pcap_open_live(const char*device,int snaplen,int promisc,int to_ms,char

40、 ebuf*)p功能:被用来得到一个包抓取得描述符。p(4)int pcap_loop(pcap_t*p,int cnt,pcap_handler callback,u_char*user)p功能:捕获数据包,而不会响应pcap_open_live()中设置的超时时间。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p(5)int pcap_dispatch(pcap_t*p,int cnt,pcap_handler,u_char*user)p功能:捕获数据包,但可以不被阻塞。p(6)int pcap_next_ex(pcap_t*p,struct

41、pcap_pkthdr*pkt_header,u_char*pkt_data)p功能:捕获数据包,与pcap_ dispatch()和pcap_loop()很相似。pcap_next_ex()允许直接调用来接收包,它的参数和pcap_loop()相同:有一个网卡描述符和两个指针,这两个指针会被初始化并返回给用户,一个是pcap_pkthdr结构,另一个是接收数据的缓冲区。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p(7)int pcap_setfilter(pcap_t*p,struct bpf_program*fp)p 功能:pcap_set

42、filter()用来联系一个在内核驱动上过滤的过滤器,这时所有网络数据包都将流经过滤器,并拷贝到应用程序中.p(8)int pcap_sendpacket(pcap_t*p,u_char*buf,int size)p功能:人为主动发送一个数据包。这个函数需要的参数:一个装有要发送数据的缓冲区,要发送的长度,一个适配器。注意缓冲区中的数据将不被内核协议处理,只是作为最原始的数据流被发送,所以我门必须填充好正确的协议头以便正确的将数据发送。p(9)pcap_send_queue*pcap_sendqueue_alloc(u_int memsize);p功能:给数据包队列分配空间。计算机网络安全技术

43、教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p(10)int pcap_sendqueue_queue(pcap_send_queue*queue,const struct pcap_pkthdr*pkt_header,const u_char*pkt_data)p功能:填充准备发送的数据队列。p(11)u_int pcap_sendqueue_transmit(pcap_t*p,pcap_send_queue*queue,int sync)p功能:发送队列中的数据。p(12)void pcap_sendqueue_destroy(pcap_send_queue*

44、queue);p说明:释放队列。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院Winpcap应用举例p基于基于Winpcap库的基本使用流程比较规范,一般库的基本使用流程比较规范,一般为为:p第一步:使用第一步:使用pcap_lookupdev获取设备。获取设备。p第二步:使用第二步:使用pcap_lookupnet获取网络地址和子获取网络地址和子网掩码。网掩码。p第三步:使用第三步:使用pcap_open_live打开设备。打开设备。p第四步:使用第四步:使用pcap_complile编译过滤规则。编译过滤规则。p第五步:使用第五步:使用pcap

45、_setfilter设置过滤规则。设置过滤规则。计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p第六步:使用第六步:使用pcap_loop循环捕获数据包循环捕获数据包,在其在其中调用相应处理函数。中调用相应处理函数。p第七步:使用第七步:使用pcap_close关闭设备句柄。关闭设备句柄。p程序范例程序范例2-11:数据包捕获数据包捕获p程序范例程序范例2-12:发送数据包发送数据包计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院p本章结束本章结束计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院计算机网络安全技术教程计算机网络安全技术教程成都理工大学工程技术学院成都理工大学工程技术学院

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 其他杂项

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁