首页
社区
课程
招聘
[求助]一个老游戏(网金),战斗有加密,但是不清楚是什么意思,求大侠分析下看看
发表于: 2020-11-15 16:17 5525

[求助]一个老游戏(网金),战斗有加密,但是不清楚是什么意思,求大侠分析下看看

2020-11-15 16:17
5525

F4 44 1F 30 81 79 F6 05 01 01 00 01 00 01 A0 0A 05 00 8C 44 92 00 00 00 16 00 02 00 00 00 0A 发送
已经分析出81 79 F6 05 是怪的代码 8C 44 92 00 为加密字信息
攻击的时候客户端发出
F4 44 12 DF 0F BC 03 00 37 64 C6 F5 05 07 00 00 00 04 发送
0F BC 03 00 为自己账号E9 03 00 00变形得到
64 C6 F5 05 为怪81 79 F6 05变形得到

 

尝试加密字不变 各个账号登录得到
怪变形代码 , 账号变形代码 , 账号10进制 ,账号16进制 , 变形得到的10进制
5A C6 F5 05 , 3B BC 03 00 ,账号992 ,E0 3 0 0 , 244795
5D C6 F5 05 , 3D BC 03 00, 账号993 , E1 3 0 0, 244797
5C C6 F5 05 , 3F BC 03 00 ,账号994 , E2 3 0 0 ,244799
5F C6 F5 05 , 3D BC 03 00, 账号995, E3 3 0 0 ,244797
5E C6 F5 05 , 3B BC 03 00 ,账号996, E4 3 0 0 , 244795

 

61 C6 F5 05 05 BC 03 00 账号997 E5 3 0 0 244741
60 C6 F5 05 07 BC 03 00 账号998 E6 3 0 0 244743
63 C6 F5 05 05 BC 03 00 账号999 E7 3 0 0 244741
62 C6 F5 05 0B BC 03 00 账号1000 E8 3 0 0 244747
65 C6 F5 05 0D BC 03 00 账号1001 E9 3 0 0 244749
64 C6 F5 05 0F BC 03 00 账号1002 EA 3 0 0 244751
67 C6 F5 05 0D BC 03 00 账号1003 EB 3 0 0 244749
66 C6 F5 05 0B BC 03 00 账号1004 EC 3 0 0 244747
69 C6 F5 05 05 BC 03 00 账号1005 ED 3 0 0 244741
68 C6 F5 05 07 BC 03 00 账号1006 EE 3 0 0 244743
6B C6 F5 05 05 BC 03 00 账号1007 EF 3 0 0 244741
6A C6 F5 05 1B BC 03 00 账号1008 f0 3 0 0 244763
6D C6 F5 05 1B BC 03 00 账号1009 f1 3 0 0 244763
97 9A F5 05 1D BC 03 00 账号1011 F3 3 0 0 244765
71 C6 F5 05 05 BC 03 00 账号1013 f5 3 0 0 244741
72 C6 F5 05 0B BC 03 00 账号1016 f8 3 0 0 244747
7B C6 F5 05 05 BC 03 00 账号1023 FF 3 0 0 244741

 

7A C6 F5 05 FB BB 03 00 账号1024 0 4 0 0 244731
81 B9 F5 05 05 C4 03 00 账号1029 5 4 0 0 246789
72 B9 F5 05 0B C4 03 00 账号1272 f8 4 0 0 246795
求大侠帮忙分析下加密算法


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

最后于 2020-11-15 16:19 被江南风zj编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 5291
活跃值: (4768)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
这个是调试才知道
2020-11-15 16:36
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
会调试么?可以有偿调试
2020-11-17 14:30
0
雪    币: 5
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
动态加密分析出来没有,留下联系方式共同研究
2021-4-27 17:30
0
雪    币: 393
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5

路过你的帖子,看了下,也在游戏里面跟踪分析了下,很显然,你没有分析过游戏,光看封包内容,我分析过游戏然后有了以下分析


首先重复下你的叙述


据你描述


