VB 如何Windows7qt工具栏按钮添加客制化按钮

用户最多可以定义45个form-level的trigger,名称必须为SPECIALn,
其中SPECIAL1 to SPECIAL15属于Tools菜单项,放在&工具&主菜单下。
SPECIAL16 to SPECIAL30属于Reports菜单项, 放在在&报表&主菜单下
SPECIAL31 to SPECIAL45属于Actions菜单项,放在在&活动&主菜单下,
其中Reports、Actions的名称可以被修改。
修改代码为:
APP_SPECIAL.INSTANTIATE('SPECIAL_B','库存');
APP_SPECIAL.ENABLE('SPECIAL_B',PROPERTY_On);
其中SPECIAL,SPECIAL_B,SPECIAL_C分别代表的是Tools,Reports,Actions.
SPECIAL菜单项选中后的处理代码在SPECIALn 触发器中定义
右击快捷菜单选中后的处理代码在PRE-POPUP-MENU触发器中定义,用于对文本项目的右击快捷菜单最多可增加10个菜单项。在项目级别或者数据块级别的PRE-POPUP-MENU触发器中调用,设置该触发器的Execution Hierarchy 属性为After。
Procedure APP_SPECIAL.INSTANTIATE(
option_name varchar2,& -----传入SPECIAL1到SPECIAL45之间的值,代表的是菜单项的位置
hint varchar2 default null,-------- 菜单项显示文本
icon varchar2 default null,-------- 工具栏要显示的小图标的名字,如果不需要在工具栏上显示小图标,传入NULL即可
initially_enabled boolean default true,--------- 表示菜单项初始化时是否可用,传入TRUE或者FALSE
separator varchar2 default null -----如果想在新增菜单项的上面显示分割线,请传入&LINE&,给SPECIAL1(_CHECKBOX), SPECIAL16, 或者SPECI&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ---AL31传入&LINE&将会被忽略
说明:用于创建程序特定的菜单。在表达级别的PRE-FORM触发器的APP_STANDARD.EVENT(&PRE&FORM&) 改行代码后调用。当用户点击创建的菜单项或者其对应的工具栏按钮时,一个与参数option_name 相同的自定义触发器将被触发执行。
option_name 请传入SPECIAL1到SPECIAL45之间的值,代表的是菜单项的位置,SPECIAL1代表的是第一个特殊菜单(EBS中目前是工具菜单)最上面的菜单项,SPECIAL15代表的是第一个特殊菜单(EBS中目前是工具菜单)最下面的菜单项,SPECIAL16代表的是第二个特殊菜单(EBS中目前是报表菜单)最上面的菜单项,SPECIAL30代表的是第二个特殊菜单(EBS中目前是报表菜单)最下面的菜单项,SPECIAL31代表的是第三个特殊菜单(EBS中目前是活动菜单)最上面的菜单项,SPECIAL45代表的是第三个特殊菜单(EBS中目前是活动菜单)最下面的菜单项。当你调用该过程后,新增菜单项对应的特殊菜单项自动可用了。
菜单项边上显示复选框只对第一个特殊菜单可用,请传入SPECIAL1_CHECKBOX到SPECIAL15_CHECKBOX来显示复选框。如果你使用了复选框,你还应该使用APP_SPECIAL.SET_CHECKBOX来设置复选框的初始值。
传入SPECIAL, SPECIAL_B, 或者SPECIAL_C来控制这个特殊菜单是否可用,按顺序分别控制第一、第二和第三个特殊菜单的是否可用。
hint 菜单项显示文本。
icon 工具栏要显示的小图标的名字,如果不需要在工具栏上显示小图标,传入NULL即可,对于菜单栏项目旁边显示复选框的菜单项不可以同时拥有工具栏图标。
initially_enabled 逻辑值,表示菜单项初始化时是否可用,传入TRUE或者FALSE。
Separator 如果想在新增菜单项的上面显示分割线,请传入&LINE&。给SPECIAL1(_CHECKBOX), SPECIAL16, 或者SPECIAL31传入&LINE&将会被忽略。
APP_SPECIAL.INSTANTIATE(&SPECIAL3&,&&Book Order&, &POBKORD&,TRUE, &LINE&);
app_special.instantiate(&SPECIAL12_CHECKBOX&,&Specia&l 12 Check Box with Line&,separator=&&LINE&);
app_special.set_checkbox(&SPECIAL12_CHECKBOX&,&TRUE&);
Procedure APP_SPECIAL.ENABLE(
option_name varchar2,-------- 菜单项的名称。可能的值包括ABOUT, ATTACHMENTS,MODAL, SAVE, SELECT_ALL, SINGLE,SPECIAL1, ...到 SPECIAL45 &&&&&&&&&&&&&&&&&&&&&--------(或者SPECIALn_CHECKBOX 菜单项), SPECIAL,SPECIAL_B, SPECIAL_C, SUMMARY/DETAIL,TRANSLATION,或者是菜单项的&&&&&&&&&&&&&&&&&&&& --------全名。如果要禁用所有的特殊菜单则传入SPECIAL。
state number&&&&&&&& --------传入PROPERTY_ON代表可用,PROPERTY_OFF代表禁用。
启用或者禁用某些菜单项(包括该菜单项对应的工具栏图标),也可以用于启用禁用特殊菜单项,也就是你新增的菜单项。
如果某个菜单项对于表单中的大部分数据块是可用的,那么在表单的PRE-FORM触发器中启用这个菜单项,对于不能使用这个菜单项的数据块,在它的PRE-FORM触发器中禁用这个菜单项,并将这个触发器的Execution Hierarchy 属性为Override。
启用或者禁用菜单项保存来控制File&保存和文件&保存并继续这两个菜单项。当你调用APP_FORM.QUERY_ONLY MODE,保存会自动被禁用。
进入拥有菜单栏的模块窗口前调用APP_SPECIAL.ENABLE(&MODAL&, PROPERTY_OFF),当你离开这个模块窗口时将其属性设置为PROPERTY_ON。设置为PROPERTY_OFF时将会禁用那些不能在模块窗口中使用的菜单。
你可以控制ATTACHMENTS,TRANSLATION, SUMMARY/DETAIL, and SELECT_ALL等菜单项的是否可用。
如果是一次只能显示一条记录的数据块,则传入SINGLE,将会禁用查看&记录&第一个,查看&记录&最后一条菜单项。原文中还提到了会禁用查看&记录&上一条记录和查看&记录&下一条记录,但是ebs中并没有。
传入ABOUT来禁用帮助&历史记录菜单项。
APP_SPECIAL.ENABLE(&SPECIAL3&,PROPERTY_ON);
APP_SPECIAL.ENABLE(&SPECIAL&,PROPERTY_OFF); ---禁用所有的特殊菜单(比如当数据块进入查询模式时)
Function APP_SPECIAL.GET_CHECKBOX(
option_name varchar2 ------请传入SPECIAL1_CHECKBOX到SPECIAL15_CHECKBOX中的一个值
RETURN varchar2;
描述:用来获取菜单项旁边有复选框的新增特殊菜单项的复选框的值,如果选中状态,则返回TRUE这个字符串,否则返回FALSE这个字符串,如果菜单项不存在则会引发错误。
if (app_special.get_checkbox(&SPECIAL3_CHECKBOX&)=&TRUE&) then
fnd_message.debug(&Special 3 is True!&);
fnd_message.debug(&Special 3 is False!&);
Procedure APP_SPECIAL.SET_CHECKBOX(
option_name varchar2, ------传入SPECIAL1_CHECKBOX到SPECIAL15_CHECKBOX中的一个值
new_value varchar2&&& ------传入字符串TRUE或者FALSE
描述:用于设置新增的带有复选框的特殊菜单项旁边的复选框的初始值,通常在初始化SPECIAL菜单项后调用。
app_special.instantiate(&SPECIAL3_CHECKBOX&,&Spe&cial 3 Box with Line&,&&,TRUE,&LINE&);
app_special.set_checkbox(&SPECIAL3_CHECKBOX&,&TRUE&);
app_special.instantiate(&SPECIAL4_CHECKBOX&,&Special &4 Box&);
app_special.set_checkbox(&SPECIAL4_CHECKBOX&,&TRUE&);
菜单栏项和工具栏项是否可用是由标准的表单级别的WHEN-NEW-RECORD-INSTANCE、WHEN-NEW-BLOCK-INSTANCE、WHEN-NEW-ITEM-INSTANCE等触发器控制的。如果你更改了数据块或者项目的属性,菜单项和工具栏项不会立即更着更新除非其相应的触发器触发了。
比如将鼠标放在某个数据块上,然后将数据块的INSERT ALLOWED属性设置为关闭状态,此时需要调用如下代码来同步更新菜单项和工具栏项:
APP_STANDARD.SYNCHRONIZE;
Procedure APP_POPUP.INSTANTIATE(
option_name varchar2,------ 到POPUP10,最后数字越大代表该新增菜单项越靠底部
txt varchar2,&&&&&&& ------菜单项显示的文本
initially_enabled boolean default true, ----逻辑值,表示菜单项初始化时是否可用,传入TRUE或者FALSE
separator varchar2 default null& ----如果希望在增加的菜单项的上面显示一个分割线则传入&LINE&。注意,右击弹出菜单的新增的文件夹菜单项&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& ---下面的那个菜单项上面会自动加上分隔线。
描述:用于对文本项目的右击快捷菜单增加最多10个菜单项。在项目级别或者数据块级别的PRE-POPUP-MENU触发器中调用,设置该触发器的Execution Hierarchy 属性为After。
APP_POPUP.INSTANTIATE(&POPUP1&,&First Entry&);
APP_POPUP.INSTANTIATE(&POPUP2&,&Second Entry&, TRUE,&LINE&);
APP_POPUP.INSTANTIATE(&POPUP3&,&Third Entry&, FALSE);
SPECIAL菜单举例
&&& 如果你想要的行为没有自动提供,你可以使用APP_SPECIAL.ENABLE这个过程来动态控制菜单项。这么做首先要确定默认菜单控制器控制菜单项是否有问题,而且确实有必要覆盖这个默认行为。
&&& 如果菜单项不是由默认菜单控制器控制的,请使用合适的触发器(一般是PRE-BLOCK或者WHEN-NEW-BLOCK-INSTANCE触发器)增加如下的代码:
app_special.enable(&the menu item&, PROPERTY_OFF|ON);
当你离开时使用合适的触发器(一般都是POST-BLOCK触发器)来使菜单项恢复原状,代码方法同上。
代码中的then menu item参数应该使用菜单项的全称,比如
app_special.enable(&CLEAR.FIELD&, PROPERTY_OFF);
如果菜单项是由默认菜单控制器控制的,你也想修改它是否可用,可以通过在项目级别或者数据块级别的触发器(主要指WHEN-NEW-BLOCK-INSTANCE、WHEN-NER-RECORD-INSTANCE、WHEN-NEW-ITEM-INSTANCE)中编写代码来解决,将该触发器的Execution Hierarchy 属性设置为Override,示例代码如下:
app_standard.event(&TRIGGER_NAME&);
app_special.enable(&Menu_item&, PROPERTY_OFF|ON);
因为菜单项会在转到其他数据块时由默认菜单控制器自动设置,所以在离开数据块或者记录或者项目时不需要特意编写代码来恢复设置。
&&& 影响菜单的常见错误编码方法
v& 一个项目或者数据块的触发器的Execution Hierarchy被设置为Before,但是它的逻辑在调用APP_STANDARD.EVENT( ) 时被重置了。
v& 一个项目或者数据块的触发器的Execution Hierarchy被设置为Override,但是在撰写逻辑类代码前没有调用APP_STANDARD.EVENT( )。
v& 数据块级别的QUERY ALLOWED, DELETE ALLOWED, INSERT ALLOWED设置错误。在任何时候,你更改了数据块的属性,要强迫刷新菜单栏((因为控制菜单栏的WHEN类触发器,只有你的更改确实生效了才会触发),请调用APP_STANDARD.SYNCHRONIZE。
v& 控制块使用了基表
假设你想在菜单栏和工具栏同时增加一个Book Order的项目,这个项目是第一个最顶层的菜单(一般是工具菜单)的第一个菜单项,同时还想在工具栏显示个小图标。还有就是它只是在数据块Header 上可用,其余地方不可用。
解决方案:
l 步骤1:修改表单级别的PRE-FORM触发器增加代码
app_special.instantiate(&SPECIAL1&, &&Book Order&, &bkord&);
如果菜单项将来可能涉及到不同语言之间的转换,请使用消息字典(Message Dictionary)或者参数或者静态记录组来存储菜单的显示文本。然后提取转换后的值给一个变量,并将这个变量提供给这个过程,比如
app_special.instantiate(&SPECIAL1&, my_menu_entry, &bkord&);
l 步骤2:修改表单级别的PRE-BLOCK触发器增加代码:
app_special.enable(&SPECIAL1&,PROPERTY_OFF);
l 对你想使用该菜单项的数据块(本例中是Header数据块)的PRE-BLOCK增加如下代码来激活该菜单项和工具栏项:
app_special.enable(&SPECIAL1&,PROPERTY_ON);
l 对你想使用该菜单项的数据块(本例中是Header数据块)增加一个名称为SPECIAL1的触发器,撰写你想在点击该菜单项或者工具栏项时执行的功能。每次点击都会执行这个触发器。
在你的表单中增加工具栏项目小图标
这个图标应该放在虚拟目录OA_MEDIA里面(请咨询web 服务器管理员获取该目录信息),必须是标准gif格式图片。请注意获取这个图片需要到服务器上下载到客户机上,如果性能为关注的焦点的话,请尽量控制工具栏图片的数量。
保存并继续(Save and Process)菜单项
默认情况下,该菜单项执行保存后,将光标移至表单的第一个导航数据块上的下一条记录,你可以更改这种默认行为。
对表单级别的ACCEPT触发器,没有创建它并将其Execution Hierarchy 属性设置为Override,并调用如下的代码:
l APP_STANDARD.EVENT(&ACCEPT&) 调用它则使用的是默认行为。
l APP_STANDARD.EVENT(&ACCEPT:0&) 调用它与默认行为基本相同,只是焦点依然停留在当前数据块。
l APP_STANDARD.EVENT(&ACCEPT:&) 调用它与默认行为基本相同,只是光标移到参数指定的数据块。
l 其他合适的代码。
右键菜单自定义
&&&& Oracle应用程序为所有文本项目提供了默认的右键快捷菜单,当在文本项目上右击时会弹出自适应的快捷菜单,你可以定制这个菜单,增加与应用程序特定相关的最多10个菜单项,这些新增的菜单项会放在文件夹和帮助这两个菜单项之间,当然你还可以为你的新增菜单项增加分隔线
&&&& 为右击快捷菜单每新增一个菜单项最少需要使用两个触发器。第一个触发器是PRE-POPUP-MENU触发器,可以根据需要放在数据块级或者项目级。这个触发器调用APP_POPUP.INSTANTIATE 来增加菜单项,这个过程可以传入两个参数,第一个是POPUPn(n为1到10的数字,是新增菜单项从上倒下排列的顺序),第二个参数是要显示的菜单项文本。请将触发器PRE-POPUP-MENU的Execution Hierarchy 属性设置为After,这样你的这个触发器就会在表单级别的PRE-POPUP-MENU触发后触发。(表达级别的PRE-POPUP-MENU触发器先触发确定用户当前光标所在项目,然后设置为默认的右击快捷菜单)。
第二个触发器就是自定义的POPUPn(n为1到10的数字,是新增菜单项从上倒下排列的顺序)触发器,也就是选择菜单项时执行的代码,一般是项目级或者数据块级的触发器。请注意,即使光标所在项目是禁用的项目,选择了右击快捷菜单项也会执行其对应的功能,所以你在撰写代码时应该考虑到这种情况。
假设你想在右击快捷菜单中增加一个Approve的菜单项(中文意思是审批通过),是新增的第一个特殊菜单项,只有在项目Requisition Number上可用,解决方案如下:
l 步骤1:项目Requisition Number的PRE-POPUP-MENU触发器增加如下代码,确保设置该触发器的Execution Hierarchy 属性为After。
app_popup.instantiate(&POPUP1&, &Approve&);
l 步骤2:对项目Requisition Number增加一个名称为POPUP1的触发器,撰写合适的代码来执行用户选择该菜单项时执行的功能。
form-level PRE-POPUP-MENU trigger引用APPSTAND.EVENT('PRE-POPUP-MENU')建立default menu;建立block /item level pre-pop-menu trigger须(Execution Hierarchy After)。
从block /item level pre-pop-menu trigger(Execution Hierarchy After)中调用app_popup.instantate函数初始化右键菜单项:
procedure APP_POPUP.INSTANTIATE(
option_name varchar2,
txt varchar2,
initially_enabled boolean default true,
separator varchar2 default null);
& This example results in a menu that has a line above the second custom entry and has the third custom entry grayed out (disabled)
APP_POPUP.INSTANTIATE(&POPUP1&,&First Entry&);
APP_POPUP.INSTANTIATE(&POPUP2&,&Second Entry&, TRUE, &LINE&);
APP_POPUP.INSTANTIATE(&POPUP3&,&Third Entry&, FALSE);
右键菜单的处理函数写在名为POPUP1 ~ &POPUP10的trigger中,应该在正确的level上建立这些trigger (通常是block/item level)。
阅读(...) 评论()求助:vb6的菜单怎么可以让它与form同一平面?
[问题点数:50分,结帖人kkabc97]
本版专家分:0
结帖率 23.08%
CSDN今日推荐
本版专家分:6349
本版专家分:0
结帖率 23.08%
本版专家分:6349
本版专家分:0
结帖率 23.08%
本版专家分:1197
本版专家分:1197
本版专家分:1197
匿名用户不能发表回复!|
CSDN今日推荐EBS Form菜单栏增加选项
EBS Form菜单栏增加选项
现象一:在菜单栏的【工具】下增加选项
1.在Form级触发器When-New-Form-Instance添加选项初始化
Form级app_special.instantiate(‘SPECIAL1′,’&Prompt&’);
2.在Block级触发器Pre_Block中添加启用选项
app_special.enable(‘SPECIAL1′,property_on);
3.在Forms级上添加选项对应触发器SPECIAL1
在Form级上写选项的实际操作代码。
现象二:在菜单栏增加【活动】菜单并在其下增加选项
方法:(以RCVRCVRC.fmb为例)
1.在CUSTOM.pll中添加如下处理,当form为RCVRCVRC.fmb时,则同时加载CRCVRCVRC.pll,且监听各触发器事件
2.添加CRCVRCVRC.pll
3.在package body中首先监听RCVRCVRC.fmb的WHEN-NEW-ITEM-INSTANCE触发器
if (event_name = ‘WHEN-NEW-ITEM-INSTANCE’) then
–添加菜单
app_special2.instantiate(option_name =& ‘SPECIAL44′, –添加自定义触发器事件
hint =& ‘按类型数量汇总’, –新增选项名称
icon =& null,
initially_enabled =& false,
separator =& null);
4.在package body增加监听自定义触发器事件SPECIAL44,并书写该事件所做的处理
if event_name = ‘SPECIAL44′ then
–书写该触发器所做的处理操作
–调用FORM
app_navigate.execute(function_name =& ‘RCVTXNSUM’,
open_flag =& ‘C’,
session_flag =& ‘Y’,
other_params =& ‘RECEIPT_NUM = “‘ || v_receipt_num || ‘”‘ ||
‘shipment_header_id = “‘ ||
v_shipment_header_id || ‘”‘ ||
‘user_id = “‘ || v_user_id || ‘”‘ ||
‘org_id = “‘ || v_org_id || ‘”‘);
5.上传编译pll,将上述pll文件上传至$AU_TOP/resource下,然后使用f60gen进行编译
f60gen userid=apps/apps module=$AU_TOP/resource/xxx.pll output_file=$AU_TOP/resource/xxx.plx module_type=library
没有更多推荐了,CKEditor 自定义 ToolBar 按钮
CKEditor是个强大的编辑器,在很多项目中都是用这个编辑器让user编辑页面。因为接口十分类似Word,所以一般人都能轻易上手。只是最好还是要有Html的底子,不然有时候要排版也是会有困难。
网络上已经有不少人实做出来,只是我这人很爱自己做轮子,想说趁这个机会学起来,以后如果真的要客制化功能,也许用的到!基本的CKeditor的安装跟使用还有跟CKFinder整合我就不多说啦。直接进入正题,自定义一个ToolBar按钮。将CKEditor下载回来解压缩丢到网站目录中,在ckeditor文件夹下可以看到一个"config.js"档,这档案是拿来做一些设定用的先贴上我的:
CKEDITOR.editorConfig =
function (config) {
config.uiColor =
'#AADC6E';
config.contentsCss = ['/Content/layout.css',
'/Content/html.css'];
config.toolbar_Full =
['Source','-','Save','NewPage','Preview','-','Templates'],
'Redo', '-',
'SelectAll',
'RemoveFormat'],
['Styles','Format','Font','FontSize'],
['TextColor','BGColor'],
['Maximize',
'ShowBlocks','-','About'],
['Bold','Italic','Underline','Strike','-','Subscript','Superscript'],
['NumberedList','BulletedList','-','Outdent','Indent','Blockquote','CreateDiv'],
['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'],
['Link','Unlink','Anchor'],
'Flash', 'Table',
'HorizontalRule',
'Smiley', 'SpecialChar',
'PageBreak'],
config.extraPlugins =
'CodePlugin';
前几行的设定都是一般的设定,uiColor是ckeditor的框框颜色,contentsCss是可以将css档加载,在编辑时就可以看到套用css后的效果。toolbar_Full是设定所要的功能,因为有很多我都用不到,所以就剩下上面所列的这些,注意最后一个['Code'],这不是内建的功能,这是我待会要扩充的功能,因此先放到toolbar中。最后一行也是比较重要的就是 config.extraPlugins = 'CodePlugin';
CodePlugin就是等等我们扩充的功能名称(可自定义)。
接着在ckeditor/plugins底下新增一个同上面那个名称的文件夹,并在里面加入一个plugin.js档,如下图所示:
接着就在plugin.js档内加入下面的code:
CKEDITOR.plugins.add('CodePlugin',
function (editor) {
editor.addCommand('CodePlugin',
new CKEDITOR.dialogCommand('CodePlugin'));
editor.ui.addButton('Code',
'插入高亮程式碼',
'/images/icon/codeicon.png',
'CodePlugin'
CKEDITOR.dialog.add('CodePlugin',
function (editor) {
'插入程式碼',
minWidth: 500,
minHeight: 400,
contents: [
'Language',
'language',
'default':
items: [['C#',
'csharp'], ['CSS',
'css'], ['Html',
'xhtml'], ['JavaScript',
'js'], ['SQL',
'sql'], ['XML',
'codecontent',
'textarea',
'請輸入程式碼',
'width:700height:500px',
'default':
function () {
this.getValueOf('code',
'codecontent');
this.getValueOf('code',
'language');
editor.insertHtml("&pre class=\"brush:"
+ lang + ";\"&"
+ code + "&/pre&");
基本上这样就好了。其实不难,只是有点繁琐而已。先来看看结果:
按下之后跳出的dialog
按下确定之后,就会生出我们设定的Tag来,其余的东西,就是要记得加载高亮语法的套件啰。
没有更多推荐了,wireshark使用教程中文完整页_西西软件资讯
西西软件园多重安全检测下载网站、值得信赖的软件下载站!
→ wireshark使用教程中文
类型:Mac网络工具大小:25.1M语言:中文 评分:10.0
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。
软件名称:
Wireshark(网络嗅探)
软件版本:
v1.4.9 中文版(包含中文手册+主界面的操作菜单)
软件大小:
软件语言:
适用平台:
WinAll, WinXP, Win7, win8
下载地址:
网络封包分析软件的功能可想像成 &电工技师使用电表来量测电流、电压、电阻& 的工作 - 只是将场景移植到网络上,并将电线替换成网络线。 在过去,网络封包分析软件是非常昂贵,或是专门属于营利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal是目前全世界最广泛的网络封包分析软件之一。&第1章&介绍目录1.1.什么是&Wireshark1.1.1.&主要应用1.1.2.&特性1.1.3.&捕捉多种网络接口1.1.4.&支持多种其它程序捕捉的文件1.1.5.&支持多格式输出1.1.6.&对多种协议解码提供支持1.1.7.&开源软件1.1.8.&Wireshark&不能做的事1.2.系通需求1.2.1.&一般说明1.2.2.&Microsoft&Windows1.2.3.&Unix/Linux1.3.从哪里可以得到&Wireshark1.4.&Wiresahrk&简史1.5.&Wireshark&开发维护1.6.汇报问题和获得帮助1.6.1.&网站1.6.2.&百科全书1.6.3.&FAQ1.6.4.&邮件列表1.6.5.&报告问题1.6.6.&在&UNIX/Linux&平台追踪软件错误1.6.7.&在&Windows&平台追踪软件错误Wireshark是网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包,&并尝试显示包的尽可能详细的情况。你可以把网络包分析工具当成是一种用来测量有什么东西从网线上进出的测量工具,就好像使电工用来测量进入电信的电量的电度表一样。(当然比那个更高级)过去的此类工具要么是过于昂贵,要么是属于某人私有,或者是二者兼顾。Wireshark&出现以后,这种现状得以改变。Wireshark&可能算得上是今天能使用的最好的开元网络分析软件。1.1.1.主要应用下面是&一些应用的举例:网络管理员用来解决网络问题网络安全工程师用来检测安全隐患开发人员用来测试协议执行情况用来学习网络协议除了上面提到的,还可以用在其它许多场合。1.1.2.特性支持&和&平台在接口实时捕捉包能详细显示包的详细协议信息可以打开保存捕捉的包可以导入导出其他捕捉程序支持的包数据格式可以通过多种方式过滤包多种方式查找包通过过滤以多种色彩显示包创建多种统计分析…还有许多不管怎么说,要想真正了解它的强大,您还得使用它才行图1.1.&Wireshark&捕捉包并允许您检视其内容1.1.3.捕捉多种网络接口Wireshark可以捕捉多种网络接口类型的包,哪怕是无线局域网接口。想了解支持的所有网络接口类型,&可以在我们的网站上找到&http://wiki.wireshark.org/CaptureSetup/NetworkMedia.1.1.4.支持多种其它程序捕捉的文件Wireshark&可以打开多种网络分析软件捕捉的包,详见1.1.5.支持多格式输出Wieshark&可以将捕捉文件输出为多种其他捕捉软件支持的格式,详见1.1.6.对多种协议解码提供支持可以支持许多协议的解码在&中可能被称为解剖1.1.7.开源软件Wireshark&是开源软件项目,用&协议发行。您可以免费在&任意数量的机器上使用它,不用担心授权和付费问题,所有的源代码在&框架下都可以免费使用。因为以上原因,人们可以很容易在&上添加新的协议,或者将其作为插件整合到您的程序里,这种应用十分广泛。1.1.8.&Wireshark不能做的事Wireshark&不能提供如下功能Wireshark&不是入侵检测系统。如果他她在您的网络做了一些他她们不被允许的奇怪的事情,不会警告您。但是如果发生了奇怪的事情,可能对察看发生了什么会有所帮助。[3]Wireshark&不会处理网络事务,它仅仅是测量监视网络。不会发送网络包或做其它交互性的事情(名称解析除外,但您也可以禁止解析)。[3]&译者注:因为不是入侵检测之用,所以不会将入侵检测和普通通信区别对待,但是都会体现在网络包里面,如果您有足够的经验,或许能通过监视网络包发现入侵检测1.2.系通需求想要安装运行&需要具备的软硬件条件1.2.1.一般说明给出的值只是最小需求,在大多数网络中可以正常使用,但不排除某些情况下不能使用。[4]在繁忙的网络中捕捉包将很容塞满您的硬盘!举个简单的例子:在100MBIT/s&全双工以太网中捕捉数据将会产生750MByties/min&的数据!在此类网络中拥有高速的&,大量的内存和足够的磁盘空间是十分有必要的。如果&运行时内存不足将会导致异常终止。可以在http://wiki.wireshark.org/KnownB&ugs/OutOfMemory&察看详细介绍以及解决办法。Wireshark&作为对处理器时间敏感任务,在多处理器&多线程系统环境工作不会比单独处理器有更快的速度,例如过滤包就是在一个处理器下线程运行,除了以下情况例外:在捕捉包时实时更新包列表,此时捕捉包将会运行在一个处理下,显示包将会运行在另一个处理器下。此时多处理或许会有所帮助。[5]1.2.2.&Microsoft&WindowsWindows&2000,XP&Home&版版,推荐在&下使用32-bit&奔腾处理器或同等规格的处理器(建议频率:或更高)处理器在&仿真环境下见一般说明128MB&系统内存(建议或更高)75MB&可用磁盘空间(如果想保存捕捉文件,需要更多空间)800*600(建议或更高)分辨率最少&色,色旧设备安装时需要选择网卡需求:以太网:支持的任何以太网卡都可以无线局域网卡:见&MicroLogix&support&list,不捕捉包头和无数据桢。其它接口见:http://wiki.wireshark.org/CaptureSetup/NetworkMedia说明基于以下三点原因,将不会对旧版&提供支持:没有任何开发人员正在使用那些操作系统,&这将使支持变得更加困难,运行所依赖的库文件(如&,等)也放弃对它们的支持。&同样,微软也放弃了对它们的技术支持。Windows&95,98&和&不能运行Wireshark。已知的最后一个可以运行在以上平台的版本是Ethereal0.99.0(&需要安&装WinPCap3.1),你依然可以使用从&http://ethereal.com/download.html&获得。顺便提一下:微软于&年月日停止对支持。Windows&NT&4.0今后将无法运行&最有一个已知版本是&需安装自带的&你依然可以从:http://prdownloads.sourceforge.net/wireshark/wireshark-setup-0.99.4.exe&得到它。顺便提一下:微软于2005&年月日停止&对NT&4.0的支持。Windows&CE&及嵌入版&()不被支持。64-bit&处理器运行&需要在仿真环境下称作&最低需要安装&。支持多显示不知道是显示其还是监视器安装,但会遇到一些不可预料的问题。1.2.3.&Unix/LinuxWireshark&目前可以运行在许多&平台,系统可以对照上面&下的指标。&二进制包最少在以下平台可用:APPle&Mac&OSXDebian&GNU/LinuxFreeBSDNetBSDOpenPKGRed&Hat&Fedora/Enterprise&LinuxrPath&LinuxSun&Solaris/i386Sun&Solaris/Sparc如果二进制包在您的平台无法使用,你可以下载源文件并尝试编译它。wireshark-dev[AT]wireshark.org.分享您的经验。希望您能发送邮件到[4]译者注:原文“The&values&below&are&the&minimum&requirements&and&only&&rules&of&thumb&&for&use&on&a&moderately&usednetwork”,其中中译名应该是拇指规则,但网上关于拇指规则解释莫衷一是,大致意思是说:大多数情况下适用,但并非所有情况。这里翻译的有点别扭[5]&译者注:我对这句话的理解是,正如播放电影一样,高性能的处理器只会增强显示效果,您并不需要将原来分钟的影片分钟之内看完。当然,对减少延时还是有作用的。但是感觉这句有点阅读困难,可能翻译的有点问题1.3.从哪里可以得到&Wireshark你可以从我们的网站下载最新版本的Wireshark&http://www.wireshark.org/download.html.网站上您可以选择适合您的镜像站点。Wireshark&通常在周内发布一次新版本如果您想获得&发布的消息通知,你可以订阅&邮件列表。详见第1.6.4节“邮件列表1.4.&Wiresahrk简史[6]1997年以后,需要一个工具追踪网络问题并想学习网络知识。所以他开始开发Ethereal&(Wireshark&项目以前的名称以解决以上的两个需要。Ethereal&是第一版,经过数次开发,停顿,年,经过这么长的时间,补丁,报告,以及许多的鼓励,版诞生了。Ethereal&就是以这种方式成功的。此后不久,发现它的潜力,并为其提供了底层分析1998年月,正寻找一种比&更好的工具,他开始为&进行改进,并提供分析。998年以后,正在进行&教学的&关注了它在这些课程中的作用。并开始研究该软件是否他所需要的协议。如果不行,新协议支持应该很方便被添加。所以他开始从事&的分析及改进。从那以后,帮助&的人越来越多,他们的开始几乎都是由于一些尚不被Ethereal&支持的协议。所以他们拷贝了已有的解析器,并为团队提供了改进回馈。2006年项目&(这句不知道怎么翻译)并重新命名为:[6]&本段因为有很多协议,程序开发方面的术语,翻译得比较糟糕1.5.&Wireshark开发维护Wireshark&最初由&开发。目前由&进行进一步开发和维护。是一个由修补&提高&功能的独立成员组成的松散组织。有大量的成员为&提供协议分析。同时我们也希望这些活动能持续机芯。通过查看&帮助菜单下的&你可以找到为&提供代码的人员名单,或者你也可以通过&网站的&authors&页面找到。Wireshark是开源软件项目,发布遵循&GNU&General&Public&Licence&(GPL&协议所有源代码可以在&框架下免费使用。欢迎您修改&以便适合您的需要,如果您可以提供您的改进给&,我们将不胜感激。为&提供您的改进建议,有以下益处:如果其他人发现您提供的改进十分有用会肯定它们的价值,您将会得知你曾像&一样帮助过他人The&developers&of&Wireshark&might&improve&your&changes&even&more,&as&there's&always&room&for&improvement.&Or&they&mayimplement&some&advanced&things&on&top&of&your&code,&which&can&be&useful&for&yourself&too.The&maintainers&and&developers&of&Wireshark&will&maintain&your&code&as&well,&fixing&it&when&API&changes&or&other&changes&aremade,&and&generally&keeping&it&in&tune&with&what&is&happening&with&Wireshark.&So&if&Wireshark&is&updated&(which&is&done&often),you&can&get&a&new&Wireshark&version&from&the&website&and&your&changes&will&already&be&included&without&any&effort&for&you.Wireshar源代码和二进制kits(二进制工具包?)可以根据自己的平台对应下载,网站是:http://www.wireshark.org/download.html.1.6.汇报问题和获得帮助如果您在使用中碰到了问题,或者您需要&的帮助,有以下几种可能让您有兴趣的方法(当然,还包括这本书)。1.6.1.网站通过访问&http://www.wireshark.org&你将会发现关于&许多有用的信息。1.6.2.百科全书Wireshark&Wiki&(http://wiki.wireshark.org)提供广泛的跟&以及捕捉包有关信息。你将会发现一些没有被包括在本书内信息,例如:上有解释如何在交换网络捕捉包,同时我们正努力建立协议参考,等等。最好的事情是,如果对某些知识有独到见解(比如您精通某种协议),您可以通过浏览器编辑它。1.6.3.&FAQ最经常被问到的问题提供一个经常被问到的问题以及答案的列表。Read&The&FA在您发送任何邮件到邮件列表之前,确信您已经阅读了&,因为这里面很可能已经提供了您想问的问题,答案。这将大大节约您的时间(记住,有很多人提交了大量的邮件)。1.6.4.邮件列表下面的几个几个邮件列表,分别属于不同的主题:Wireshark-users这是一个&用户的列表,大家提交关于安装和使用&的问题,其它人(非常有用)提供的答案。(译者注:其他人当然也是指用户?)wireshark-announce这是一个关于程序发布信息的列表,通常每周出现一次。wireshark-dev这是一个关于&开发的邮件列表,如果开始开发协议分析,可以从加入该列表你可以通过网站&http://www.wireshark.org&订阅每个邮件列表简单点击网站左手边的邮件列表链接就可以。邮件同样在网站上可以看到存档。提示你可以搜索存档看看有没有人问过跟你一样的问题,或许您的问题已经有了答案。这样您就不必提交邮件以等待别人答复您了。1.6.5.报告问题注意在您提交任何问题之前,请确定您安装的是最新版本的&。当您提交问题的时候,如果您提供如下信息将会对解决问题很有帮助。Wireshark&的版本,及其依赖的库的版本,如&,等等。你可以通过&Wireshark&Cv&命令获得版本号。(估计是&平台)。运行&的平台信息。关于问题的详细描述。如果您得到错误或者警告信息,拷贝错误信息的文本(以及在此之前或之后的文本,如果有的话),这样其他人可能会发现发生问题的地方。请不要发送诸如:[7],因为这样看起来不是个好主意。不要发送大文件不要发送过大的文件()到邮件列表,在邮件中附加一个能提供足够数据的记事本就可以。大文件会让很多邮件列表里的那些对您的问题不感兴趣的用户感到恼怒。如果需要,你可以单独发送那些数据给对您问题真正感兴趣,要求您发送数据的人。不要发送机密信息!如果您发送捕捉数据到邮件列表,请确定它们不包含敏感或者机密信息,比如密码或者诸如此类的。1.6.6.在&UNIX/Linux&平台追踪软件错误如果您发送捕捉数据到邮件列表,请确定它们不包含敏感或者机密信息,比如密码或者诸如此类的。你可以通过如下命令获得追踪信息:$&gdb&`whereis&wireshark&|&cut&-f2&-d:&|&cut&-d'&'&-f2`&core&&&bt.txtbacktrace^D$注意在逐字输入第一行的字符![8]注意追踪是一个&GDB&命令。你可以在输完第一上以后输入它,但是会没有相应,命令()将会退出&GDB&命令。以上命令让你在当前目录得到一个名为&的文本文件,它包含您的&报告。注意如果您缺少&GDB,您必须检查您的操作系统的调试器。你可以发送追踪邮件到&wireshark-dev[AT]wireshark.org邮件列表1.6.7.在&Windows&平台追踪软件错误Windows&下无法包含符号文件&它们非常大。因此不太可能创建十分有意义的追踪文件。你将汇报软件错误就像前面描述的其他问题一样。(这句不尽人意)[7]&译者注:那句话的意思是,我在&时碰到一个警告信息[8]&译者注:原文是:不知道是什么意思,后勤抽搐?熟悉&的或许知道第2章&编译/安装&Wireshark目录2.1.须知2.2.获得源2.3.在&UNIX&下安装之前2.4.在&UNIX&下编译&Wireshark2.5.在&UNIX&下安装二进制包2.5.1.&在&Linux&或类似环境下安装&RPM&包2.5.2.&在&Debian&环境下安装&Deb&包2.5.3.&在&Gentoo&Linux&环境下安装&Portage2.5.4.&在&FreeBSD&环境下安装包2.6.解决&UNIX&下安装过程中的问题2.7.在&Windows&下编译源2.8.在&Windows&下安装&Wireshark2.8.1.&安装&Wireshark2.8.2.&手动安装&WinPcap2.8.3.&更新&Wireshark2.8.4.&更新&WinPcap2.8.5.&卸载&Wireshark2.8.6.&卸载&WinPcap2.1.须知万事皆有开头,也同样如此。要想使用&,你必须:获得一个适合您操作系统的二进制包,或者获得源文件为您的操作系统编译。目前,只有两到三种&发行版可以传送&,而且通常传输的都是过时的版本。至今尚未有&版本可以传输Wireshark&.&Windows&的任何版本都不能传输&基于以上原因,你需要知道从哪能得到最新版本的&以及如何安装它。本章节向您展示如何获得源文件和二进制包,如何根据你的需要编译&源文件。以下是通常的步骤:下载需要的相关包,例如:源文件或者二进制发行版。将源文件编译成二进制包如果您下载的是源文件的话。这样做做可以整合编译和或安装其他需要的包。安装二进制包到最终目标位置。2.2.获得源你可以从&网站&http://www.wireshark.org.同时获取源文件和二进制发行版。选择您需要下载的链接,然后选择源文件或二进制发行包所在的镜像站点(尽可能离你近一点的站点)。下载所有需要的文件!一般来说,除非您已经下载&如果您想编译&源文件,您可能需要下载多个包。这些在后面章节会提到。注意当你发现在网站上有多个二进制发行版可用,您应该选择适合您平台的版本,他们同时通常会有多个版本紧跟在当前版本后面,那些通常时拥有那些平台的用户编译的。基于以上原因,您可能想自己下载源文件自己编译,因为这样相对方便一点。2.3.在&UNIX&下安装之前在编译或者安装二进制发行版之前,您必须确定已经安装如下包:GTK+,&The&GIMP&Tool&Kit.您将会同样需要&它们都可以从&www.gtk.org&获得。Libpcap&,&Wireshark&用来捕捉包的工具您可以从&www.tcpdump.org&获得。根据您操作系统的不同,您或许能够安装二进制包,如&或许您需要获得源文件并编译它。如果您已经下载了&源文件,例2.1&“从源文件编译&GTK+”提供的指令对您编译有所帮助。例2.1.从源文件编译&GTK+gzip&-dc&gtk+-1.2.10.tar.gz&|&tar&xvf&-./configuremake&installtest--------------注意您可能需要修改例2.1&“从源文件编译&GTK+”中提供的版本号成对应您下载的&版本。如果&的目录发生变更,您同样需要修改它。,显示您需要修改的目录。注意如果您使用&或者安装了&tar,您可以使用&tar&zxvfgtk+-1.2.10.tar.gz命令。同样也可能使用&gunzip或者&gzcat&而不是许多&中的&gzipd注意如果您在&中下载了&或者其他文件。您的文件可能名称为:如果在执行例2.1&“从源文件编译&GTK+”中的指令时有错误发生的话,你可以咨询&网站。如果您已经下载了&源,一般指令如例2.2&“&编译、安装&libpcap”显示的那样会帮您完成编译。同样,如果您的操作系统不支持&tcpdump,您可以从&tcpdump&网站下载安装它。例2.2.编译、安装&libpcapgzip&-dc&libpcap-0.9.4.tar.Z&|&tar&xvf&-cd&libpcap-0.9.4./configuremakemake&install注意Libpcap&的目录需要根据您的版本进行修改。tar&xvf&命令显示您解压缩的目录。RedHat&6.x&及其以上版本环境下(包括基于它的发行版,如&)您可以直接运行&安装所有的包。大多数情况下的&需要安装&和&反过来说,你可能需要安装所有包的定制版。安装命令可以参考例2.3&“在&RedHat&Linux6.2或者基于该版本得发行版下安装需要的&RPM&包。如果您还没有安装,您可能需要安装需要的&。例2.3.在&RedHat&Linux或者基于该版本得发行版下安装需要的&RPM&包cd&/mnt/cdrom/RedHat/RPMSrpm&-ivh&glib-1.2.6-3.i386.rpmrpm&-ivh&glib-devel-1.2.6-3.i386.rpmrpm&-ivh&gtk+-1.2.6-7.i386.rpmrpm&-ivh&gtk+-devel-1.2.6-7.i386.rpmrpm&-ivh&libpcap-0.4-19.i386.rpm注意如果您使用&之后的版本,需要的&包可能已经变化。您需要使用正确的RMPs&包。在&下您可以使用&命令。将会为您完成所有的操作。参见例2.4&“在&Deban&下安装&Deb”例2.4.在&Deban&下安装&Debapt-get&install&wireshark-dev2.4.在&UNIX&下编译&Wireshark如果在&操作系统下可以用如下步骤编译&源代码:如果使用&则解压&gzip'd文件如果您使用&,则解压&tar&文件。对于&命令如下:tar&zxvf&wireshark-0.99.5-tar.gz对于UNIX&版本,命令如下gzip&-d&wireshark-0.99.5-tar.gztar&xvf&wireshark-0.99.5-tar注意使用管道命令行gzip&Cdc&Wireshark-0.99.5-tar.gz|tar&xvf同样可以[9]注意如果您在&下下载了&你会发现文件名中的那些点变成了下划线。将当前目录设置成源文件的目录。配置您的源文件以编译成适合您的&的版本。命令如下:./configure如果找个步骤提示错误,您需要修正错误,然后重新&解决编译错误可以参考第2.6节“解决&UNIX&下安装过程中的问题”使用&命令将源文件编译成二进制包,例如:make安装您编译好的二进制包到最终目标,使用如下命令:make&install一旦您使用&安装了&您就可以通过输入&命令来运行它了。[9]&译者注:看到别人翻译&之类的,似乎就是叫管道,不知道是否准确2.5.在&UNIX&下安装二进制包一般来说,在您的&下安装二进制发行包使用的方式根据您的&的版本类型而各有不同。例如&下,您可以使用&安装,您可以使用setld&命令。2.5.1.在&Linux&或类似环境下安装&RPM&包使用如下命令安装&包rpm&-ivh&wireshark-0.99.5.i386.rpm如果因为缺少&依赖的软件而导致安装错误,请先安装依赖的软件,然后再尝试安装。REDHAT下依赖的软件请参考例2.3&“在&RedHat&Linux&6.2或者基于该版本得发行版下安装需要的&RPM&包2.5.2.在&Debian&环境下安装&Deb&包使用下列命令在&下安装&apt-get&install&Wiresharkapt-get会为您完成所有的相关操作2.5.3.在&Gentoo&Linux&环境下安装&Portage使用如下命令在&下安装&以及所有的需要的附加文件USE=&adns&gtk&ipv6&portaudio&snmp&ssl&kerberos&threads&selinux&&emerge&wireshark2.5.4.在&FreeBSD&环境下安装包使用如下命令在&下安装&pkg_add&-r&wiresharkpkg_add&会为您完成所有的相关操作2.6.解决&UNIX&下安装过程中的问题&[10]安装过程中可能会遇到一些错误信息。这里给出一些错误的解决办法:如果&configure&那一步发生错误。你需要找出错误的原因,您可以检查日志文件&在源文件目录下,看看都发生了哪些错误。有价值的信息通常在最后几行。一般原因是因为您缺少&环境,或者您的&版本过低。错误的另一个原因是因为因为缺少&这就是前面提到的捕捉包的工具。另外一个常见问题是很多用户抱怨最后编译、链接过程需要等待太长时间。这通常是因为使用老式的&sed&命令(比如&下传输)。自从&脚本使用&命令建立最终链接命令,常常会导致不可知的错误。您可以通过下载最新版本的&解决该问题&http://directory.fsf.org/GNU/sed.html.如果您无法检测出错误原因。发送邮件到&wireshark-dev&说明您的问题。当然,邮件里要附上config.log&以及其他您认为对解决问题有帮助的东西,例如&过程的追踪。[10]译者注:本人不熟悉&,这一段翻译的有点云里雾里,可能大家通过这部分想安装&会适得其反,那就对不住了。下面个人说一下&下安装方法。UNIX/LINUX&下安装时,有两种安装方式,是下载源码包自己编译,这种方式的好处是因为下载源码包是单一的,可以自行加以修改,编译就是适合自己平台的了。2、是利用已经做好的发行包直接安装,这种方法的好处是只要下载到跟自己平台对应的就可以,但缺点也在这里,不是每个平台都能找到合适的。不管是编译安装,还是使用发行包安装,都需要有一些有些基本基本支持。比如Linux&下的&支持,捕捉包时需要用的&这一点可以参考第2.3节“在&UNIX下安装之前”。编译的一般步骤是解压,编译,安装(tar&zxvfWireshark-0.99.5-tar.makeak&install)直接安装则是根据各自平台安装的特点。2.7.在&Windows&下编译源在&平台下,我们建议最好是使用二进制包直接安装,除非您是从事&开发的。&如果想了解关于&下编译安装&,请查看我们的开发&网站&http://wiki.wireshark.org/Development&来了解最新的开发方面的文档。2.8.在&Windows&下安装&Wireshark本节将探讨在&下安装&二进制包。2.8.1.安装&Wireshark您获得的&二进制安装包可能名称类似&安装包包含&所以您不需要单独下载安装它。您只需要在&http://www.wireshark.org/download.html#releases下载&安装包并执行它即可。除了普通的安装之外,还有几个组件供挑选安装。提示:尽量保持默认设置如果您不了解设置的作用的话。选择组件[11]Wireshark(包括&和&接口无法同时安装如果您使用&的&界面遇到问题可以尝试&,在&下色()显示模式无法运行&但是某些高级分析统计功能在&下可能无法实现。Wireshark&GTK1-Wireshark&是一个&网络分析工具Wireshark&GTK2-Wireshark&是一个&网络分析工具(建议使用&模组工具)GTK-Wimp-GTKWimp是诗歌&窗口模拟看起来感觉像原生&程序,推荐使用TSshark-TShark是一个命令行的网络分析工具插件扩展分析引擎Dissector&Plugins-分析插件:带有扩展分析的插件T&reeStatistics&Plugins-树状统计插件:统计工具扩展Mate&-&Meta&Analysisi&andan&T&racingn&Engine&(experimentn&al&:可配置的显示过滤引擎,参考&http://wiki.wireshark.org/Mate.SNMPMIBs:&SNMP,的详细分析。Tools/工具处理捕捉文件的附加命令行工具User’s&Guide-用户手册本地安装的用户手册。如果不安装用户手册,帮助菜单的大部分按钮的结果可能就是访问&•Editcap&-&Editcap&is&a&program&that&reads&a&capture&file&and&writes&some&or&all&of&the&packets&into&another&capture&file./Editcap&是一个读取捕捉文件的程序,还可以将一个捕捉文件力的部分或所有信息写入另一个捕捉文件。(文件合并&插入?)T&ext2Pcap-&Text2pcap&is&a&program&that&reads&in&an&ASCII&hex&dump&and&writes&the&data&into&a&libpcap-style&capture&file./Tex2pcap是一个读取&,写入数据到&个文件的程序。Mergecap&-&Mergecap&is&a&program&that&combines&multiple&saved&capture&files&into&a&single&output&file.&/&Mergecap&是一个可以将多个播捉文件合并为一个的程序。Capinfos&-&Capinfos&is&a&program&that&provides&information&on&capture&files.&/Capinfos&是一个显示捕捉文件信息的程序。“Additional&T&asks页Start&Menu&Shortcu-开始菜单快捷方式增加一些快捷方式到开始菜单Desktop&Icon-桌面图标增加&图标到桌面Quick&Launch&Icon-快速启动图标增加一个&图标到快速启动工具栏Associatefile&extension&to&Wireshark-Wireshark文件关联将捕捉包默认打开方式关联到&Installal&WinPcap?”页Wireshark&安装包里包含了最新版的&安装包。如果您没有安装&。您将无法捕捉网络流量。但是您还是可以打开以保存的捕捉包文件。Currently&installeWinPcap&version-当前安装的&版本Installal&WinPcap&x.x&-如果当前安装的版本低于&自带的,该选项将会是默认值。Start&WinPcap&service&&NPF&&at&startup&-将&的服务&在启动时运行&这样其它非管理员用户就同样可以捕捉包了。更多关于&的信息:Wireshark相关&http://wiki.wireshark.org/WinPcapWinPcap&官方网站:http://www.winpcap.org安装命令选项您可以直接在命令行运行安装包,不加任何参数,这样会显示常用的参数以供交互安装。&在个别应用中,可以选择一些参数定制安装:/NCRC&禁止&校检/S静默模式安装或卸载&注意:静默模式安装时不会安装&/desktopicon&安装桌面图标,表示安装图标,反之则不是,适合静默模式。/quicklaunchicon将图标安装到快速启动工具栏,安装到工具栏,不安装,不填按默认设置。/D设置默认安装目录首选安装目录和安装目录注册表键值,该选项必须设置到最后。即使路径包含空格例2.5.wireshark-setup-0.99.5.exe&/NCRC&/S&/desktopicon=yes&/quicklaunchicon=no&/D=C:\Program&Files\Foo2.8.2.手动安装&WinPcap注意事先声明,安装时会谨慎对待&的安装,所以您通常不必担心&。下面的&仅适合您需要尝试未包括在&内的不同版本&。例如一个新版本的WinPcap&发布了,您需要安装它。单独的&版本(包括&版)可以在下面地址下载到WinPcap&官方网站:http://www.winpcap.orgWiretapped.net&镜像站点http://www.mirrors.wiretapped.net/security/packet-capture/winpcap在下载页面您将会发现&的安装包名称通常类似于。它们可以在&下安装。2.8.3.更新&Wireshark有时候您可能想将您的&更新到最新版本,如果您订阅了&通知邮件,您将会获得&新版本发布的通知,见第1.6.4节“邮件列表。新版诞生通常需要周。更新&就是安装一下新版本。下载并安装它就可以。更新通常不需要重新启动,也不会更改过去的默认设置2.8.4.更新&WinPcapWinPcap&的更新不是十分频繁,通常一年左右。新版本出现的时候您会收到&的通知。更新&后需要重新启动。警告在安装新版&之前,如果您已经安装了旧版&您必须先卸载它。最近版本的&安装时会自己卸载旧版。2.8.5.卸载&Wireshark你可以用常见方式卸载&使用添加删除程序,选择选项开始卸载即可。Wireshark&卸载过程中会提供一些选项供您选择卸载哪些部分,默认是卸载核心组件,但保留个人设置和&WinPcap&默认不会被卸载,因为其他类似&的程序有可能同样适用&2.8.6.卸载&WinPcap你可以单独卸载&在添加删除程序选择卸载它。注意卸载&之后您将不能使用&捕捉包。在卸载完成之后最好重新启动计算机。[11]&涉及到过多的名次,软件又没有中文版,这里及以后尽量不翻译名称第3章&用户界面目录3.1.须知3.2.启动&Wireshark3.3.主窗口3.3.1.&主窗口概述3.4.主菜单3.5.&&File&菜单3.6.&&Edit&菜单3.7.&&View&菜单3.8.&&Go&菜单3.9.&&Capture&菜单3.10.&&Analyze&菜单3.11.&&Statistics&菜单3.12.&&Help&菜单3.13.&&Main&工具栏3.14.&&Filter&工具栏3.15.&&Pcaket&List&面板3.16.&&Packet&Details&面板3.17.&&Packet&Byte&面板3.18.状态栏3.1.须知现在您已经安装好了&几乎可以马上捕捉您的一个包。紧接着的这一节我们将会介绍:Wireshark&的用户界面如何使用如何捕捉包如何查看包如何过滤包……以及其他的一些工作。3.2.启动&Wireshark你可以使用&命令行或者资源管理器启动&提示开始&时您可以指定适当的参数。参见第9.2节“从命令行启动&Wireshark”注意在后面的章节中,将会出现大量的截图,因为&运行在多个平台&,并且支持多个&您的屏幕上显示的界面可能与截图不尽吻合。但在功能上不会有实质性区别。尽管有这些区别,也不会导致理解上的困难。3.3.主窗口先来看看图3.1&“主窗口界面,大多数打开捕捉包以后的界面都是这样子(如何捕捉打开包文件随后提到)。图3.1.主窗口界面和大多数图形界面程序一样,主窗口由如下部分组成:菜单(见第3.4节“主菜单)用于开始操作。主工具栏见第3.13节“&Main&工具栏)提供快速访问菜单中经常用到的项目的功能。Fiter&toolbar/过滤工具栏见第3.14节“&Filter&工具栏)提供处理当前显示过滤得方法。见浏览时进行过滤Packet&List&面板(见第3.15节“&Pcaket&List&面板)显示打开文件的每个包的摘要。点击面板中的单独条目,包的其他情况将会显示在另外两个面板中。Packet&detail&面板(见第3.16节“&Packet&Details&面板)显示您在&面板中选择的包德更多详情。Packet&bytes&面板(见第3.17节“&Packet&Byte&面板)显示您在&面板选择的包的数据,以及在Packet&details&面板高亮显示的字段。状态栏(见第3.18节“状态栏)显示当前程序状态以及捕捉数据的更多详情。注意主界面的三个面版以及各组成部分可以自定义组织方式。见第9.5节“首选项3.3.1.主窗口概述Packet&list&和&面版控制可以通过快捷键进行。&表3.1&“&导航快捷键显示了相关的快捷键列表。&表3.5&“&GO&菜单项有关于快捷键的更多介绍表3.1.导航快捷键快捷键Tab,Shift+TabDownUpCtrl-Down,F8描述在两个项目间移动,例如从一个包列表移动到下一个移动到下一个包或者下一个详情移动到上一个包或者上一个详情移动到下一个包,即使焦点不在&面版Ctrl-UP,F7移动到前一个报,即使焦点不在&面版在&面版,关闭被选择的详情树状分支。如果以关闭,则返回到父Left分支。Right在&面版,打开被选择的树状分支BackspacePacket&Detail&面版,返回到被选择的节点的父节点Return,EntePacket&Detail&面版,固定被选择树项目。r另外,在主窗口键入任何字符都会填充到&里面。3.4.主菜单Wireshark&主菜单位于&窗口的最上方。图3.2&“主菜单提供了菜单的基本界面。图3.2.主菜单主菜单包括以下几个项目File包括打开、合并捕捉文件,save/保存打印导出捕捉文件的全部或部分。以及退出Wireshark&项见第3.5节“&File&菜单Edit包括如下项目:查找包,时间参考,标记一个多个包,设置预设参数。(剪切,拷贝,粘贴不能立即执行。)见第3.6节“&Edit&菜单View控制捕捉数据的显示方式,包括颜色,字体缩放,将包显示在分离的窗口,展开或收缩详情面版的地树状节点,见第3.7节“&View&菜单GO包含到指定包的功能。见第3.8节“&Go&菜单Capture允许您开始或停止捕捉、编辑过滤器。见第3.9节“&Capture&菜单Analyze包含处理显示过滤,允许或禁止分析协议,配置用户指定解码和追踪&流等功能。见第3.10节“&Analyze&菜单Statistics包括的菜单项用户显示多个统计窗口,包括关于捕捉包的摘要,协议层次统计等等。见第3.11节“&Statistics&菜单Help包含一些辅助用户的参考内容。如访问一些基本的帮助文件,支持的协议列表,用户手册。在线访问一些网站,关于等等。见第3.12节“&Help&菜单本章链接介绍菜单的一般情况,更详细的介绍会出现在后续章节。提示你可以直接点击访问菜单项,也可以使用热键,热键显示在菜单文字描述部分。例如:您可以使用&打开捕捉对话框。3.5.&&File&菜单WireSharkFile菜单包含的项目如表表3.2&“File&菜单介绍所示图3.3.&File&菜单表3.2.&File&菜单介绍Open...菜单项快捷键Ctr+O描述显示打开文件对话框,让您d入捕捉文件用以浏览。见第&5.2.1节“打开捕捉文件对话框弹出一个子菜单显示最近打开过的文件供Open&RecentMerg选择。显示合并捕捉文件的对话框。让您选择一个文件和当前打开的文件合并。见第5.4节“合并捕捉文件关闭当前捕捉文件,如果您未保存,系统将CloseSaveCtrl+WCrl+S提示您是否保存(如果您预设了禁止提示保存,将不会提示)保存当前捕捉文件,如果您没有设置默认的保存文件名,&出现提示您保存文件的对话框。详情第5.3.1节“&saveSave&AsFile&Set&LiFilesFile&Set&NFileFile&set&Previou&FilesExport&&as&“Plain&T”&FileExport&&as&&PostScript&&FilesExport&&as&&CVS&(CommaSeparatedValuesPacketSummary)File...Export&&&as&“PSML”&FileExport&as&&PDML&&File...Export&SelectedPacketBytes…PrintQuitShift+Ctrl+SCtr+PCtrl+QCapture&File&As/&保存文件为对话框注意如果您已经保存文件,该选项会是灰色不可选的。注意您不能保存动态捕捉的文件。您必须结束捕捉以后才能进行保存让您将当前文件保存为另外一个文件面,将会出现一个另存为的对话框(参见&第5.3.1节“&save&Capture&File&As/&保存文件为&&对话框)允许您显示文件集合的列表。将会弹出一个对话框显示已打开文件的列表,参见&第5.5节“文件集合如果当前d入文件是文件集合的一部分,将会跳转到下一个文件。如果不是,将会跳转到最后一个文件。这个文件选项将会是灰色。如果当前文件是文件集合&的一部分,将会调到它所在位置的前一个文件。如果不是则跳到文件集合的第一个文件,同时变成灰色。这个菜单允许您将捕捉文件中所有的或者部分的包导出为&格式。它将会弹出一个Wireshark&导出对话框,见&第5.6.1节“&Export&as&Plain&Text&File&对话框将捕捉文件的全部或部分导出为PostScrit文件。将会出现导出文件对话框。参见第5.6.2节“&Export&as&PostScript&File&对话框导出文件全部或部分摘要为格式(可用在电子表格中)。将会弹出导出对话框见第5.6.3节“&ExportasCSV&(CommaSeparated&Values)File&对话框。导出文件的全部或部分为&格式(包摘要标记语言)&文件。将会弹出导出文件对话框。见第5.6.4节“&Export&as&PSMLFile&&对话框导出文件的全部或部分为PDML(包摘要标记语言格式的&文件。将会弹出一个导出文件对话框,见第5.6.5节“&Export&asPDML&File&&对话框导出当前在Packet&byte&面版选择的字节为二进制文件。将会弹出一个导出对话框。见第5.6.6节“&Export&selected&packet&bytes&对话框打印捕捉包的全部或部分,将会弹出打印对话框。见第5.7节“打印包退出&如果未保存文件,会提示是否保存。3.6.&&Edit&菜单Wireshark&的菜单包含的项目见表3.3&“Edit&菜单项图3.4.&&E&dit&菜单表3.3.&E&dit&菜单项菜单项快捷键描述Copy&As&FilterShift+Ctrl+C使用详情面版选择的数据作为显示过滤。显示过滤将会拷贝到剪贴板。Find&Packet.Find&NFind&PreviouMarkPacket(toggle)Find&NMarkFindPreviousCtr+F打开一个对话框用来通过限制来查找包,见在使用&以后,使用该菜单会查找匹配规则的下一个Ctrl+N包Ctr+B查找匹配规则的前一个包。Ctrl+M标记当前选择的包。见第6.9节“标记包Shift+C查找下一个被标记的包trl+NCtrl+ShMarkMarkPacketsUnmarkPacketSetALLAllT&imeift+B查找前一个被标记的包标记所有包取消所有标记Reference(toggle)Ctrl+T以当前包时间作为参考见第6.10.1节“包参考时间FindReferenceNext找到下一个时间参考包FindPreviousRefrence...Preferences...Shift+Ctrl+P找到前一个时间参考包打开首选项对话框,个性化设置&的各项参数,设置后的参数将会在每次打开时发挥作用。详见第9.5节“首选项3.7.&&View&菜单表3.4&“&View&菜单项显示了&菜单的选项图3.5.&&View&菜单表3.4.&&View&菜单项菜单项快捷键描述Main&T&oolbFilter&T&oolbarStatusbarPacket&ListPacket&DetailsPacket&Bytes显示隐藏Main&toolbar(&主工具栏),&见&第3.13节“&Main&工具栏显示或隐藏Filter&Toolbar(过滤工具栏)见第3.14节“&Filter&工具栏显示或隐藏状态栏,&见第3.18节“状态栏显示或隐藏Packet&List&pane(包列表面板&见第3.15节“&Pcaket&List&面板显示或隐藏Packet&details&pane(包详情面板见第3.16节“&Packet&Details&面板显示或隐藏packet&Bytes&pane(包字节面TimeDisplayFromat&DateandTimeofDay:01:02:03.123456TimeDisplayFormat&T&imeofDay:&01:02:03.123456TimeDisplay&Format&&&SecondsSinceBeginningofCapture:123.123456TimeDisplayFormat&&SecondsSince&Previousou&Captured&Packet:1.123456TimeDisplayFormat&&SecondsSince&Previousou&DisplayedPacket:1.123456Time&Display&Format&&&------TimeDisplayFormat&板,见第3.17节“&Packet&Byte&面板选择这里告诉Wireshark&将时间戳设置为绝对日期时间格式年月日,时分秒&,见第6.10节“时间显示格式及参考时间注意这里的字段&Time&ofDay&,&Dateand&Time&ofDay&,&Seconds&SinceBeginning&ofCapture&,&Seconds&SincePreviousCapturedPacket&和&SecondsSince&PreviousDisplayedPacket&几个选项是互斥的,换句话说,一次同时有一个被选中。将时间设置为绝对时间-日期格式&时分秒格式&见第6.10节“时间显示格式及参考时间将时间戳设置为秒格式,从捕捉开始计时,见第6.10节“时间显示格式及参考时间将时间戳设置为秒格式,从上次捕捉开始计时,见第6.10节“时间显示格式及参考时间将时间戳设置为秒格式,从上次显示的包开始计时见第6.10节“时间显示格式及参考时间根据指定的精度选择数据包中时间戳的显示方式,见第6.10节“时间显示格式及参考时间注意AutomaticPrecision)(FileFormat&Automatic&,&Seconds&和&...seconds&是互斥的Time&DisplayFormat&&&Seconds:0TimeDisplayFormat&&...seconds:&0....Name&Resolution&&&Resolve&NameNameResolution&&Enablefor设置精度为秒,见第6.10节“时间显示格式及参考时间设置精度为秒,秒,秒,百万分之一秒等等。&见第6.10节“时间显示格式及参考时间仅对当前选定包进行解析第7.6节“名称解析是否解析&地址MAC&LayerNameResolution&&EnableforNetwork&LayerNameResolution&&EnableforT&ransportLayerColorize&Packet&ListAuto&Scrooll&i&Live&Capture是否解析网络层地址地址见第7.6节“名称解析是否解析传输层地址第7.6节“名称解析是否以彩色显示包注意以彩色方式显示包会降低捕捉再如包文件的速度控制在实时捕捉时是否自动滚屏,如果选择了该项,在有新数据进入时,&面板会项上滚动。您始终能看到最后的数据。反之,您无法看到满屏以后的数据,除非您手动滚屏Zoom&InZoom&OutNormal&SizeResiz&Al&ColumnusExpend&SubtreeExpand&AlCollapse&AllColoringn&Rulues...Show&Packet&in&NWindowReload3.8.&&Go&菜单Ctrl++Ctrl+-Ctrl+=Ctrl+R增大字体缩小字体恢复正常大小恢复所有列宽注意除非数据包非常大,一般会立刻更改展开子分支看开所有分支,该选项会展开您选择的包的所有分支。收缩所有包的所有分支打开一个对话框,让您可以通过过滤表达来用不同的颜色显示包。这项功能对定位特定类型的包非常有用。见第&9.3节“包色彩显示设置在新窗口显示当前包,(&新窗口仅包含View,B&yteView两个面板重新再如当前捕捉文件Wireshark&&GO&菜单的内容见表3.5&“&GO&菜单项图3.6.&&GO&菜单表3.5.&&GO&菜单项菜单项BackForWardGoPackeGotoCorrespondingPacketPreviousou&PacketNext&PacketFirst&PacketLast&Packet快捷键Alt+LeftAlt+RightCtrl+GCtrl+UPCtrl+Down描述跳到最近浏览的包,类似于浏览器中的页面历史纪录跳到下一个最近浏览的包,跟浏览器类似打开一个对话框,输入指定的包序号,然后跳转到对应的包,见第6.8节“到指定的包跳转到当前包的应答包,如果不存在,该选项为灰色移动到包列表中的前一个包,即使包列表面板不是当前焦点,也是可用的移动到包列表中的后一个包,同上移动到列表中的第一个包移动到列表中的最后一个包3.9.&&Capture&菜单&Capture&菜单的各项说明见表3.6&“&Capture&菜单项图3.7.&&Capture&菜单表3.6.&&Capture&菜单项快捷菜单项键说明Interface...Options...StartStopRestartCaptureFilters...Ctrl+KCtrl+E在弹出对话框选择您要进行捕捉的网络接口,见第4.4节“捕捉接口对话框打开设置捕捉选项的对话框,(见第4.5节“捕捉选项对话框&”)并可以在此开始捕捉立即开始捕捉,设置都是参照最后一次设置。停止正在进行的捕捉,见第4.9.1节“停止捕捉正在进行捕捉时,停止捕捉,并按同样的设置重新开始捕捉仅在您认为有必要时打开对话框,编辑捕捉过滤设置,可以命名过滤器,保存为其他捕捉时使用见第6.6节“定义,保存过滤器3.10.&&Analyze&菜单&Analyze&菜单的各项见表3.7&“&analyze&菜单项图3.8.&&Analyze&菜单表3.7.&&analyze&菜单项菜单项快捷键DisplayFilters...说明打开过滤器对话框编辑过滤设置,可以命名过滤设置,保存为其他地方使用,见第6.6节“定义,保存过滤器ApplyFilter&...as更改当前过滤显示并立即应用。根据选择的项,当前显示字段会被替换成选择在&面板的协议字段PrepareaFilter&...Firewallal&ACLRulesEnableProtocols...Shift+Ctrl+R更改当前显示过滤设置,当不会立即应用。同样根据当前选择项,过滤字符会被替换成&面板选择的协议字段为多种不同的防火墙创建命令行ACL&规则&访问控制列表),支持Cisco&IOS,&Linux&Netfilter&(iptables),&OpenBSD&pf&and&WindowsFirewall&(via&netsh).&Rules&for&MAC&addresses,&IPv4&addresses,&TCPand&UDP&ports,&以及IPv4+&混合端口以上假定规则用于外部接口是否允许协议分析,见第9.4.1节“&Enable&Protocols&对话框[a]看样子他们有个关于这部分的章节3.11.&&Statistics&菜单Wireshark&&statistics&菜单项见表3.8&“”图3.9.&&Statistics&菜单表3.8.菜单项SummaryProtocolHierarchyConversations/EndPointsIO&GraphsConversationListEndpoint&ListServiceResponse&TimeANSIGSMH.225...ISUP&MessageTypesMTP3RTPGSMSIP快捷键描述显示捕捉数据摘要见第8.2节“摘要窗口显示协议统计分层信息,见第8.3节&“&Protocol&Hierarchy&窗口显示会话列表两个终端之间的通信见显示端点列表&通信发起,结束地址&见第8.4.2节“&Endpoints&窗口显示用户指定图表,如包数量时间表见第8.6节“&IO&Graphs&&窗口通过一个组合窗口,显示会话列表,&见第8.5.3节“&协议指定“Conversation&List/会话列表窗口通过一个组合窗口显示终端列表,见第8.4.3节“特定协议的&Endpoint&List&窗口显示一个请求及其相应之间的间隔时间,见第8.7节“服务相应时间见第8.8节“协议指定统计窗口见第8.8节“协议指定统计窗口见第8.8节“协议指定统计窗口见第8.8节“协议指定统计窗口见第8.8节“协议指定统计窗口见第8.8节“协议指定统计窗口见第8.8节“协议指定统计窗口见第8.8节“协议指定统计窗口见第8.8节“协议指定统计窗口VOIP&Calls...WAP-WSP...HTTPISUP&MessagesONC-RPCProgramsTCPStreamGraph见第8.8节“协议指定统计窗口见第8.8节“协议指定统计窗口HTTP&请求相应统计,见第8.8节“协议指定统计窗口见第8.8节“协议指定统计窗口见第8.8节“协议指定统计窗口见第8.8节“协议指定统计窗口3.12.&&Help&菜单帮助菜单的内容见表3.9&“”图3.10.帮助菜单表3.9.快捷菜单项键描述ContentsSupportedProtocolsManaul&Pages&...WiresharkOnline&About&WiresharkF1打开一个基本的帮助系统打开一个对话框显示支持的协议或工具打开浏览器,显示安装在本地的手册按照选择显示在线资源弹出信息窗口显示&的一些相关信息,如插件,目录等。注意有些版本可能不支持调用&浏览器。如果是这样,可能会隐藏此菜单。注意如果调用浏览器错误,检查&首选项关于浏览器设置。3.13.&&Main&工具栏主工具栏提供了快速访问常见项目的功能它是不可以自定义的,但如果您觉得屏幕屏幕过于狭小,需要更多空间来显示数据。您可以使用浏览菜单隐藏它。在主工具栏里面的项目只有在可以使用的时候才能被选择,如果不是可用则显示为灰色,不可选例如:在未载入文件时,保存文件按钮就不可用图3.11.表3.10.主工具栏选项工具栏图标工具栏项接口对应菜单项Capture/Interfaces...描述打开接口列表对话框见第4.3节“开始捕捉打开捕捉选项对话框,见&第4.4节“捕捉接口对话选项。。。Capture/Options框StartST&OPRestarOpen...Capture/StartCapture/StopCaputer/RstartFile/Open使用最后一次的捕捉设置立即开始捕捉停止当前的捕捉,见第4.3节“开始捕捉停止当前捕捉,并立即重新开始启动打开文件对话框,用于载入文件,详见第5.2.1节“打开捕捉文件对话框保存当前文件为任意其他的文件,它将会弹出一个对话框,&见第5.3.1节“&save&Capture&File&As/&保存文件为&对话框注意如果当前文件Save&As...File/Save&As...是临时未保存文件,图标将会显示为CloseReloadPrintFindFile/CloseView/ReloadFile/Print关闭当前文件。如果未保存,将会提示是否保存重新载入当前文件打印捕捉文件的全部或部分,将会弹出一个打印对话框见第5.7节“打印包)packet...Edit/Find&Packet...打开一个对话框,查找包。见第6.7节“查找包Go&BacGo/Go&BackGoGo/Go&ForwardForwardGoto返回历史记录中的上一个跳转到历史记录中的下一个包Packet...Go/Go&to&Packet...弹出一个设置跳转到指定的包的对话框GoToFirstPacketGoToLastPacketGo/First&PacketGo/Last&Packet跳转到第一包跳转到最后一个包ColorizeView/ColorezeAutoView/Auto&ScroolScrollinin&Live&CaptureLiveZoom&inView/Zoom&In切换是否以彩色方式显示包列表开启关闭实时捕捉时自动滚动包列表增大字体zoom&outView/Zoom&Out缩小字体NormalView/NormalSize设置缩放大小为SizeResizeColumnsCaptureFilters..DisplayFilters..View/ResizeColumnsCapture/CaptureFilters...Analyze/&Filters...重置列宽,使内容适合列宽&使包列表内的文字可以完全显示打开对话框,用于创建、编辑过滤器。详见第6.6节“定义,保存过滤器打开对话框,用于创建、编辑过滤器。详见第6.6节“定义,保存过滤器ColoringRules...PreferencView/ColoringRules...定义以色彩方式显示数据包的规则详见“包色彩显示设置第9.3节es...Edit/Preferences打开首选项对话框,详见第9.5节“首选项HelpHelp/Contents打开帮助对话框3.14.&&Filter&工具栏过滤工具栏用于编辑或显示过滤器,更多详情见第6.3节“浏览时过滤包图3.12.过滤工具栏表3.11.工具栏图标工具栏项过滤过滤输入框说明打开构建过滤器对话框见第6.7节“查找包[a]在此区域输入或修改显示的过滤字符,见第6.4节“建立显示过滤表达式&”,在输入过程中会进行语法检查。如果您输入的格式不正确,或者未输入完成,则背景显示为红色。直到您输入合法的表达式,背景会变为绿色。你可以点击下拉列表选择您先前键入的过滤字符。列表会一直保留,即使您重新启动程序。注意做完修改之后,记得点击右边的Apply(应用按钮,表达式...清除应用或者回车,以使过滤生效。注意输入框的内容同时也是当前过滤器的内容(当前过滤器的内容会反映在输入框)标签为表达式的按钮打开一个对话框用以从协议字段列表中编辑过滤器,详见第6.5节““FilterExpression/过滤表达式对话框重置当前过滤器,清除输入框应用当前输入框的表达式为过滤器进行过滤注意在大文件里应用显示过滤可能要很长时间[a]我看到的&按钮貌似没有图标,可能只出现在版中3.15.&&Pcaket&List&面板Packet&list/包列表面板显示所有当前捕捉的包图3.13.&&Packetlist/包列表&面板列表中的每行显示捕捉文件的一个包。如果您选择其中一行,该包得更多情况会显示在包详情,包字节面板在分析解剖包时,会将协议信息放到各个列。因为高层协议通常会覆盖底层协议,您通常在包列表面板看到的都是每个包的最高层协议描述。例如:让我们看看一个包括TCP&包包和一个以太网包。在以太网&链路层?包中解析的数据比如以太网地址),在&分析中会覆盖为它自己的内容比如&地址,在&分析中会覆盖&信息。包列表面板有很多列可供选择。需要显示哪些列可以在首选项中进行设置,见第9.5节“首选项默认的列如下No.包的编号,编号不会发生改变,即使进行了过滤也同样如此Time包的时间戳。包时间戳的格式可以自行设置,见第6.10节“时间显示格式及参考时间Source显示包的源地址。Destination显示包的目标地址。Protocal&显示包的协议类型的简写Info包内容的附加信息右击包,可以显示对包进行相关操作的上下文菜单。见第6.3节“浏览时过滤包3.16.&&Packet&Details&面板&Packet&Details/包详情面板显示当前包在包列表面板被选中的包的详情列表。图3.14.&&Packet&Details/包详情&面板该面板显示包列表面板选中包的协议及协议字段,协议及字段以树状方式组织。你可以展开或折叠它们。右击它们会获得相关的上下文菜单。见第6.4节“建立显示过滤表达式某些协议字段会以特殊方式显示Generated&fields/衍生字段Wireshark&会将自己生成附加协议字段加上括号。衍生字段是通过该包的相关的其他包结合生成的。例如:在对&流应答序列进行分析时。将会在&协议中添加字段Links/链接&如果&检测到当前包与其它包的关系,将会产生一个到其它包的链接。链接字段显示为蓝色字体,并加有下划线。双击它会跳转到对应的包。3.17.&&Packet&Byte&面板Packet&Byte/包字节&面板以进制转储方式显示当前选择包的数据图3.15.&PacketByte/包字节面板通常在进制转储形式中,左侧显示包数据偏移量,中间栏以进制表示,右侧显示为对应的&字符根据包数据的不同,有时候包字节面板可能会有多个页面,例如:有时候&会将多个分片重组为一个,见第7.5节“重组包.这时会在面板底部出现一个附加按钮供你选择查看图3.16.带选项的&Paket&Bytes/包字节&面板注意附加页面的内容可能来自多个包。右击选项按钮会显示一个上下文菜单显示所有可用的页的清单。如果您的面板尺寸过小,这项功能或许有所帮助3.18.状态栏状态栏用于显示信息通常状态栏的左侧会显示相关上下文信息,右侧会显示当前包数目图3.17.初始状态栏该状态栏显示的是没有文件载入时的状态,如:刚启动&时图3.18.载入文件后的状态栏左侧显示当前捕捉文件信息,包括名称,大小,捕捉持续时间等。右侧显示当前包在文件中的数量,会显示如下值P:&捕捉包的数目D:被显示的包的数目M:&被标记的包的数目图3.19.已选择协议字段的状态栏如果你已经在包详情面板选择了一个协议字段,将会显示上图提示括号内的值如上图的&可以作为显示过滤使用。它表示选择的协议字段。&第4章&实时捕捉数据包目录4.1.介绍4.2.准备工作4.3.开始捕捉4.4.捕捉接口对话框4.5.捕捉选项对话框4.5.1.&捕捉桢4.5.2.&捉数据帧为文件。4.5.3.&停止捕捉桢4.5.4.&显示桢选项4.5.5.&名称解析设置4.5.6.&按钮4.6.捕捉文件格式、模式设置4.7.链路层包头类型4.8.捕捉时过滤4.8.1.&自动过滤远程通信4.9.在捕捉过程中4.9.1.&停止捕捉4.9.2.&重新启动捕捉4.1.介绍实时捕捉数据包时&的特色之一Wiershark&捕捉引擎具备以下特点支持多种网络接口的捕捉以太网,令牌环网,支持多种机制触发停止捕捉,例如:捕捉文件的大小,捕捉持续时间,捕捉到包的数量捕捉时同时显示包解码详情设置过滤,减少捕捉到包的容量。见第4.8节“捕捉时过滤长时间捕捉时,可以设置生成多个文件。对于特别长时间的捕捉,可以设置捕捉文件大小罚值,设置仅保留最后的&个文件等手段。见第4.6节&“捕捉文件格式、模式设置Wireshark&捕捉引擎在以下几个方面尚有不足从多个网络接口同时实时捕捉,但是您可以开始多个应用程序实体,捕捉后进行文件合并根据捕捉到的数据停止捕捉或其他操作4.2.准备工作第一次设置&捕捉包可能会遇到一些小麻烦提示关于如何进行捕捉设置的较为全面的向导可以在http://wiki.wireshark.org/CaptureSetup.这里有一些常见需要注意的地方你必须拥有&特权以开始捕捉[12]必须选择正确的网络接口捕捉数据如果您想捕捉某处的通信,你必须作出决定:在什么地方可以捕捉到……以及许多如果你碰到设置问题,建议看看前面的那个向导,或许会有所帮助[12]记得在&安装那一节层提到如果作为服务启动可以避免非管理员无法进行捕捉,不知道二者能否相互印证。4.3.开始捕捉可以使用下任一方式开始捕捉包使用打开捕捉接口对话框,浏览可用的本地网络接口,见图4.1&“&Capture&Interfaces&捕捉接口对话框,选择您需要进行捕捉的接口启动捕捉你也可以使用捕捉选项按钮启动对话框开始捕捉,见图4.2&“&Capture&Option/捕捉选项&对话框如果您前次捕捉时的设置和现在的要求一样,您可以点击开始捕捉按钮或者是菜单项立即开始本次捕捉。如果你已经知道捕捉接口的名称,可以使用如下命令从命令行开始捕捉:wireshark&-i&eth0&-k上述命令会从&接口开始捕捉,有关命令行的介绍参见第9.2节“从命令行启动&Wireshark”4.4.捕捉接口对话框如果您从捕捉菜单选择,将会弹出如图4.1&“&Capture&Interfaces&捕捉接口对话框所示的对话框警告打开捕捉对话框时&同时正在显示捕捉的数据,这将会大量消耗您的系统资源。尽快选择您需要的接口以结束该对话框。避免影响系统性能注意这个对话框只显示本地已知的网络接口,可能无法检测到所有的本地接口,Wireshark&不能检测远程可用的网络接口,只能使用列出可用的网络接口图4.1.&&CaptureInterfaces&捕捉接口对话框描述从操作系统获取的接口信息IPWireshark&能解析的第一个IP&地址,如果接口未获得IP&地址(如,不存在可用的DHCP&服务器,将会显示&如果有超过一个&的,只显示第一个无法确定哪一个会显示Packets打开该窗口后,从此接口捕捉到的包的数目。如果一直没有接收到包,则会显示为灰度Packets/s最近一秒捕捉到包的数目。如果最近一秒没有捕捉到包,将会是灰度显示Stop停止当前运行的捕捉Capture从选择的接口立即开始捕捉,使用最后一次捕捉的设置。Options打开该接口的捕捉选项对话框见第4.5节“捕捉选项对话框Details(仅&Win32系统)打开对话框显示接口的详细信息Close关闭对话框4.5.捕捉选项对话框如果您从捕捉菜单选择&按钮或者从主工具栏选择对应的项目&弹出捕捉选项对话框。如图4.2&“&Capture&Option/捕捉选项对话框所示图4.2.&&CaptureOption/捕捉选项&对话框提示如果你不了解各项设置的意义,建议保持默认。你可以用对话框中的如下字段进行设置4.5.1.捕捉桢Interface该字段指定你想用于进行捕捉的借口。一次只能使用一个接口。这是一个下拉列表,简单点击右侧的按钮,选择你想要使用的接口。默认第一是支持捕捉的&非环回接口,如果没有这样的接口,第一个将是环回接口。在某些系统中,回借口不支持捕捉包平台下的环回接口就不支持。在命令行使用参数可以替代该选项IP&address表示选择接口的&地址。如果系统未指定&地址,将会显示为Link-layer&header&type除非你有些特殊应用,尽量保持此选项默认。想了解更多详情,见第4.7节“链路层包头类型Buffer&size:&n&megabyte(s)输入用于捕捉的缓层大小。该选项是设置写入数据到磁盘前保留在核心缓存中捕捉数据的大小,如果你发现丢包。尝试增大该值。注意该选项仅适用于&平台Capture&packets&in&promiscuous&mode指定&捕捉包时,设置接口为杂收模式有些人翻译为混杂模式&。如果你未指定该选项,将只能捕捉进出你电脑的数据包不能捕捉整个局域网段的包[13]注意如果其他应用程序将网卡设置为杂收模式,即使不选中该选项,也会工作于杂收模式下。注意即使在杂收模式下,你也未必能够接收到整个网段所有的网络包。详细解释见http://www.wireshark.org/faq.html#promiscsniffLimit&each&packet&to&n&bytes指定捕捉过程中,每个包的最大字节数。在某些地方被称为。&[14]如果禁止该选项,默认值为,这适用于大多数协议,下面是一些大多数情况下都适用的规则这里又出现了拇指规则,第一章,系统需求时提到过。这里权且翻译作普适而非绝对的规则如果你不确定,尽量保持默认值如果你不需要包中的所有数据。例如:如果您仅需要链路层、和&包头,您可能想要选择一个较小的快照长度。这样只需要较少的&占用时间用于复制包,包需要的缓存也较少。如此在繁忙网络中捕捉时丢失的包也可能会相应少一点。如果你没有捕捉包中的所有数据&适用&截断了包,你可能会发现有时候你想要的包中的数据部分被截断丢弃了。或者因为缺少重要的部分,想对某些包进行重组而发现失败。Capture&Filter指定捕捉过滤。捕捉过滤器将会在有第4.8节“捕捉时过滤详细介绍,默认情况下是空的。同样你也可以点击捕捉按钮,通过弹出的捕捉过滤对话框创建或选择一个过滤器,详见第6.6节“定义,保存过滤器4.5.2.捉数据帧为文件。捕捉文件设置的使用方法的详细介绍见第4.6节“捕捉文件格式、模式设置File指定将用于捕捉的文件名。该字段默认是空白。如果保持空白,捕捉数据将会存储在临时文件夹。详见第4.6节“捕捉文件格式、模式设置你可以点击右侧的按钮打开浏览窗口设置文件存储位置Use&multiple&files如果指定条件达到临界值,将会自动生成一个新文件,而不是适用单独文件。Next&file&every&n&megabyte(s)仅适用选中&如果捕捉文件容量达到指定值,将会生成切换到新文件Next&file&every&n&minutes(s)仅适用选中&如果捕捉文件持续时间达到指定值,将会切换到新文件。Ring&buffer&with&n&files仅适用选中&仅生成制定数目的文件。Stop&caputure&after&n&file(s)仅适用选中&当生成指定数目文件时,在生成下一个文件时停止捕捉生成&个还是&个文件4.5.3.停止捕捉桢...&after&n&packet(s)在捕捉到指定数目数据包后停止捕捉...&after&n&megabytes(s)在捕捉到指定容量的数据(byte(s)/kilobyte(s)/megabyte(s)/gigabyte(s)&)后停止捕捉。如果没有适用&user&multiple&files&,该选项将是灰色...&after&n&minute(s)在达到指定时间后停止捕捉4.5.4.显示桢选项Update&list&of&packets&in&real&time在包列表面板实时更新捕捉数据。如果&未选定&该选项,在&捕捉结束之前将不能显示数据。如果选中该选项,Wireshark&将生成两个独立的进程,通过捕捉进程传输数据给显示进程。Automatic&scrolling&in&live&capture指定&在有数据进入时实时滚动包列表面板,这样您将一直能看到最近的包。反之,则最新数据包会被放置在行末,但不会自动滚动面板。如果未设置该选项将是灰色不可选的。Hide&capture&info&dialog选中该选项,将会隐藏捕捉信息对话框4.5.5.名称解析设置Enable&MAC&name&resolution设置是否让&翻译&地址为名称,见第7.6节&“名称解析Enable&network&name&resolution是否允许&对网络地址进行解析,见第7.6节“名称解析4.5.6.按钮进行完上述设置以后,你可以点击&start&按钮进行捕捉也可以点击&Cancel&退出捕捉开始捕捉以后,在你收集到足够的数据时你可以停止捕捉。见第4.9节“在捕捉过程中[13]网卡在局域网内会接到很多不属于自己的包,默认情况下,网卡会不对这些包进行处理。貌似设置为杂收模式,会监听所有的包,但并不作出相应。[14]粗略查了一下&未找到该词的合适翻译&多见于&的描述,如果把该单词拆分,&单元,快照,长度,似乎就是单位长度,单元大小的意思。在看看该段下面第二个如果中提到的&应该是二者的简写形式,快照长度4.6.捕捉文件格式、模式设置在&捕捉时,捕捉引擎环境下会抓取来自网卡的包存放在相对来说较小的核心缓存内。这些数据由&读取并保存到用户指定的捕捉文件中。保存包数据到捕捉文件时,可采用差异模式操作。提示处理大文件数百兆将会变得非常慢。如果你计划进行长时间捕捉,或者处于一个高吞吐量的网络中,考虑使用前面提到的多文件选项。该选项可以将捕捉包分割为多个小文件。这样可能更适合上述环境。注意使用多文件可能会切断上下文关联信息。保留载入包的上下文信息,所以它会报告上下文关联问题例如流问题和关联上下文协议信息例如:何处数据产生建立阶段,必须查找后续包。这些信息仅能在载入文件中显示,使用多文件模式可能会截断这样的上下文。如果建立连接阶段已经保存在一个文件中,你想要看的在另一个文件中,你可能无法看到可用的上下文关联信息。提示关于捕捉文件的目录信息,可见表4.1.捕捉文件模式选项&File&选项-foo.capfoo.capfoo.c--x&Usemultiplefiles&选项---&Ring&buffwith&n&files&选项ModeSingletemporaryfileSinglenamed&fileMultiplefiles,continuousMultiple最终文件命名方式etherXXXXXX&(where&XXXXXX是一个独立值foo.capfoo_.cap,foo_.cap,&...foo_.cap,apxxfiles,ringbufferfoo_.cap,&...Single&temporary&file将会创建并使用一个临时文件默认选项捕捉文件结束后,该文件可以由用户指定文件名。Single&named&file使用单独文件,如果你想放到指定目录,选择此模式Multiple&files,continuous与&模式类似,不同点在于,当捕捉达到多

我要回帖

更多关于 qt 工具栏添加按钮 的文章

 

随机推荐