吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 39897|回复: 58
收起左侧

[Android 原创] FGO 1.20 修改抓包简单破解战斗过程

  [复制链接]
我是大哥陈 发表于 2018-4-28 22:42
本帖最后由 我是大哥陈 于 2018-5-3 14:49 编辑

FGO之前的版本Assembly-CSharp.dll文件都没加密,可以随意修改;
而最近1.20版不仅dll文件加密了,连libmono.so也加壳了,IDA解析不出也没法动态调试,看了下https://www.52pojie.cn/thread-697357-1-1.html大神的教程,并没有学会;
想了想,就算dump出了dll文件,也没法加密回去重新打包使用,看来只能放弃修改本地文件了,只能在抓包上搞点东西;
话不多说,直接开始:
1.安装fiddler,在fiddler的设置中打开允许远程连接,并设置模拟器代{过}{滤}理,准备抓包。
QQ截图20180428215650.jpg
2.测试了发现抓到的都是unknown,原来是手机没装证书。。。在fiddler里设置解密HTTPS连接,并在手机上安装证书。
QQ截图20180428215623.jpg
3.运行游戏,进入战斗,终于能抓到ac.php了,但是返回的都是加密数据,https://www.52pojie.cn/thread-698928-1-1.html的楼主写了破解脚本,但是似乎没带base64解密功能,我还不会fiddler的base64解密语法怎么写。。。尴尬
QQ截图20180428222408.jpg
4.无奈退出战斗,抓到游戏发出了一个战斗结果的请求,惊喜地发现里面居然是明文,而且其中还带着battleresult字段,因为之前搞过未加密的FGO,知道这个字段1代表胜利,2代表失败,3代表退出。
QQ截图20180428222813.jpg
5.写规则将battleresult强行改为1,果然成功了!每次进战斗只要退出就算胜利。
[Java] 纯文本查看 复制代码
static function OnBeforeRequest(oSession: Session) {
if (oSession.url.Contains("ac.php")){
var str = oSession.GetRequestBodyAsString();
str = str.replace("battleResult%22%3a3", "battleResult%22%3a1");
oSession.utilSetRequestBody(str);
}
}

6.为了保险,又正常刷了个图,比较一下正常请求和修改请求的区别:
正常请求:
{"battleId":63315937,"battleResult":1,"scores":"","action":"","elapsedTurn":3,"aliveUniqueIds":[],"battleStatus":3404360355,"voicePlayedList":"[]"}
修改的请求:
{"battleId":63315800,"battleResult":1,"scores":"","action":"","elapsedTurn":1,"aliveUniqueIds":[4,5,6,7,8,9,10,11],"battleStatus":2776095253,"voicePlayedList":"[]"}

