魔力宝贝账号登录分析

来源:互联网 发布:白岩松 抑郁 知乎 编辑:程序博客网 时间:2024/04/28 13:16

国服魔力宝贝的POLCN_Launcher详细分析报告


一、登录通讯协议


可以看到来回共5个包

从包的长度大致猜测下,如下:

1、握手包

2、服务端秘钥表

3、本地秘钥表

4、账号请求登录数据

5、登录认证返回数据


二、程序主体部分

查看程序的区段可以得知有upx压缩壳,方便静态分析直接脱了



三、秘钥表协议结构

封包分析:

Send

1、握手包(固定)

00 00 00 01 00 00 00 08 

2、本地秘钥发送给服务端

00 00 01 00 ->Size

39 30 38 37 34 43 39 43 30 36 37 38 38 36 37 30 45 44 33 38 34 37 34 34 43 46 45 39 45 46 36 38 34 46 41 32 44 36 30 38 34 34 44 39 41 37 39 38 41 39 39 34 33 35 31 33 45 41 44 43 30 42 30 46 41 41 36 31 42 38 33 38 44 46 41 39 33 46 36 32 37 37 33 38 32 35 31 33 46 41 36 41 38 45 36 36 37 31 42 41 37 46 37 38 33 44 41 43 31 34 42 36 45 44 33 42 37 45 30 44 46 42 38 37 34 36 44 31 33 44 42 36 37 43 44 42 35 32 34 34 32 33 42 33 39 31 46 38 39 33 41 35 43 46 31 30 37 41 38 42 37 36 35 31 44 42 30 30 45 43 44 33 37 45 37 41 45 36 32 30 38 32 34 37 37 33 31 31 35 30 38 43 31 37 35 31 32 44 31 33 37 35 34 45 34 46 39 31 44 32 39 39 41 35 32 36 44 46 33 33 44 44 37 41 38 43 32 44 37 42 32 34 46 42 34 46 34 31 30 32 46 39 42 32 30 37 46 46 41 30 33 36 44 42 37 32 ->CliKey

Recv

1、服务端秘钥

00 00 00 00 

00 00 00 01 

32  ->SevKeyType

00 00 01 00  ->Size=0x100

66 34 38 38 66 64 35 38 34 65 34 39 64 62 63 64 32 30 62 34 39 64 65 34 39 31 30 37 33 36 36 62 33 33 36 63 33 38 30 64 34 35 31 64 30 66 37 63 38 38 62 33 31 63 37 63 35 62 32 64 38 65 66 36 66 33 63 39 32 33 63 30 34 33 66 30 61 35 35 62 31 38 38 64 38 65 62 62 35 35 38 63 62 38 35 64 33 38 64 33 33 34 66 64 37 63 31 37 35 37 34 33 61 33 31 64 31 38 36 63 64 65 33 33 32 31 32 63 62 35 32 61 66 66 33 63 65 31 62 31 32 39 34 30 31 38 31 31 38 64 37 63 38 34 61 37 30 61 37 32 64 36 38 36 63 34 30 33 31 39 63 38 30 37 32 39 37 61 63 61 39 35 30 63 64 39 39 36 39 66 61 62 64 30 30 61 35 30 39 62 30 32 34 36 64 33 30 38 33 64 36 36 61 34 35 64 34 31 39 66 39 63 37 63 62 64 38 39 34 62 32 32 31 39 32 36 62 61 61 62 61 32 35 65 63 33 35 35 65 39 32 66 37 38 63 37  =>SevKey1

00 00 01 00  ->Size=0x100

36 35 38 33 46 37 39 46 44 32 38 31 33 42 37 39 46 30 38 43 37 32 37 46 33 41 33 42 30 44 42 31 44 44 37 43 32 46 46 44 44 31 42 44 39 37 38 41 38 44 41 45 41 32 43 32 31 44 31 37 43 43 41 43 41 34 33 44 34 38 33 30 32 36 45 42 36 30 34 30 32 32 42 46 46 36 35 44 33 45 45 36 41 37 42 43 42 32 44 46 34 34 35 33 44 37 46 45 30 30 32 37 36 31 36 43 39 32 46 38 31 30 34 35 34 36 35 42 43 45 46 31 41 42 45 31 45 43 34 44 37 46 39 37 32 30 42 45 31 35 37 31 30 33 30 38 36 30 33 35 39 39 39 44 32 42 41 34 37 30 37 36 34 41 37 34 31 44 38 44 46 33 43 31 35 39 35 35 31 36 46 38 36 46 38 39 42 39 36 45 34 46 36 32 44 38 33 36 46 45 35 34 39 34 32 35 30 44 45 45 46 31 38 46 36 38 31 36 44 38 37 39 39 39 32 46 44 46 34 39 37 46 32 45 36 34 36 45 45 39 34 38 44 30 45 39  =>SevKey2

四、CliKey的生成

通过对服务端秘钥表返回处理逆向分析到一下代码:


用过MakeKeyTable生成的2份 KeyTable 分别用于加密,解密

五、账号密码包的加密

账号密码包分析:

明文包(Size = 0x18)

00 15 0A 00 00 00 09 

04 74 65 73 74 ->len + 账号

06 31 32 33 34 35 36 ->len + 密码

00 00 00 0B 00  

加密后(Size = 0x20)

00 00 00 18 00 00 00 17 ->头部

37 F2 5C 0B 27 4F DE EA 54 54 77 33 E0 9C C6 80 32 61 BE E9 5B B3 F3 12  ->加密数据


加密使用blowfish的算法

1、初始化blowflsh的秘钥表Ctx


2、对于源数据加密


包总长度 循环 每次 处理8个字节

六、登录认证状态反馈解密

解密Ctx初始化


解密方式与加密雷同,也是8个字节处理



0 0