吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 12818|回复: 32
收起左侧

[Android 原创] FGO封包中英灵、礼装序列的分析

[复制链接]
locbytes 发表于 2018-10-18 13:19
本帖最后由 locbytes 于 2018-10-19 12:29 编辑

本分析贴旨在讲解如何获取FGO网络封包中的个体数据,包括英灵个体数据,礼装的个体数据

Q:这个有什么用?
A:用得上的人自然知道...比如做wiki的,一次可以抓取六个英灵的数据,还能知道对应的数据都是谁的。

代码是python的,直接上代码
[Python] 纯文本查看 复制代码
friendNum = len(json_data["cache"]["replaced"]["battle"][0]["battleInfo"]["myDeck"]["svts"])
equipNum = len(json_data["cache"]["replaced"]["battle"][0]["battleInfo"]["myUserSvtEquip"])

usrSvtIds=[0,0,0,0,0,0]
i=0
while i < friendNum :
    svt=json_data["cache"]["replaced"]["battle"][0]["battleInfo"]["myDeck"]["svts"][i]
    usrSvtIds[i]=int(svt["userSvtId"])
    i+=1
            
usrSvtListId=[0,0,0,0,0,0]
i=0
while i < friendNum :
    j=0
    while j < friendNum :
        svt=json_data["cache"]["replaced"]["battle"][0]["battleInfo"]["userSvt"][j]
        if int(svt["id"])==usrSvtIds[i] :
            usrSvtListId[i]=j
            break
        j+=1
    i+=1
            
equip=[0,0,0,0,0,0]
i=0
while i < friendNum :
    svt = json_data["cache"]["replaced"]["battle"][0]["battleInfo"]["myDeck"]["svts"][i]
    if svt["isFollowerSvt"] :
        friednSvtId=i
        if int(svt["userSvtEquipIds"][0]) > 0 :
            equip[0]=friendNum
        break
    i+=1
tempEquipId = friendNum
if equip[0] == 0 :
    tempEquipId-=1
i=0
while i < friendNum :
    svt = json_data["cache"]["replaced"]["battle"][0]["battleInfo"]["myDeck"]["svts"][i]
    if not svt["isFollowerSvt"] :
        if int(svt["userSvtEquipIds"][0]) > 0 :
            tempEquipId+=1
            usrSvtId=i+1
            if i > friednSvtId :
                usrSvtId-=1
            equip[usrSvtId]=tempEquipId
    i+=1

获取userSvt里的英灵位次的方法就是先读取userSvtId,然后通过userSvtId来获得英灵位次的排序
即usrSvtListId里的0~5号的值依次对应队伍从左往右的1-6号位在userSvt数组里的index
对于不满6个英灵的情况,比如只有3个英灵,usrSvtListId的[3:5]就是0,使用时可以通过比较friendNum进行判断

礼装装备情况就是助战的礼装位于userSvt[friendNum],当然你得判断助战到底有没有礼装,然后其他的礼装顺序就是队伍从左往右依次index+1
同理通过equipNum进行判断
即equip[0]为助战带的礼装在userSvt中的index,[1-5]为从队伍从左往右除去助战的英灵带的礼装,没带就是0

免费评分

参与人数 11吾爱币 +15 热心值 +10 收起 理由
笙若 + 1 + 1 谢谢@Thanks!
qtfreet00 + 6 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
test6619 + 1 + 1 谢谢@Thanks!
Carssama + 1 + 1 谢谢@Thanks!
GANTZ + 1 我很赞同!
琴响曲终伤人意 + 1 + 1 谢谢@Thanks!
EVUi + 1 + 1 谢谢@Thanks!
寒蝉鸣泣之时 + 1 + 1 谢谢@Thanks!
威风的黑龙 + 1 + 1 我很赞同!
纸上谈兵丶无异 + 1 + 1 用心讨论,共获提升!
2018Hjg1994 + 1 用心讨论,共获提升!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| locbytes 发表于 2018-10-28 12:23
blksals 发表于 2018-10-27 00:01
大佬你好,我最近在研究解包方面问题,打算开一个wiki和做翻译(有解包的翻译文本再进行翻译会比通常用录屏 ...

如果是网络封包的话,是json=jsonDecode(base64decode(urldecode(responseBody))),游戏资源文件包的话我没了解过。
blksals 发表于 2018-10-27 00:01
大佬你好,我最近在研究解包方面问题,打算开一个wiki和做翻译(有解包的翻译文本再进行翻译会比通常用录屏下来再翻方便一点),但是fgo的数据包有加密,我不知道密钥和算法,而且个人能力比较弱QAQ,希望大佬能来帮忙一下。这是我的QQ:1163924410
a5680497 发表于 2018-10-18 13:43
首先谢谢分享,其次请问这个有什么用???
epson 发表于 2018-10-18 13:48
谢谢分享
wangqiustc 发表于 2018-10-18 14:10
学习一下
_傷、卜夠深 发表于 2018-10-18 14:18
谢谢分享
 楼主| locbytes 发表于 2018-10-18 14:22
a5680497 发表于 2018-10-18 13:43
首先谢谢分享,其次请问这个有什么用???

总有人想改个体数据和获取个体数据,那就需要对序列进行分析。
卧波桥 发表于 2018-10-18 19:53

谢谢分享
wp0123 发表于 2018-10-18 20:05
所以大佬给个封包给我用用呗
杭电吴彦祖 发表于 2018-10-18 20:44
这数组真够长的···
夜影无痕 发表于 2018-10-18 23:18
不是很懂有什么用,能提前知道抽奖结果?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 20:35

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表