首页
论坛
课程
招聘
[旧帖] [原创]QVOD HTTP传输数据包结构逆向分析 0.00雪花
2011-9-18 21:09 3024

[旧帖] [原创]QVOD HTTP传输数据包结构逆向分析 0.00雪花

2011-9-18 21:09
3024
通过在网络选项卡中选上仅以HTTP协议传输数据来达到目的。这样子可以方便地观察整个过程。

客户端发送连接请求:
        POST /service HTTP/1.1
        Accept: */*
        Cache-Control: no-cache
        Connection: Keep-Alive
        Content-Length: 68
        Host: 114.246.26.34:8080
        User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;)
        .QVOD protocol..............Md..a.>...4..`}...'U.5..0057BB5855719946  -------数据包data部分

服务端响应:
        Accept: */*
        Cache-Control: no-cache
        Connection: Keep-Alive
        Content-Length: 68
        Host: 211.101.48.70:2596
        User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1;)
        .QVOD protocol..............Md..a.>...4..`}...'UQVOD0066E67A1F1C15F6 --------数据包data部分

HTTP数据包详细内容
                                                              13 51 56 4f .QVO
        44 20 70 72 6f 74 6f 63  6f 6c 00 00 00 00 00 00 D protoc ol......
        00 00 00 00 00 00 00 00  4d 64 ac 80 61 e2 3e 98 ........ Md..a.>.
        a7 90 34 01 82 60 7d a0  1e 80 27 55 f5 35 ee a7 ..4..`}. ..'U.5..
        30 30 35 37 42 42 35 38  35 35 37 31 39 39 34 36 0057BB58 55719946

    从客户端发送的HTTP数据包详细内容来看。有一些固定字段,但有些部分存在不确定性。可以先对这个协议数据结构进行猜测。通过大量的对比后可以从中发现一些比较有特点的地方,通过总结特点可以发现一些规律。经过对比后先假设这个发送数据包的协议结构如下所示:
struct  httpqvod
{
   short int fixed;//always 0x13
   char p2ptype[];
   char unknow[32];
   char unknow[20];
}
选择OD和IDA来逆向分析找出协议结构。
因为我们要尝试去探索发送数据包的结构,由于使用HTTP传输,所以是TCP连接,使用的是send函数。
使用OD attach QvodTerminal.exe进程,OD成功断在了send函数的地方

单步运行几步,跳出系统函数部分。找到调用send的地方。

通过使用IDA加载QvodTerminal.exe分析数据来源。分析函数调用过程

不断地回朔上去,使用OD动态分析找到数据包的内存中变化过程。

这个过程很容易发现004119B7处通过调用call dword ptr[edx+8]来达到跳转的目的

下面通过IDA加载这一部分进行分析,可以发现如下所示

通过mov [esp+54h+var_44],13h来赋值0x13,由此可以得知0x13为固定字节。然后通过的赋值可以判断来下面是协议标识部分的赋值,即是QVOD Protocol或者BitTorrent protocolex是协议标识。
接下来如下所示进行赋值一堆数据,暂时还是标志为unknow[32].然后通过赋值mov esi,offset dword_485038来对赋值一串序列号。

这是有20位的类似UID的一串字符,标识为char client-uid[20]。
所以整个数据结构可以得出为
struct  httpqvod
{
   short int fixed;//always 0x13
   char p2ptype[];//固定值,QVOD Protocol 或者 BitTorrent protocolex
   char unknow[32];
   char client-uid[20];//包含一些版本、哈希值等信息
}

参考书籍:《IDA.Pro代码破解揭秘》第七章
QVOD HTTP数据包结构分析.doc

谢谢各位

【看雪培训】《Adroid高级研修班》2022年夏季班招生中!

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (14)
雪    币: 8
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
symanli 活跃值 2011-9-20 15:51
2
0
没看到神马东西。。
雪    币: 109
活跃值: 活跃值 (45)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
pushebp 活跃值 2011-9-20 16:10
3
0
要激活码可以直接说,别这么水啊
雪    币: 135
活跃值: 活跃值 (251)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
Nermor 活跃值 1 2011-9-21 08:30
4
0
传输数据包结构 三下两下就这样分析啦? 不过瘾 哈哈
雪    币: 24
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
达人张 活跃值 2011-9-21 08:54
5
0
小弟还是新手,没有入门,看不懂
雪    币: 79
活跃值: 活跃值 (10)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
moonflow 活跃值 2 2011-9-21 09:22
6
0
对不起,没有贴图导致的。已经更改,谢谢。
雪    币: 79
活跃值: 活跃值 (10)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
moonflow 活跃值 2 2011-9-21 09:27
7
0
不好意思,没有贴图,下面放了文档,以为会去下载文档看,我错了,已经把图都贴上了,谢谢!

大牛请飘过,这是超菜的一篇协议分析文章

特别说明,目的是要激活码,但是是为了更好地和大家一起学习交流。仅此而已,谢谢!(看雪上的文章都是可以看的)
雪    币: 333
活跃值: 活跃值 (10)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
yarpee 活跃值 1 2011-9-21 10:21
8
0
不多说,楼主懂的,支持悚水原创!
雪    币: 0
活跃值: 活跃值 (24)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
tihty 活跃值 2 2011-9-21 11:16
9
0
学习一下看看..
雪    币: 218
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dclnet 活跃值 2011-9-21 11:24
10
0
表示不是很懂。。。但是精神可嘉,顶の。。。。
雪    币: 375
活跃值: 活跃值 (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gegon 活跃值 2011-9-21 13:12
11
0
不错,值得鼓励,希望早日转正!
雪    币: 413
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
smilysas 活跃值 2011-10-9 15:15
12
0
新手入门,学习下先
雪    币: 24
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
duwangsky 活跃值 2013-3-15 15:28
13
0
刚学中,看不懂,不过还是谢谢楼主分享
雪    币: 8
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
jmchen 活跃值 2013-10-28 16:24
14
0
支持原创,协议分析学习中
雪    币: 3
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
zhaopinjob 活跃值 2013-10-29 09:29
15
0
学习了!!!
游客
登录 | 注册 方可回帖
返回