F4 44 1F 30 81 79 F6 05 01 01 00 01 00 01 A0 0A 05 00 8C 44 92 00 00 00 16 00 02 00 00 00 0A 发送


已经分析出81 79 F6 05 是怪的代码 8C 44 92 00 为加密字信息


攻击的时候客户端发出F4 44 12 DF 0F BC 03 00 37 64 C6 F5 05 07 00 00 00 04 发送


0F BC 03 00 为自己账号E9 03 00 00变形得到


64 C6 F5 05 为怪81 79 F6 05变形得到


然后我们来计算下, 计算全部都是以十六进制来计算


首先,


帐号是 3E9


变形帐号是 0003BC0F


变形怪物代码是 05F5C664


他变形代码是异或来的,已知条件就这三个,怪物代码我们现在是不知道的,帐号和变形帐号我们已经知道了


那就这么首先先计算出他的异或代码是什么


用帐号和变形帐号代码异或就可以得出


3E9 xor 0003BC0F = 3BFE6


3BFE6就是变形代码,是用来异或帐号和怪物代码变形的


然后用变形代码异或变形怪物代码还原怪物代码


3BFE6 xor 05F5C664 = 5F67982


这样我们就知道了他的怪物代码是这个


按照游戏的计算这个是计算出来的怪物代码


5F67982 除以 5F5E100 求余数 9882  注意这里不是要求商,是要求余数


9882 除以 186A0 求余数 9882


有些人是不是觉得奇怪5F5E100和186A0是什么


这个是游戏计算怪物代码的5F5E100是基础代码,186A0是怪物数量的代码,因为怪物通常不是一个,这个就是用来区分怪物数量的


怪物代码计算首先要,怪物代码加基础代码 然后加上,怪物数量从0到怪物总数量循环乘以怪物数量代码186A0然后才得出完整的怪物代码


这个原理之前就有前辈在网络封包加解密以此为例子做了讲解


那么最后得出他的怪物代码是


9882 十进制就是 39042



以上计算都是用十六进制计算的



我们计算出的DF指令发送变形代码是由5F67982变形来的,而你30指令请求发送的是5F67981 很显然你这个封包不是对应这个DF指令的,换句话说


你的30指令封包是错的,你搞错了30指令封包。


可以确定的是变形代码就是根据30指令发送的那个加密代码计算来的,按照游戏的计算你那个加密代码也对不上,所以才说你这个30指令封包是搞错的


30指令按照网络上前辈发布的分析是游戏发送请求战斗的指令,DF是战斗指令吧



至此分析完毕


因为这里根据登录帐号和变形代码异或就可以知道了变形代码也就不用赘述变形代码的计算方式了


想知道变形代码的计算方式可以跟下游戏,他每一次战斗变形代码都不一样的,每次都是随机生成的,没有任何规律,


有一点是肯定的


那就是变形代码都是根据30指令发送的那个代码计算出来的,一般在30指令倒数第十三个字节上面吧 ,顺数的话是没规律的,倒数是有规律的。




以上是个人分析,有不对的地方欢迎各位前辈指出。个人水平有限!!







