计算机sniffer.docx
- 文档编号:12802607
- 上传时间:2023-06-08
- 格式:DOCX
- 页数:10
- 大小:341.36KB
计算机sniffer.docx
《计算机sniffer.docx》由会员分享,可在线阅读,更多相关《计算机sniffer.docx(10页珍藏版)》请在冰点文库上搜索。
计算机sniffer
第一部分先编写一个简单的UDP数据包发送程序,并用SnifferPro捕获数据包。
1、新建一个C++工程,选择Project的MFCAppWizard(exe),Location选择一个新建文件夹(到我的电脑里面新建,可以在自己的U盘上面),Projectname自己输入(必须为英文)。
2、选择“Dialogbased”,点击Next
3、一定要勾选“WindowsSockets”,点击Next
4、点击Next
5、点击Finish
6、
在对话框编辑面板增加一个按钮Button,并点击右键,选择属性(Properties),更改ID为:
IDC_BUTTON_SEND,更改名称Caption为:
发送。
关闭窗口。
7、
在按钮“发送”点击右键,选择ClassWizard。
8、
在Messages里面选择“BN_CLICKED”,然后点击“AddFunction”。
9、
接受默认的functionname。
点击OK。
10、
点击“EditCode”。
11、
在函数OnButtonSend()里面添加以上代码。
其中本机IP地址和远程主机IP地址根据实际填写。
12、
点击工具条的Build。
再点击ExcuteProgram。
13、打开SnifferPro,开始进行数据包捕获。
14、
返回到刚才运行的Test程序,点击“发送”。
如果出现“发送成功!
”,则表示已经成功发送数据包。
15、返回SnifferPro,停止并显示捕获的数据包。
16、找出刚才捕获的UDP数据包。
思考题:
1、本机IP地址和远程IP地址应该填什么?
本机IP地址从ipconfig/all指令中获得,远程IP地址设为同一局域网网段内的其他有效主机。
2、本机和远程主机的端口号应该填什么?
是否可以随便设置?
3、如果捕获的数据包很多,如何设置过滤器,使得捕获的数据包数量减少?
4、将目的IP地址更换为外网的IP地址,是否能捕获UDP数据包?
再将目的IP地址更换为同一局域网网段内的其他无效主机,是否能捕获UDP数据包?
如果不能捕获UDP包,请观察是否有ARP包,并解读该ARP包,从ARP协议的原理解释为何没有UDP包。
第二部分,刚才的发送socket是放置在按钮事件处理函数OnButtonSend()里面的。
这样的话,离开按钮处理函数之后,socket就被关闭了。
如何使得socket全局有效呢?
同时,现在考虑接收数据的问题。
1、打开TestDlg.h文件,在类CTestDlg声明里面添加4个成员变量。
2、打开TestDlg.cpp文件,在OnInitDialog()函数里面添加以下代码。
注意,代码应添加在“//TODO:
Addextrainitializationhere”的下面。
如果绑定失败,则关闭socket。
3、更改OnButtonSend()函数的代码。
4、在打开文件TestDlg.cpp的编辑窗口右键,选择“ClassWizard”。
5、在Messages里面选择“WM_DESTROY”,然后点击“AddFunction”
6、再点击“EditCode”,添加如下代码。
使得程序退出的时候关闭socket,释放资源。
7、编译和执行程序,再次点击“发送”按钮,观察是否正常运行,是否能够与第一部分一样用SnifferPro捕获到发送的数据包。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 sniffer