中国Linux公社论坛's Archiver

yunfan 发表于 2005-5-22 12:35

LumaQQ Debugger -- casper

这是casper更改的 在windows下分析腾讯协议的工具。
程序来自LumaQQ的一部分。

这个是带jre的, 下载解压就可以运行。
使用方法, casper会马上贴出。 :)

这是下载地址:
http://www.magiclinux.org/people/yunfan/debugger/LumaQQDebugger.zip

casper 发表于 2005-5-22 14:22

LumaQQdebugger的用法

因为云帆的QQHacker是在linux下运行的,所以要分析的话,必须在windows下截包,到Linux下分析,系统切换很麻烦,所以我想找个替代的方案,lumaQQ也自带了一个调试器,我试了一下,还行,但是不支持本地的数据文件输入,为了和QQhacker一致,我就动手改造了一下。本来想把调试器从LumaQQ中单独分离出来,但是牵扯的东西太多,作罢。

[color=red]主要的改动:[/color]
[quote]1.添加了Open Local Data选项,支持后缀为inDat,outDat的文件。
2.支持QQhacker的help文件,读入本地文件后,会显示出对应命令的帮助信息。
3.修改了初始参数的输入方式,Luma的调试器需要自己动手输入登录回复包的内容,现在你只需要打开截取的回复包数据文件,就可以了。
4.修改了一处包解析的问题
[/quote]

[color=red]存在的问题:[/color]
[quote]在某些包的解析上还有问题,估计是因为QQ2005的包内容有所变化,按照2004的包格式解析,所以会出错,暂时没有能力修补这个bug:(
[/quote]

[color=red]使用方法:[/color]
    1.运行debugger.bat文件,出现软件主界面(这个包自带了Java运行环境)

[img]http://www.magiclinux.org/people/yunfan/debugger/images/mainwindow.jpg[/img]

    2.首先你要做的就是打开一个回复包数据的文件,程序会弹出对话框要你输入QQ号和密码,这一步生成SeesionKey,注意你每次登录的SeesionKey不同,所以,只能用本次登录的Key解密本次登录的数据。

[img]http://www.magiclinux.org/people/yunfan/debugger/images/open0022.jpg[/img]

    如果你选择的输入包是登录回复包的话,程序会弹出对话框让你输入对应的QQ号和密码

[img]http://www.magiclinux.org/people/yunfan/debugger/images/open0022-1.jpg[/img]

    点击Ok以后,如果你的输入是正确的,那么在左边Packet一栏中将会出现一项Login Reply Packet,表示现在输入的是一个登录回复包,同时在Packet Format窗口中显示这个包命令的帮助文件。如果什么都没有出现,说明你的输入有误,可能是密码错了,也可能是号码错了,再来一遍吧:)

[img]http://www.magiclinux.org/people/yunfan/debugger/images/open0022-2.jpg[/img]

    选中出现的包,在点击Bytes标签,你就可以看到解密过后的数据。

[img]http://www.magiclinux.org/people/yunfan/debugger/images/open0022-3.jpg[/img]

    3.好了,现在我们已经有了SeesionKey,就可以分析包了,抓包,打开数据文件,Prase as Packet,Bytes……后面的和Luma的介绍差不多了,我偷个懒,你可以到下面的网址看看:)

http://lumaqq.linuxsir.org/article/lumaqq_debugger_part_1.html


    差不多就是这样了,我的Java也是刚学,大家将就着用吧。

yunfan 发表于 2005-5-22 14:55

鼓掌, 啪, 啪, 啪

小锁 发表于 2005-5-22 14:57

好啊,好啊!

xixixi 发表于 2005-7-20 18:00

好象好多无效包 :( keepalive 包也无效?倒啊。。。

casper 发表于 2005-7-20 18:59

是解析失败么?一次登陆的SeesionKey只能解那一次的包,如果你曾经离线过,或者数据是其它QQ号的,就会解析失败,还有注意输入数据inDat和输出数据outDat,把debugger关了再重新来一遍,看看有没有问题。

yunfan 发表于 2005-7-20 19:12

另外,我说明一下, 在QQ2005 beta1 的协议中, 一些包的细节发生了变化,
不可以Helper文件中的描述为准。 具体可以参考eva 0.3.0 相关部分代码。

xixixi 发表于 2005-7-20 23:35

[quote:a59b9b97f6="casper"]是解析失败么?一次登陆的SeesionKey只能解那一次的包,如果你曾经离线过,或者数据是其它QQ号的,就会解析失败,还有注意输入数据inDat和输出数据outDat,把debugger关了再重新来一遍,看看有没有问题。[/quote]

是同一次登陆的, 某些包是可以解析的.只是不可以解析的数量有点多而已 :(
也注意到了 inDat 和 outDat 的问题了.
还有就是 outDat 不能解析的比 inDat 的多

今天没什么时间只是随便试了一下
明天编译好 qqhacker 后,可以看看是什么问题了
也许是 qq2005 的协议更新问题

在此感谢 casper 和 yunfan 的辛勤劳动 :)

casper 发表于 2005-7-21 13:19

嗯,有些包确实不能解析,不过LumaQQ实在是太庞大了,依我的Java水平暂时没有办法解决这个问题,我到目前分析协议都是用的这个东西,还行,未知包的解析好象没有问题:)

