本帖最后由 heqyou_free 于 2018-8-3 08:01 编辑
基于我是大哥陈的帖子
现学的一点JavaScript,见笑了
一、修改技能
[JavaScript] 纯文本查看 复制代码
"id": "***********",
"userId": "***********",
"svtId": "500800",
"lv": "90",
"limitCount": "4",
"dispLimitCount": 3,
"iconLimitCount": 3,
"commandCardLimitCount": 3,
"exp": "12148500",
"hp": "152490",
"atk": "115360",
"skillId1": "321550",
"skillId2": "321550",
"skillId3": "321550",
"skillLv1": 10,
"OldskillLv1": "10",
"skillLv2": "10",
"skillLv3": "10",
"treasureDeviceId": "500801",
"treasureDeviceLv": "5",
"OldtreasureLv": "2",
"status": 0,
"classPassive": [83350, 80350, 320650, 960503],
"adjustHp": "99",
"adjustAtk": "99",
"exceedCount": "0",
"deathRate": 360,
"individuality": ["5000", "500800", "1", "104", "201", "300", "303", "1000", "2001", "2008", "2011", "2037"],
"equipTargetId1": "75551279"
用这段来做例子,这是修改过后的,不过也能看懂
(userid去掉了)
一看下去,会点英语都知道,skill是技能。那么skillId就是技能的id了,所以推测修改这个就能做到修改技能的效果
写正则表达式
[JavaScript] 纯文本查看 复制代码
var skill1 = /(?<=skillId1":"?)\d\d\d\d?\d?\d?\d+/gi;
var skill2 = /(?<=skillId2":"?)\d\d\d\d?\d?\d?\d+/gi;
var skill3 = /(?<=skillId3":"?)\d\d\d\d?\d?\d?\d+/gi;
因为技能id的位数有4到6位不等,所以使用?关键字标识前面的字符可有可无
测试后,发现敌人也可以用修改的技能,发现是敌人也有skillId1,所以使用
[JavaScript] 纯文本查看 复制代码 var skill1 = /(?<=userid":"[0-9,":\w]+"skillId1":"?)\d\d\d\d?\d?\d?\d+/gi;
然后就是replace了
[JavaScript] 纯文本查看 复制代码
//321550是梅林的一技能
var changeskillto = 321550;
str2 = str2.replace(skill1, changeskillto);
str2 = str2.replace(skill2, changeskillto);
str2 = str2.replace(skill3, changeskillto);
目前已经知道一个问题,会把礼装的效果换成技能的效果。但是因为礼装和一技能格式太像,还没有研究出方法
----------------------------------------------------------------------------------------
二、修改技能等级
依然使用上面的例子
猜测skillLv就是技能等级
写正则表达式
[JavaScript] 纯文本查看 复制代码 var skillLv1 = /userid":"[0-9,":\w]+"skillLv1":+/gi;
var skillLv2 = /(?<=skillLv2":"?)\d?\d+/gi;
var skillLv3 = /(?<=skillLv3":"?)\d?\d+/gi;
同样,敌人也有skillLv1,通过判断userid是否为0来分辨
replace
[JavaScript] 纯文本查看 复制代码
str2 = str2.replace(skillLv1, "$&10,\"OldskillLv1\":");
str2 = str2.replace(skillLv2, 10);
str2 = str2.replace(skillLv3, 10);
----------------------------------------------------------------------------------------
三、修改宝具等级
在两个宝具等级不同的情况下抓包,比较,发现treasureDeviceLv就是宝具等级
正则
[JavaScript] 纯文本查看 复制代码 var treasure = /"treasureDeviceLv":+/gi;
replace
[JavaScript] 纯文本查看 复制代码 str2 = str2.replace(treasure, "$&\"5\",\"OldtreasureLv\":");
----------------------------------------------------------------------------------------
四、使用非好友从者宝具
用两个1级,再加个助战,通过Lv判断,然后发现不在同一个地方了
[JavaScript] 纯文本查看 复制代码 "id": 1,
"userSvtId": **********,
"userId": "*************",
"isFollowerSvt": false,
"userSvtEquipIds": [107115924],
"uniqueId": 1
而是在这里的isFollowerSvt
因为只有两种情况,所以直接replace就好
[JavaScript] 纯文本查看 复制代码
str2 = str2.Replace("isFollowerSvt\":true", "isFollowerSvt\":false");
其实这样会把助战标识也去掉,因为游戏是通过判断助战从者所属的userid是否为用户好友
所以只能连着助战标识也去掉了
----------------------------------------------------------------------------------------
效果展示
可能这就是报应吧
----------------------------------------------------------------------------------------
CustomRules.zip
(5.9 KB, 下载次数: 340)
----------------------------------------------------------------------------------------
关于1.21.0版本
此版本在响应的Body后面加入了sign="xxxxxxx",目前还不知道是哪种验证
在request后面也加了&sign=xxxxxxx
对应的方法是getDataSign(看名字好像和网易有点关系)
据说已经有修改版出来了,希望那位仁兄可以试着用下面的代{过}{滤}理地址看看有没有效果
s7.natfrp.org:51000
----------------------------------------------------------------------------------------
1.21版本在respond加
[JavaScript] 纯文本查看 复制代码 var sign = /"sign"=".*"+/gi;
str2 = str2.replace(sign,"");
这次就不发附件了,自己改改就好
另外大家可以试着用这个,我个人觉得这个更好
https://github.com/Attt/Anyproxy-fgo-rule----------------------------------------------------------------------------------------
下一篇:https://www.52pojie.cn/thread-776940-1-1.html |