|
想要得到QQ的加密算法,得到QQ的通讯数据只是不到1%的工作量,因为任何抓包软件都能够得到QQ的通讯数据,而且比WPE更好更详细。( m5 L, z/ T1 V
第二步要知道QQ的通讯协议,这个网上能够查询得到) B: y. F$ q" t* ^9 z1 F3 s1 a
第三步才是分析加密算法,这个基本上很难很难 ^^)4 L$ }- Z( w# _ h) I; |3 d+ f
不过伪造UDP包进行QQ的广播欺骗轰炸相对要容易些。
5 v: z5 a0 y4 i4 ]* |/ ~3 U$ j, l8 `, a" v) A: b' b/ b
附:OICQ服务器系统通讯协议# k: T+ w; I1 a, p6 {5 ]2 x
协议说明:
, y& `: O8 I. V0 N1 ~
7 c+ k1 w- J7 C5 a$ }* H' ~) _. o) O$ A' g! U
协议由报文头(T)+发送者(T)+接收者(T)+报文类型(T)+报文长度(L)+报文内容组成
( P. S/ H; W+ }1 X
$ D8 I, ^, {$ _. |' U5 I7 K发送者和接收者是系统内的程序种类,OICQ服务器01,传真服务器02,WEB服务器03,打印服务器是04,聊天服务器是05,OICQ用户是0A。 ' q+ v% `: ]6 T$ ^/ k/ L% D2 u
( o! D/ A0 i7 W8 d Z. I w
OICQ用户到OICQ服务器的通讯协议 引导符 (81+0A+01)
4 J% Q7 [' y$ n
~) ]+ ` r0 h2 r! }报文类型 报文内容 报文说明2 d( j) r- ^" b
0 h" A7 f* f# w$ H8 z4 s; F
01 昵称(S)+肖像(M)+用户密码(S)+性别(T)+年龄(T)+真实姓名(S)+国家/地区(T)+省(T)+市(S)+地址(S)+邮编(S)+学历(T)+毕业院校(S)+职业(T)+电话(S)+寻呼(S)+电邮(S)+爱好(S)+说明(S)+身份验证(T)新用户注册,身份验证用于当有人要将他加入好友时询问是否允许
% q0 O$ C V# f; \% y* K5 O3 y
. W1 W3 T# [% |* \) Q02 服务号(L)+密码(S)+注册方式(T)老用户注册,方式分为0正常,1隐身9 O- o0 n; h' ]( G' m$ y/ v
% ]8 y) _) Q. y03 服务号(L)+对方服务号(L)+内容(S) 发送信息到某人
9 d: y" p9 f1 X/ R: \) T0 l4 m; D3 W- @& c! W% r
04 服务号(L)+组号(L)+内容(S) 广播信息,组号=0为全体4 |+ l9 h2 @- V4 n9 r
; N2 _. _4 ?3 v1 Z! K2 A
05 服务号(L)+朋友服务号(L) 查看朋友资料
- b% D$ l( O2 m. o, i# p* J* d) p5 v- ]& r. z# g e) j9 x2 X
06 服务号(L)+组名称(S) 增加组
1 h4 P8 _$ q& H1 p5 a2 o% K) H. B; q
07 服务号(L)+组编号(T)+组名称(S) 修改组名称0 J% y! c5 y f' o( I0 _
" j7 b' x6 \$ Q( |& x08 服务号(L)+组编号(T) 删除组
' v3 a5 J7 y; P+ h
9 c) a. N/ @8 \% Z$ b0 A% j09 服务号(L)+移动人数(T)+{朋友服务号(L)+目的组号(T)} 移动组成员; i" a! O& I: A
1 K/ a6 V- T! g
0a 服务号(L)+起始编号(L)+回传个数(T)+查找标志(T) 看谁在线上
$ o' c* }# a( S5 k( O5 t! m& b2 a: w
" Y/ Z# P; H: M查找标志 1=向小找 2=向大找
! O7 m. s4 D0 |/ s7 f) W7 x
" g$ W2 h" }5 U) v( m" Z0b 服务号(L)+SQL语句(S) 自定义查找7 r1 b8 `7 r6 v; S, C& d% ?
+ p! B. i, w! V4 Q$ B2 z1 N. H! l
0c 服务号(L)+朋友服务号(L) 增加好友
, N' c, l( V( w, P1 C; l8 ^# N* T5 @; C
0d 服务号(L)+朋友服务号(L)+加入原因(S) 请求加入好友) [3 w6 N y2 W3 j, p. ~
q' P# Z* G7 n- G3 k+ v+ A& J0e 服务号(L)+朋友服务号(L) 删除好友/ r3 c+ q4 k4 b' j6 P( _+ C7 T
( b+ e( n; N4 c, v; l) S- A10 服务号(L)+显示模式(T) 更改显示方式 1上线2隐藏3免打扰4离线
: F' ^- w1 x P* S& y! W. }3 e& J8 n: W; q! {5 F
11 服务号(L)+监视服务号(L) 监视某人谈话
8 W7 ^, v! A; G% J9 h' e7 c! ^3 e# }! u1 |7 S- w* f& ~
12 服务号(L)+昵称(S)+肖像(M)+用户密码(S)+性别(T)+年龄(T)+真实姓名(S)+国家/地区(T)+省(T)+市(S)+地址(S)+邮编(S)+学历(T)+毕业院校(S)+职业(T)+电话(S)+寻呼(S)+电邮(S)+爱好(S)+说明(S)+身份验证(T)更改用户基本信息
* J o8 V, F, C* h: ?3 j& r0 f Y, E+ m* ] P9 U% }
13 服务号(L)+朋友服务号(L)+文件名(S)+文件长度(L) 请求发送文件4 G/ n6 S: ~' H6 y+ Y$ ]
5 d3 C6 |* m" R+ [' _1 t& R14 服务号(L)+朋友服务号(L)+允许/拒绝 是否允许发送文件
# M' ?% j9 ~, M. g6 \/ C5 W9 G- ~: f
15 服务号(L)+朋友服务号(L)+文件内容(B) 发送文件6 R5 ]) a0 w+ t, H- |/ X$ [
3 }( W% y$ |' i, _4 {5 @* U
16 服务号(L) 连接测试报文
- B8 n* ^/ ?$ ?* T
+ g) ]% W$ z* E7 x( T9 U. y17 服务号(L)+朋友服务号(L)+同意标志(T) 应答对方请求加入好友
* I8 a+ o' J& V$ ^+ j$ _( S# U( ~$ Q; z) v6 j
0=拒绝
& f* k* y3 W* N& V" [- n6 ~ Q
, F$ ]. f- L/ b+ k. Y0 _5 u& S7 M0 V1=同意- J1 T/ x6 R5 y, W
- A1 ^0 ~3 K0 z1 g) ?3 N; A ' [+ b. |: H( h6 a$ W
7 k `9 G* U( l1 c( M- k, B; d
OICQ服务器到OICQ的通讯协议, `) T) n% y' P3 r
( v- c2 }5 h: r" I5 B) r4 N) Y) ^
报文类型 报文内容 报文说明8 | @9 c O4 J$ @- b& q) P
/ L5 k( T& W2 T9 ?6 R0 K; C) S$ d. l
01 成功/失败(T)+服务号(L) 新用户注册结果返回
' h" g* M3 T- Y( _( F& \2 Q( ?
4 C4 j# x3 K, M* Z02 成功/失败(T)+组个数(T)+{组名称(S)+组编号(T)+朋友个数(T)+{朋友服务号(L)+肖像编号(T)+朋友状态(T)+朋友昵称(S)] 老用户注册结果返回7 k7 P/ @2 v* B7 u7 h
% P+ R9 M) d% u! o9 b& O% h8 U% ^# |
朋友状态- c# u6 Y1 q5 x; q8 w H
5 q' k0 W& M& K+ _7 \1 m# X
1=上线=2隐藏=3免打扰4离线! {- r% f9 H) p4 }1 R, H
9 P* H8 ~1 s8 M* a8 c03 标志(T) + 朋友服务号(L)+信息(S)+信息类型(T) 标志 1=系统 2=用户
( G! g; }; j9 h0 u5 H' ?* H
$ u M' ~) i7 r. @, D发送消息,服务号=0是系统消息, v( V5 s9 L" h& h+ Y
, J+ q, l7 v) k3 P1=用户某某已经把你加为好友
! y1 |( W7 \% v% g6 D) K3 J
" }" D* t: L8 l# {! ~( o2=用户某某请求你通过身份验证& r) Z& H R( T3 o4 e- u- C
: Y- \" o/ N9 _
3=用户某某同意了你的验证要求, \3 K8 G( A+ `6 Q: q d, {2 C
& l! _& u* S' L& {
4=用户某某拒绝了你的验证请求
- ^$ y! J" a# |1 k1 J; ?. n1 Y, _9 Q
04 成功/失败(T)+朋友服务号(L)+昵称(S)+肖像(M)+性别(T)+年龄(T)+真实姓名(S)+国家/地区(T)+省(T)+市(S)+地址(S)+邮编(S)+学历(T)+毕业院校(S)+职业(T)+电话(S)+寻呼(S)+电邮(S)+爱好(S)+说明(S)朋友信息回送
2 P) Y/ {4 M8 ~8 V0 q! Z3 y
" d5 a) h) K9 s1 M9 q05 成功/失败(T)+组编号(T)+组名称(S) 增加组结果回送 1/0
8 f- B8 M2 P1 v; O. v& J' G- C( b3 W; g7 i: \9 u
06 成功/失败(T)+组编号(T)+组名称(S)修改组名称结果回送1/0
! u* ?1 p( v4 Y3 M( ]. i2 \2 `) J$ c4 ~2 r6 E
07 成功/失败(T)+组编号(T) 删除组结果回送1/0+ u$ i# v9 _* e* H, q# K
1 o% w$ f7 n7 @; k
08 成功/失败(T) 移动组成员结果回送1/0
9 u1 e) D' }; m. N8 t: \4 n0 g' {6 J I$ A @8 i
09 成功/失败(T)+在线个数(T)+{服务号(L)+昵称(S)+肖像(M)+省(T)+市(S)} 查找在线人员结果回送
9 }9 r" k7 F3 Z O* I$ r* x
; T) t; u6 v; d# o0a 成功/失败(T)+找到个数(T)+{服务号(L)+昵称(S)+肖像(M)+省(T)+市(S)} 自定义查找结果回送(最多50)0 H u! ~' m6 W) P
[& }" j8 O0 ~# i/ O0b 标志(T)+朋友服务号(L) 增加好友结果回送标志
7 L- b+ s9 Y! @# M& @4 N- T! j4 G9 ?2 h* u+ B: i
0=数据库失败
2 G7 l1 @/ [7 C g/ }8 G1 `) S. p. t4 X8 `- J
=1成功# @1 P8 @" y l5 b" m0 p! Y" _
8 z( P1 V1 G8 |=2需要身份验证0 Q" s' g/ V0 x4 S+ W
/ W0 F6 G! E4 _$ Y. \9 ~4 L) V' x* j
=3对方不允许加入
0 k* R. W: ?( x w1 T& m
& c7 y, c, u8 S% C1 N! x=4需要身份验证且不在线
" [4 B0 T3 R: T( Q' \- Z
8 R# T4 \2 B% ^/ u4 |0c 朋友服务号(L)+昵称(S)+肖像号(M)+朋友状态(T) 给在线用户增加好友! [9 T9 }# S6 n3 n& u! K
8 L8 @9 J1 F* ^; f" [: W' S
0e 成功/失败(T)+朋友服务号(L) 删除好友结果回送) c; Q. U! e( i) i# ^
4 c0 |* @. i, c5 G' a& l10 服务号(L)+显示模式(T) 显示模式回送 =1上线=2隐藏=3免打扰4离线
7 F+ D/ Z" r0 N9 g! L
' ~2 m/ g. d7 {11 成功/失败 更改用户基本信息结果回送
# G$ @7 i, w2 Q! }/ {% e& Q: w; f% p. i5 \& Q6 t U
12 朋友服务号(L)+文件名(S)+文件长度(L) 请求发送文件
" Q0 \( L' K- o0 r( \4 g2 @8 w; j9 n$ N: \
13 朋友服务号(L)+允许/拒绝 是否允许发送文件 1允许 0拒绝$ k$ c) C0 g) W+ P8 }0 \- K
1 J- D; \5 [5 h* H ~9 y9 K- ?14 朋友服务号(L)+文件内容(B) 发送文件
. l& Y3 A" [) [% m
' _. f# N5 A0 f4 `2 k15 朋友服务号(L)+当前状态(T)朋友状态回送(系统发送)=1上线=2隐藏=3免打扰4离线
) h# o0 I7 `. r- @) F/ S+ a& K4 W: [5 s0 Z( q, P$ F0 f& B* a3 m
16 服务号(L) 连接测试 |
|