xixixi 发表于 2005-7-21 15:18

[quote:b5ec6fc616="casper"]嗯,有些包确实不能解析,不过LumaQQ实在是太庞大了,依我的Java水平暂时没有办法解决这个问题,我到目前分析协议都是用的这个东西,还行,未知包的解析好象没有问题:)[/quote]

不能解析登陆包 :( 用 passwordkey 解析的时候失败 :(
其他好象没发现什么大问题了:)

xixixi 发表于 2005-7-22 15:06

[quote:a7f548c7a9="xixixi"][quote:a7f548c7a9="casper"]嗯,有些包确实不能解析,不过LumaQQ实在是太庞大了,依我的Java水平暂时没有办法解决这个问题,我到目前分析协议都是用的这个东西,还行,未知包的解析好象没有问题:)[/quote]

不能解析登陆包 :( 用 passwordkey 解析的时候失败 :(
其他好象没发现什么大问题了:)[/quote]

问题解决了,解析登陆包的时候需要用随机密钥解密加密的片段,而不是整个包解。另外发现如果登陆模式是隐身的话,中间的“固定”不变的字符串会改变

casper 发表于 2005-7-23 10:02

COOL! 如果发现了以前未知内容的含义,那么你也可以完善这个协议了,加油:mrgreen:

xixixi 发表于 2005-7-27 14:25

还有两个发现。
1、在某些机器上似乎没有发现解析错误,但是某些机器就比较多
2、如果出现解析错误,可以把包头和包尾删除,然后用Decrypt with session key
来当 frament 来解,通常都可以成功

coolstar14 发表于 2005-11-18 10:40

为什么我下载的Debugger, 包解析成功了, 但Packet Format里没有对应的帮助信息呢.

casper 发表于 2005-11-18 10:52

没有对应帮助信息的包就是还没有分析的包,不过目前又增加了很多新分析的包,还没有更新,你可以看看协议分析的帖子,或者手动添加到path_to_debugger\help\(in)(out)里面的*.help文件中。

coolstar14 发表于 2005-11-18 17:11

实际情况是
只有登陆回应包的帮助我看到了, 其它的都没有. 在help目录下我也看到了很多的帮助, 但这些也没有显示出来.

casper 发表于 2005-11-18 21:13

不能看到帮助信息的包,都是什么命令的包?

coolstar14 发表于 2005-11-18 22:27

问题找到, 虽然没有完全解决我的疑问, 但总算可以用了.
如果用你提供的Open Local Data打开导出的包, 那么这个包解析后会同步把帮助信息入在Packet Format框里.
如果用Luma提供的直接输入包的内容, 然后用Parse as packet的方法, 虽然也可以解析但这时候是没有改变帮助信息的, 即解析前显示的是什么, 解析后还是显示什么.
同样在选择左侧Packets列表中解析的包时, 对应右侧Input和Bytes是随着选择变化的, 但提示帮助信息也不会变化.

casper 发表于 2005-11-19 10:26

呵呵,这个debugger很不完善,也就是能用而已,我只看了一周的java,目前我的分析都是使用它,其他很多情况没有考虑,如果我有时间的话,会再完善一下,多谢你的意见:)

coolstar14 发表于 2005-11-20 10:32

即然做了, 希望可以做的完善一些.

hbj0331 发表于 2006-3-3 09:47

好厉害啊~

greister 发表于 2006-10-10 11:21

老大厉害呀。

formalin14 发表于 2007-4-24 10:12

linux下不是也有ethereal吗?不过名字叫着wireshark,使用起来跟windows下一模一样。

页: [1]

Powered by Discuz! Archiver 6.1.0F  © 2001-2007 Comsenz Inc.