吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 42271|回复: 120
收起左侧

[Android 原创] FGO 1.20 修改抓包简单破解战斗过程【10倍血量10倍攻击】(二)

  [复制链接]
我是大哥陈 发表于 2018-5-3 14:43
本帖最后由 我是大哥陈 于 2018-5-3 14:48 编辑

上一篇:
https://www.52pojie.cn/thread-732525-1-1.html

继上一次对请求做了修改之后,一直想在返回值上搞点东西,最近两天经过不断尝试,终于成功了,并对之前的脚本进行了优化:
1.增加了修改战斗请求的判断逻辑:正常胜利正常失败的话不作修改,撤退的话会改为判定胜利,并将回合数改为3-10之间的随机数,且清空存活敌人ID。
[JavaScript] 纯文本查看 复制代码
                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"))
                                //        {
                                var tmp = Math.random()*8+3;
                                var val = tmp.toFixed(0);
                                        var turn = /elapsedTurn%22%3a\d+/ig;
                                        str = str.replace(turn,"elapsedTurn%22%3a" + val);
                                        //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);
                                }


                }


2.下面进入正题:通过解码并修改返回数据,来达到修改血量和攻击的目的。
2.1.base64解码
更新了fiddler之后,自带了fiddler scripteditor,里面提供了大部分基本用例,不过还有很多语法不在其中,自行调用Javascript .NET的用法就行,基本都能使用。
22.jpg

查了下base64解码方法很简单,只要调用System.Convert.FromBase64String就行了,但是最坑爹的来了!!!
将返回值直接复制到任何一个解码网站里都能顺利解码,但是脚本就经常报错“输入的不是有效的 Base-64 字符串”,WTF???
花了一天时间找原因,最后终于发现。。。是填充符号的问题,fiddler默认是以ASCII编码的,传过来的填充符号“=”会被解析为“%3d”,也就是“%”符号导致的报错,然而更坑的是打印log的时候“%3d”是打印不出来的,就算转成UTF8也打印不出来!!!导致从日志里根本找不到原因。
QQ截图20180503141916.jpg
所以下面就要干一件很蠢的事:将"%3d"也就是“=”字符删掉,然后再自己加一个"=":
[JavaScript] 纯文本查看 复制代码
                                oSession.utilDecodeResponse()
                                var i = 0;
                           var str1 = oSession.GetResponseBodyAsString();
                                var wtf = str1.Remove(0,str1.Length-3);
                                while(wtf == "%3D"){
                                        var str1 = str1.Substring(0,str1.Length-3);
                                        wtf = str1.Remove(0,str1.Length-3);
                                        i = i+1;
                                        }
                                if(i == 1){
                                        str1 = str1 + "=";
                                        }
                                if(i == 2){
                                        str1 = str1 + "==";
                                        }        
                        
                                var str2 = System.Text.Encoding.UTF8.GetString(System.Convert.FromBase64String(str1));
                                FiddlerObject.log("解密后"+ str2);