发现elapsedTurn和aliveUniqueIds有很大不同,elapsedTurn应该是回合数,修改版1回合就结束战斗了,太假;aliveUniqueIds应该是存活的怪物ID,修改版还有这么多怪活着呢阿喂怎么就胜利了呢!
7.修改脚本,伪装elapsedTurn和aliveUniqueIds:
[Java] 纯文本查看 复制代码
 static function OnBeforeRequest(oSession: Session) {
if ((null != gs_ReplaceToken) && (oSession.url.indexOf(gs_ReplaceToken)>-1)) {   // Case sensitive
            oSession.url = oSession.url.Replace(gs_ReplaceToken, gs_ReplaceTokenWith); 
        }
                if (oSession.url.Contains("ac.php")){
                        oSession["ui-color"] = "red";
                        var str = oSession.GetRequestBodyAsString();
                        if(str.Contains("battleResult%22%3a2") || str.Contains("battleResult%22%3a3"))
                                {
                                if(str.Contains("battleResult%22%3a3"))
                                        {
                                        str = str.replace("elapsedTurn%22%3a1%2c%22","elapsedTurn%22%3a8%2c%22");
                                        str = str.replace("elapsedTurn%22%3a2%2c%22","elapsedTurn%22%3a8%2c%22");
                                        }

                                str = str.replace("battleResult%22%3a3", "battleResult%22%3a1");
                                str = str.replace("battleResult%22%3a2", "battleResult%22%3a1");
                                var regex1 = /aliveUniqueIds%22%3a%5b([\d+,%2c]+)%5d/gi;
                                str = str.replace(regex1,"aliveUniqueIds%22%3a%5b%5d");

                                //FiddlerObject.log(str);
                                oSession.utilSetRequestBody(str);
                                }


                }

8.试了一下,最终修改后的请求和正常刷图的请求暂时没发现太大不同,只要过图时间不要太短,应该没啥问题。
附上脚本文件,祝大家肝的开心。
就是操作有些繁琐,暂时又没找到手机上能抓包并修改的App,如果各位见过麻烦推荐下。
fgo_1.20.1_sem_545125.zip (314.59 KB, 下载次数: 570)

下一篇:
https://www.52pojie.cn/thread-734393-1-1.html

免费评分

参与人数 27吾爱币 +36 热心值 +25 收起 理由
asq56747277 + 1 热心回复!
眼中的迷离 + 1 + 1 谢谢@Thanks!
寒蝉鸣泣之时 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
qtfreet00 + 9 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
レトルト + 1 + 1 谢谢@Thanks!
慢速爬行的蜗牛 + 1 + 1 谢谢@Thanks!
偷税.改 + 1 + 1 厉害了我的楼主
八云紫轩 + 1 + 1 谢谢@Thanks!
lookerJ + 1 + 1 用心讨论,共获提升!
aopdnf + 1 + 1 谢谢@Thanks!
Ouyang520 + 1 + 1 谢谢@Thanks!
苏小小 + 1 + 1 谢谢@Thanks!
15808244862 + 2 + 1 可以,投个币
九门提督定风波 + 1 + 1 热心回复!
xiangyuruchu520 + 1 + 1 热心回复!
123456789we + 1 + 1 用心讨论,共获提升!
STSnaive + 1 + 1 我很赞同!
13813532597 + 1 谢谢@Thanks!
TinyBad + 1 + 1 谢谢@Thanks!
WeCBo + 1 + 1 谢谢@Thanks!
yyp6457024 + 1 + 1 此为违规行为,请遵守论坛版规!
网站安全师 + 1 + 1 用心讨论,共获提升!
tianwei625 + 1 + 1 谢谢@Thanks!
lin_xop + 1 + 1 热心回复!
拿破仑骑乌龟 + 1 + 1 我很赞同!
世夕 + 1 + 1 肝疼 期待
nishuona + 1 + 1 我很赞同!

查看全部评分

本帖被以下淘专辑推荐:

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

QB56 发表于 2018-4-30 07:35
昨天按照楼主说的,尝试了一下,确实能成功,手机只要下个官网的fgo,不需要什么破解,连上电脑的WiFi,准备工作完成后,进战斗开图,退出就能获胜,材料,经验,奖励都会给,只是没结算页面而已。可以说是秒刷了,但这容易被服务端检测出来,因为时间太短了,数据包那里有个lasttime之类的东西,进图前会记录一次,结束后会记录一次,就是战斗时间,只要进图后等个一两分钟,然后退出,加上楼主的回合数和剩余怪的修改,基本上只要不要刷得太快,应该很难检测出来,当然,奉劝一句,别拿大号作死,用挂迟早会被封的。
ren332427516 发表于 2018-4-29 18:56
世夕 发表于 2018-4-28 23:13
MAKEYZH 发表于 2018-4-29 00:12
感谢分享!!!
百到真人 发表于 2018-4-29 00:30
学习大牛的作品!!
qaz003 发表于 2018-4-29 00:40
利害。。。曲线救国呀。。。思路很清析,谢谢分享
北岛未 发表于 2018-4-29 01:26
感谢大佬教程

sfz032 发表于 2018-4-29 01:51 来自手机
跪看大佬
Noir夜祀 发表于 2018-4-29 02:39
这个思路有点类似于之前iOS科技的思路哇
qq327594197 发表于 2018-4-29 06:39
观摩观摩....
haoxiangzuo 发表于 2018-4-29 08:37
谢谢楼主分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 17:36

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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