最后于 2021-5-30 18:53 被飞飞火花编辑 ,原因:
2021-5-30 18:49
0
雪    币: 180
活跃值: (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6

本人也是有研究网金 可惜剩下封包验证找到不会分析 不然可以帮到你

F4 44 1F 30 81 79 F6 05 01 01 00 01 00 01 A0 0A 05 00 8C 44 92 00 00 00 16 00 02 00 00 00 0A

02 00 00 00 0A= 02是动作封包(随机生成1到5)0A封包验证

战斗封包首先你要过封包验证,除非你玩的是本地服务器


009D088E    99              cdq

009D088F    F7F9            idiv    ecx

009D0891    8BC2            mov     eax, edx                         ; edx来这哪里?

009D0893    40              inc     eax

009D0894    25 FF000000     and     eax, 0FF                         ; 关键

009D0899    83F8 0C         cmp     eax, 0C

009D089C    0F87 A5000000   ja      009D0947

009D08A2    FF2485 A9089D00 jmp     dword ptr [eax*4+9D08A9]         ; 动态封包

009D08A9    47              inc     edi

009D08AA    099D 00DD089D   or      dword ptr [ebp+9D08DD00], ebx

009D08B0    00E6            add     dh, ah

009D08B2    089D 00EF089D   or      byte ptr [ebp+9D08EF00], bl

009D08B8    00F8            add     al, bh

009D08BA    089D 0001099D   or      byte ptr [ebp+9D090100], bl

009D08C0    000A            add     byte ptr [edx], cl

009D08C2    099D 0013099D   or      dword ptr [ebp+9D091300], ebx

009D08C8    001C09          add     byte ptr [ecx+ecx], bl

009D08CB    9D              popfd

009D08CC    0025 099D002E   add     byte ptr [2E009D09], ah

009D08D2    099D 0037099D   or      dword ptr [ebp+9D093700], ebx

009D08D8    0040 09         add     byte ptr [eax+9], al

009D08DB    9D              popfd

009D08DC    00E8            add     al, ch

009D08DE    8A2F            mov     ch, byte ptr [edi]

009D08E0    0200            add     al, byte ptr [eax]

009D08E2    8BD8            mov     ebx, eax

009D08E4    EB 61           jmp     short 009D0947

009D08E6    E8 05300200     call    009F38F0                         ; 2

009D08EB    8BD8            mov     ebx, eax

009D08ED    EB 58           jmp     short 009D0947

009D08EF    E8 14300200     call    009F3908                         ; 3

009D08F4    8BD8            mov     ebx, eax

009D08F6    EB 4F           jmp     short 009D0947

009D08F8    E8 8F300200     call    009F398C                         ; 4

009D08FD    8BD8            mov     ebx, eax

009D08FF    EB 46           jmp     short 009D0947

009D0901    E8 12310200     call    009F3A18                         ; 5

009D0906    8BD8            mov     ebx, eax

009D0908    EB 3D           jmp     short 009D0947

009D090A    E8 8D310200     call    009F3A9C                         ; 6

009D090F    8BD8            mov     ebx, eax

009D0911    EB 34           jmp     short 009D0947

009D0913    E8 A8310200     call    009F3AC0                         ; 7

009D0918    8BD8            mov     ebx, eax

009D091A    EB 2B           jmp     short 009D0947

009D091C    E8 D3310200     call    009F3AF4                         ; 8

009D0921    8BD8            mov     ebx, eax

009D0923    EB 22           jmp     short 009D0947

009D0925    E8 FE310200     call    009F3B28                         ; 9

009D092A    8BD8            mov     ebx, eax

009D092C    EB 19           jmp     short 009D0947

009D092E    E8 29320200     call    009F3B5C                         ; 10

009D0933    8BD8            mov     ebx, eax

009D0935    EB 10           jmp     short 009D0947

009D0937    E8 54320200     call    009F3B90                         ; 11

009D093C    8BD8            mov     ebx, eax

009D093E    EB 07           jmp     short 009D0947

009D0940    E8 7F320200     call    009F3BC4                         ; 12

009D0945    8BD8            mov     ebx, eax




这里就附上如何找关键call和封包call 也许能帮到你


打开wpe 载取加密封包

4B FB B5 E8 BA BB BF BF BF 1C- 加密

加密可以看得出是用BF来异或的

在打开ce 扫BF,然后在载取加密封包

4F FF B1 EC BE BF BB BB BB 18

扫BB,最后得到基址,就用基址+偏移 什么访问这地址(就如OD的BP SEND)

就去喊话 出现关键call和关键封包call(其他技能都是一样)

一般都是返回第一 层 组封包call 第2 和第3 层 功能call

这方法应该和其他游戏都是通用的,也可以一起来研究 请私信我吧



最后于 2021-7-17 13:09 被jychoi编辑 ,原因:
2021-7-17 12:31
0
游客
登录 | 注册 方可回帖
返回
//