如此一来终于不报错了,顺利解码出来了,解码后的明文网上有很多,太长了就不放了。
2.2. 定制逻辑,修改想要的数据。
返回的数据中有本次副本所有怪物、人物、宝具的数据,同样参考了https://www.52pojie.cn/thread-698928-1-1.html中的经验,增加一个判定是否为怪物的逻辑就行了。将userID不为空的hp和atk全部加个0,也就是改为10倍。
[JavaScript] 纯文本查看 复制代码
                                var attack = /userid":"[0-9,":\w]+"atk":"?\d+/gi;
                                var hp = /userid":"[0-9,":\w]+"hp":"?\d+/gi;
                                        if(str2.match(attack)){
                                                FiddlerObject.log("匹配");
                                                str2 = str2.replace(attack,"$&0");
                                                str2 = str2.replace(hp,"$&0");
                                                //FiddlerObject.log("替换后"+ str2);
                                        }
                        

2.3 最后看一下日志,没问题,重新加密回去即可。
[JavaScript] 纯文本查看 复制代码
                                str2 = System.Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(str2));
                                oSession.utilSetResponseBody(str2);

2.4 效果截图:
修改前:
未标题-1.jpg

修改后:
QQ截图20180503132826.jpg

PS:虽然已经伪装的比较完美了,但是必须借助电脑才行的硬伤依然没解决,之前帖子里大家推荐的几个手机抓包软件我都看了下,都没有修改功能,难受。
照例附上脚本文件和用法: fgo_1.20.1_sem_545125.V3.zip (315.01 KB, 下载次数: 1547)

免费评分

参与人数 34吾爱币 +39 热心值 +33 收起 理由
wx641664391 + 1 + 1 用心讨论,共获提升!
cnmcwma + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
test6619 + 1 + 1 谢谢@Thanks!
llppop + 1 热心回复!
Carssama + 1 + 1 罗生门更新后显示错误码201无法使用,能不能更新一下,谢谢了
无敌大葱 + 1 + 1 热心回复!
薛-蓝狐 + 1 + 1 搞游戏的都把好友起来吧 抱团好取暖我QQ2310992767
sd501375947 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
coolll + 1 + 1 我很赞同!
zuiai125520 + 1 + 1 热心回复!
yuhao724 + 1 + 1 這年頭還能夠持續研究fgo解密的不多了!好評!
Uni银魅 + 1 + 1 用心讨论,共获提升!
tongyifan + 1 + 1 谢谢@Thanks!
丹下樱 + 1 谢谢@Thanks!
liunai201 + 1 + 1 我很赞同!
qtfreet00 + 6 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
海天一色001 + 1 + 1 热心回复!
灵影 + 1 + 1 用心讨论,共获提升! 手游辅助的潜质 FGO 很多人玩
pj5008 + 1 + 1 用心讨论,共获提升!
95535916 + 1 谢谢@Thanks!
想要个妹妹 + 1 + 1 谢谢@Thanks!
STSnaive + 1 + 1 我很赞同!
Xer0 + 1 + 1 热心回复!
84420988 + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
流云星痕 + 1 + 1 用心讨论,共获提升!
实习 + 1 + 1 我很赞同!
boyulin + 2 + 1 沒玩遊戲 單純支持研究教學 期待更多教學~
TinyBad + 1 + 1 我什么时候才能像你这么优秀
九门提督定风波 + 1 + 1 热心回复!
无的世界零 + 1 + 1 我很赞同!
dwq308 + 1 + 1 我很赞同!
15808244862 + 2 + 1 楼主厉害呀
ao610336999 + 1 + 1 热心回复!
ieiqp + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

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

 楼主| 我是大哥陈 发表于 2018-5-7 13:34
丹下樱 发表于 2018-5-7 13:02
为什么会这样呢?

手机的浏览器看能不能打开百度呢?如果不能说明手机代{过}{滤}理没配置对,或者电脑上监听端口没开。如果能但是提示证书不安全,说明没装证书。

免费评分

参与人数 1热心值 +1 收起 理由
丹下樱 + 1 热心回复!

查看全部评分

烟雨破解 发表于 2018-8-23 18:50
这东西没啥技术含量,还以为是解密dll呢,这等于就是一个fiddler抓包教程和一个怎么发协议的js教程吧,给菜鸟看还凑合!而且这些协议的分析都是易盾没有加固前的dll分析出来的,噱头而已!
ao610336999 发表于 2018-5-3 15:13
之前有个头脑风暴的辅助,通过本地或者服务器进行抓包在进行修改发送的客户端,作者你可以试试弄在服务器上。相当于游戏通过你的服务器代{过}{滤}理,服务器处理数据,然后在把抓包后修改的数据 发送给客户端
fq645122 发表于 2018-5-3 14:54
攻击力翻倍是吧
ieiqp 发表于 2018-5-3 14:55
教程很详细,希望出更多精品教程
myheartwillg 发表于 2018-5-3 14:58
谢谢楼主的分享哦
shghe 发表于 2018-5-3 15:14
抓来看看什么颜色的猫
15808244862 发表于 2018-5-3 15:52
好厉害,赶紧去试一试
15808244862 发表于 2018-5-3 15:55
真的增加10倍,大佬厉害呀
15808244862 发表于 2018-5-3 16:11
有没有中文的fiddler script的文档啊
 楼主| 我是大哥陈 发表于 2018-5-3 16:25
15808244862 发表于 2018-5-3 16:11
有没有中文的fiddler script的文档啊

没,只有英文的,不过都配了例子,比较简单易懂。
http://docs.telerik.com/fiddler/KnowledgeBase/FiddlerScript/ModifyRequestOrResponse
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-25 01:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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