首页
社区
课程
招聘
[讨论]已初步模拟出魔兽世界客户端通讯(机器人)
发表于: 2011-12-25 19:55 27359

[讨论]已初步模拟出魔兽世界客户端通讯(机器人)

2011-12-25 19:55
27359
已模拟出整套魔兽世界的安全认证系统(SRP6)和数据包对称加密系统(RC4),但暂时只到登陆验证到和进入角色界面,OPCODE 是在太多了,只能慢慢分析数据包和服务端模拟器源码,下一步要做的是角色的选择、删除和创建了,只要能简单做到移动和操作我的目标就达到了,有在研究的朋友,联系QQ:153466238。

最新进展:

角色枚举数据处理完毕。12-28
角色创建、删除处理完毕。12-30

很多人在关注我的帖子,因为工作原因没有太多时间去继续分析,抽空我会将 SRP6、RC4 部分源代码放出来。

  客户端                                        服务器
  -----------------------------------------------------------------------------
  
  ---------------Connect成功-------------->     初始化 N, g
                                                N.SetHexStr("894B645E89E1535BBDAD5B8B290650530801B18EBFBF5E8FAB3C82872A3E9BB7");
                                                g.SetDword(7);
  I = USER //明文账号
  ---------------Challenge请求(I)--------->     读取DB -> v, s, p
                                                首次通过 p 计算 v, s
                                                s.SetRand(32 * 8);
                                                x1 = hash(s, p)
                                                x.SetBinary(x1, 20) (p = sha_pass_hash)
                                                v = g ^ x % N
                                                存入DB -> v, s
                                                计算 B
                                                b.SetRand(19 * 8);
                                                k = 3 (SRP6a: k = hash(N, g))
                                                b1 = g ^ b % N;
                                                B = v * k + b1 % N
                                                unk1.SetRand(16 * 8) ( or MD5(s) )

  I = hash(USER)   //账号                       <------Challenge应答(B, g, N, s)---
  p = hash(PASS)   //密码
  -----------
  a.SetRand(32 * 8)
  A = g ^ a % N
  x1 = hash(s, p)
  x.SetBinary(x1, 20)
  -----------
  u1 = hash(A, B)
  u.SetBinary(u1, 20)
  k = 3 (SRP6a: k = hash(N, g))
  S1 = g ^ x % N
  S2 = B - S1 * k
  S3 = a + u * x
  S = S1 ^ S2 % N
  -----------非标准奇偶校验HASH算法
  t1[20], t2[20], vK[40]
  -----------偶数校验
  for i := 0 to 15 do t1[i] = S[i*2]
  H1 = hash(t1)
  for i := 0 to 19 do vK[i*2] = H1[i]
  -----------奇数校验
  for i := 0 to 15 do t2[i] = S[i*2+1]
  H2 = hash(t2)
  for i := 0 to 19 do vK[i*2+1] = H2[i]
  -----------HASH vK
  K.SetBinary(vK, 40);
  -----------XOR N,g
  T1 = hash(N) , T2 = hash(g)
  for i := 0 to 19 do T1[i] = T1[i] xor T2[i]
  T.SetBinary(T1, 20);
  M = hash(T, I, s, A, B, K)
  
  ----------------Proff请求(A, M)----------->    u1 = hash(A, B)
                                                 u.SetBinary(u1, 20)
                                                 S1 = v ^ u % N
                                                 S = (A * S1) ^ b % N
                                                 -----------非标准奇偶校验HASH算法
                                                 t1[20], t2[20], vK[40]
                                                 -----------偶数校验
                                                 for i := 0 to 15 do t1[i] = S[i*2]
                                                 H1 = hash(t1)
                                                 for i := 0 to 19 do vK[i*2] = sha[i]
                                                 -----------奇数校验
                                                 for i := 0 to 15 do t2[i] = S[i*2+1]
                                                 H2 = hash(t2)
                                                 for i := 0 to 19 do vK[i*2+1] = sha[i]
                                                 -----------HASH vK
                                                 K.SetBinary(vK, 40);
                                                 -----------XOR N,g
                                                 T1 = hash(N) , T2 = hash(g)
                                                 for i := 0 to 19 do T1[i] = T1[i] xor T2[i]
                                                 T.SetBinary(T1, 20);
                                                 M = hash(T, I, s, A, B, K)

                                                 M2 = H(A, M, K)
                                                 <------Proff应答(M2)-------------

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (35)
雪    币: 0
活跃值: (954)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
2
RC4 只是其中一部分。进游戏的时候,还有4-6套算法。
2011-12-26 10:29
0
雪    币: 120
活跃值: (160)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
脱机G????
2011-12-26 13:16
0
雪    币: 292
活跃值: (126)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
其实不是,进游戏的加密算法就是 openssl 的 EVP_encrypt 对称加密,只有一套的,只是WOW 应用了 drop1024 所以看上去加密算法不一样,你无法单独进行某个封包的解密而已。就是说必须连续的解密,顺序才行。
2011-12-26 14:47
0
雪    币: 292
活跃值: (126)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
呵呵 就是脱机挂
2011-12-26 14:48
0
雪    币: 107
活跃值: (404)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
哈哈..强帖留名..有点意思....楼主努力啊..
2011-12-26 16:03
0
雪    币: 125
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
难到市面上还没有?
2011-12-26 18:57
0
雪    币: 325
活跃值: (97)
能力值: ( LV13,RANK:530 )
在线值:
发帖
回帖
粉丝
8
prepare for Diablo 3?
2011-12-27 12:44
0
雪    币: 3053
活跃值: (891)
能力值: ( LV13,RANK:1300 )
在线值:
发帖
回帖
粉丝
9
脱机??随机代码验证怎么解决??
服务端会发过来一个数据包,这个数据包被精心构造,类似一个DLL。恩,这个数据包就是一段代码,作用是验证内存中的WOW代码及数据将结果发给服务器。
这样的数据包有好多,天晓得他们都干了什么。
2011-12-27 13:55
0
雪    币: 292
活跃值: (126)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
10
skyfire 出406模拟器的哪天起,早就不再是问题了~
2011-12-28 16:10
0
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
11
向强人致敬~
2011-12-28 16:32
0
雪    币: 43
活跃值: (251)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
12
有意义吗?人家隔三差五的修改一次算法,你折腾去吧
2011-12-28 16:42
0
雪    币: 292
活跃值: (126)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
13
修改?暴雪313到现在就没改过算法~
2011-12-28 21:41
0
雪    币: 2314
活跃值: (2205)
能力值: (RANK:400 )
在线值:
发帖
回帖
粉丝
14
我是来膜拜LZ的...
2011-12-28 22:47
0
雪    币: 952
活跃值: (1821)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
skyfire ?406模拟器? 这个是什么东西?
2011-12-30 04:42
0
雪    币: 292
活跃值: (126)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
16
skyfire 是魔兽世界的服务端模拟器啊,国外的一个开源项目,前身由 MaNGOS(2005-2009),TrinityCore(2008-2011)。
2011-12-30 13:39
0
雪    币: 3
活跃值: (198)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
17
纯粹来膜拜lz的
2011-12-30 14:32
0
雪    币: 66
活跃值: (25)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
18
开源SF没响应WARDEN的包吧?能解决connect redirecttion和random opcode很NB了!膜拜!
2011-12-31 09:59
0
雪    币: 207
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
进来看了余下,楼主的头像很给力
2012-1-1 09:47
0
雪    币: 90
活跃值: (91)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20
潜力贴留名.Opera插图补丁.颜色补丁.字数补丁..
2012-1-1 10:18
0
雪    币: 237
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
顶脱机~~~~~~~~~~~~~~~
2012-1-7 23:54
0
雪    币: 416
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
凡是做脱机的,我都顶.
2012-1-19 10:05
0
雪    币: 603
活跃值: (40)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
23
LZ把源码也发出来吧
2012-1-19 10:10
0
雪    币: 41
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
好想学啊。膜拜ORZ
2012-1-23 20:11
0
雪    币: 303
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
25
 膜拜LZ
2012-2-12 11:51
0
游客
登录 | 注册 方可回帖
返回
//