scz 于 00-5-9 下午 12:17:39 加贴在 灌水乐园:
标题:NetXray使用说明之(6)----捕捉oicq message报文
NetXray发包前可以在decode状态下编辑,sniffer pro 2.6却不象NetXray那样
善解人意,只能进行二进制编辑。sniffer pro的Add Pattern里的TAB键极其混
帐,并且这里也不提供decode支持。始终不能理解这些地方。不过破解版的
NetXray在decode时有些地方对不准,菜单window也不时失灵。
暂略(回头补吧,没时间了)
今天讲讲oicq message报文的捕捉。
1. 首先设置进行IP/UDP报文过滤,IP/TCP暂时就不必了,因为oicq message报文多
是IP/UDP报文,我还没有看到过IP/TCP,应该是没有的。
2. 根据需要在Address/IP Include里设置通信双方的IP,假设我们需要捕获所有与
本机oicq.exe通信的oicq message报文,设置成 myIp <----> Any
3. 进入Data Pattern设置页,用<< NetXray使用说明之(2) >>里的办法指定
( ( srcPort == 4000 ) && ( dstPort != 8000 ) )
||
( ( srcPort != 8000 ) && ( dstPort == 4000 ) )
第一条的意思是本机向别人发消息,第二条是别人向本机发消息,之所以排除掉
8000,你可以进入oicq chat room看看此时涉及的端口。那么为什么不指定两头
都是4000呢,因为如果过了透明网关之类的,UDP RELAY的时候会改变源端口,
一般都不会是4000了。反过来,如果你发现一个入包的源端口不是4000,他/她应
该在类似sygate的代理后面。不过此时UDP DATA PIPE已经建立,即使他/她在
sygate后面,还是可以利用刚才抓到的IP/PORT和他/她通信,意味着很多事情都
可能发生。
这里假设都通过oicq.exe通信,如果用自己写的程序与oicq.exe通信,源端口不
必非是4000,可以任意指定。
4. 算了,还是详细说说条目3中高级过滤规则的指定
a. 用Toggle AND/OR把最上层调成OR
b. 选中OR,然后Add AND/OR增加两个上去,分别用Toggle AND/OR调成AND
c. 选中第一个AND,然后Add Pattern,选中增加的Pattern,选择
Packet 34 2 Hex,从1开始输入 0F A0,就是0x0fa0的意思,
srcPort == 4000
d. 选中第一个AND,然后Add NOT,选中增加的NOT,用Toggle NOT确认已经调成
NOT,选中NOT,然后Add Pattern,选中增加的Pattern,选择
Packet 36 2 Hex,从1开始输入 1F 40,就是0x1f40的意思,
dstPort != 8000
e. 选中第二个AND,重复"类似"c、d的步骤,分别指定srcPort != 8000以及
dstPort == 4000
f. 选中最上层的OR,看看summary,是否符合你预想的逻辑表达式,如果不符合,
继续调整,直至正确。
虽然这里是针对oicq.exe设置高级过滤规则,但这是一个很完整而又略显复杂的设置
说明,对<< NetXray使用说明之(2) >>是个很好的补充。