attt / anyproxy-fgo-rule Goto Github PK
View Code? Open in Web Editor NEW用于劫持修改fgo战斗请求响应的规则文件,配合Anyproxy使用。
用于劫持修改fgo战斗请求响应的规则文件,配合Anyproxy使用。
对于安卓5.0以上的安卓手机,我们可以用termux在本机跑科技服务器,从而彻底摆脱电脑或者云服务器。
以下是操作步骤:
apt update
,用官方源就行,不要用ustc的termux源,早就废了。apt install git nodejs nano
安装git、nodejs、nanonpm install -g anyproxy
用npm安装anyproxyanyproxy-ca
,之后提示是否创建证书,直接回车创建在/data/data/com.termux/files/home/.anyproxy/certificates/rootCA.crt。git clone https://github.com/Attt/Anyproxy-fgo-rule.git
,把科技代码放在本地。termux-setup-storage
,之后会提示是否授权termux访问本机媒体和文件,选择是,会在家目录新建storage文件夹通向手机存储。使得本来不共通的数据变得可以访问。cp /data/data/com.termux/files/home/.anyproxy/certificates/rootCA.crt /data/data/com.termux/files/home/storage/downloads/termux.crt
,我这里改成了termux.crt,不改也行。系统设置-系统安全-从SD卡安装
里在download文件夹下找到termux.crt并安装。在termux里,update-ca-certificates不好使,跟普通的linux不一样,我们只要让安卓本身认识这个证书就好,不再需要让termux认识证书(termux可能用的就是系统证书,只能说一石二鸟)。nano Anyproxy-fgo-rule/any-fgo.sh
,编辑any-fgo.sh,将fgo.js
替换成/data/data/com.termux/files/home/Anyproxy-fgo-rule/fgo.js
,绝对路径总是不会出错的。之后可以根据喜好编辑Anyproxy-fgo-rule/fgo.js
来加撤退胜利等功能。chmod +x Anyproxy-fgo-rule/any-fgo.sh
,加上可执行权限Anyproxy-fgo-rule/any-fgo.sh
,开始运行科技。注意,termux里的netstat不好使,你可能看不到任何端口,想kill掉进程直接用ps -ef
看吧,没几个进程,node那个就是。想看是否启动了anyproxy,直接浏览器打开127.0.0.1:8889
看就好。127.0.0.1
,端口8888
,可以在第三个选项规定127.0.0.1不走代理。如果是4G的话,就新建APN,其他选项保持和默认APN相同,只改代理和端口。.anyproxy/caches/
下面的缓存,不然你手机存储要炸。直接rm -rf .anyproxy/caches/*
就行,那些都是请求缓存,删了之后你在anyproxy网页上就看不到请求的具体内容了,对科技没啥影响。sv['limitCount'] = Convert.ToString(4);
sv['dispLimitCount'] = Convert.ToString(4);
sv['commandCardLimitCount'] = Convert.ToString(3);
sv['iconLimitCount'] = Convert.ToString(4);
最高灵基再临形态展示
if(sv['svtId']=="600200"){//咒腕到爷爷
sv['svtId'] = Convert.ToString(602500);
sv['treasureDeviceId'] = Convert.ToString(602501);
sv['skillId1'] = Convert.ToString(41650);
sv['skillId2'] = Convert.ToString(13553);
sv['skillId3'] = Convert.ToString(324650);
sv['hp'] = Convert.ToString(14246);
sv['atk'] = Convert.ToString(12767);
}
if(sv['svtId']=="600100"){//小次郎到梅林
sv['svtId'] = Convert.ToString(500800);
sv['treasureDeviceId'] = Convert.ToString(500801);
sv['skillId1'] = Convert.ToString(321550);
sv['skillId2'] = Convert.ToString(322550);
sv['skillId3'] = Convert.ToString(323650);
sv['hp'] = Convert.ToString(15259);
sv['atk'] = Convert.ToString(11546);
}
if(sv['svtId']=="601400"){//舞娘到孔明
sv['svtId'] = Convert.ToString(501900);
sv['treasureDeviceId'] = Convert.ToString(501901);
sv['skillId1'] = Convert.ToString(82550);
sv['skillId2'] = Convert.ToString(100551);
sv['skillId3'] = Convert.ToString(101551);
sv['hp'] = Convert.ToString(14409);
sv['atk'] = Convert.ToString(11598);
}
if(sv['svtId']=="700900"){//牛头人到狐狸
sv['svtId'] = Convert.ToString(500300);
sv['treasureDeviceId'] = Convert.ToString(500302);
sv['skillId1'] = Convert.ToString(23650);
sv['skillId2'] = Convert.ToString(25550);
sv['skillId3'] = Convert.ToString(108655);
sv['hp'] = Convert.ToString(15259);
sv['atk'] = Convert.ToString(11546);
}
if(sv['svtId']=="700500"){//爱酱到濑光
sv['svtId'] = Convert.ToString(702300);
sv['treasureDeviceId'] = Convert.ToString(702301);
sv['skillId1'] = Convert.ToString(52551);
sv['skillId2'] = Convert.ToString(224550);
sv['skillId3'] = Convert.ToString(225550);
sv['hp'] = Convert.ToString(14500);
sv['atk'] = Convert.ToString(12556);
}
替换从者
sv["skillId1"] = "321550";
sv["skillId2"] = "321550";
sv["skillId3"] = "321550";
//321550为梅林一技能
感谢大大的脚本,以前用正则确实蛋疼
证书也认证了,关于本机那里的证书信任也开了,代理服务器也设置了,在电脑上测试了模拟器也可以,但是一到苹果上就不行,永远卡在跑芙芙那里是怎么回事?客户端上也没有反应
在Ubuntu16.04系统上
sudo apt install curl git
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs gcc g++ make
sudo npm install -g anyproxy
git clone https://github.com/Attt/Anyproxy-fgo-rule.git
cd Anyproxy-fgo-rule/
anyproxy --rule ./fgo.js
# 打开localhost:8002,点左侧RootCA生成crt秘钥,然后会卡住,直接Ctrl c掉上条命令
sudo mkdir /usr/share/ca-certificates/mine
sudo cp /root/.anyproxy/certificates/rootCA.crt /usr/share/ca-certificates/mine
# root可替换成你的用户名,普通用户在/home/用户名/.anyproxy/certificates/rootCA.crt
sudo nano /etc/ca-certificates.conf
# 没有nano也可以用vi或者gedit之类的编辑器
# 在最后一行加上 mine/rootCA.crt
# 保存退出
sudo update-ca-certificates
anyproxy --rule ./fgo.js --intercept
# 再次启动,点RootCA,扫码下载秘钥到手机
# 安装秘钥,以小米手机为例,设置-更多设置-系统安全-从SD卡安装 即可
# 在WLAN设置那里查看你当前的WiFi详情,代理那里改成手动,输入你电脑的IP,端口是8001
# 理论上讲就可以了
http://217.69.12.109/s/iqTGb1vgQ2TrUDA
这是我整合了xposed框架、大佬的xfgo模块以及科技服务器的安卓模拟器ova包。使用方法见网盘里的使用方法视频,差不多是无脑操作了。各位有兴趣的话可以试一试。
功能是二十万血,百倍攻,三十,五宝,撤退胜利,大英雄变盖提亚,普通B叔变1.5.2巨英雄。
再次感谢巨佬的xfgo模块,神了,6得一批。
在安卓模拟器里跑linux服务器2333,也要感谢之前介绍经验的@ZizhuoWang大佬,Termux也是强无敌。
拿小号做了实验,科技凉凉2333.
最后多了一个sign,等大佬破解吧哈哈哈
{
"response": [{
"resCode": "00",
"success": {},
"fail": {},
"nid": "battle_setup",
"usk": "975bb9df1282d8c8a28b",
"isBattleLive": 0,
"isEncrypt": 0,
"encryptApi": ["battlesetup", "battleresume"],
"svtIds": [],
"questIds": [1000000, 1000001, 1000002, 1000003, 1000607, 1000706, 1000709, 1000711, 1000716, 1000720, 1000721, 1000819, 1000825, 94008824, 94009105, 2000115, 2000211],
"mstSkillIds": []
}],
"cache": {
"replaced": {
"mstMasterMission": [{
"id": 10001,
"startedAt": 1521871199,
"endedAt": 1532275199,
"closedAt": 1532879999
}, {
"id": 100045,
"startedAt": 1531065600,
"endedAt": 1531670399,
"closedAt": 1532275199
}, {
"id": 100046,
"startedAt": 1531670400,
"endedAt": 1532275199,
"closedAt": 1532879999
}],
"battle": [{
"userId": "100115223282",
"questId": 94012301,
"questPhase": 1,
"battleType": 1,
"followerId": 1000,
"followerType": 1,
"seed": 1826544874,
"isCompress": false,
"status": 1,
"result": 0,
"createdAt": 1532080473,
"updatedAt": 1532080473,
"mstEventDetail": {
"eventId": 80055,
"flag": 225522,
"pointImageId": 15,
"eventGaugeType": 5,
"condQuestId": 94012301,
"condMessage": "~关于活动奖励界面~\n\n通关「复刻:鬼哭醉梦魔京 罗生门 短程版」中的\n『开幕 平安樱前线』之后,就可解锁活动奖励界面。\n在此界面中,可以确认已获得的伤害点数,\n以及领取完成了的活动任务奖励。",
"tutorialImageIds": "[]",
"shopCondQuestId": 94012301,
"shopCondMessage": "~关于活动奖励界面~\n\n通关「复刻:鬼哭醉梦魔京 罗生门 短程版」中的\n『开幕 平安樱前线』之后,就可解锁活动奖励界面。\n在此界面中,可以确认已获得的伤害点数,\n以及领取完成了的活动任务奖励。",
"script": "{}",
"rewardPageBgId": 0,
"bgmId": 0,
"afterBgmId": 0,
"guideImageId": 0,
"guideImageIds": "[0]",
"guideLimitCount": 0,
"guideLimitCounts": "[0]",
"shopGuideImageIds": "[0]",
"shopGuideLimitCounts": "[0]",
"shopPageBgId": 27000,
"shopBgmId": 58,
"shopAfterBgmId": 58,
"eventTypeFlag": 242,
"terminalDisplayType": 1
},
"rankingEventId": 80055,
"eventId": 80055,
"followerClassId": 0,
"resultInfo": {
"dropGiftIds": [],
"rewardQp": 5400,
"rewardExp": 10190,
"rewardFriendShip": 0,
"rewardFriendShipDic": {
"200500": 515,
"401900": 515,
"501200": 515,
"602100": 515,
"702200": 515
},
"rewardFriendPoint": 400,
"rewardUserEquipExp": 10190
},
"battleInfo": {
"appVer": "1.21.0",
"dataVer": "214",
"myUserSvt": [],
"myUserSvtEquip": [],
"myDeck": {
"svts": [{
"id": 1,
"userSvtId": 253458917,
"userId": "100115223282",
"isFollowerSvt": false,
"userSvtEquipIds": [0],
"uniqueId": 1
}, {
"id": 2,
"userSvtId": 253461920,
"userId": "100115223282",
"isFollowerSvt": false,
"userSvtEquipIds": [0],
"uniqueId": 2
}, {
"npcId": 0,
"id": 3,
"userSvtId": 1,
"isFollowerSvt": true,
"userSvtEquipIds": [],
"userId": 0,
"name": "坂田金时",
"enemyScript": {},
"uniqueId": 3
}, {
"id": 4,
"userSvtId": 253462308,
"userId": "100115223282",
"isFollowerSvt": false,
"userSvtEquipIds": [0],
"uniqueId": 4
}, {
"id": 5,
"userSvtId": 253458096,
"userId": "100115223282",
"isFollowerSvt": false,
"userSvtEquipIds": [0],
"uniqueId": 5
}, {
"id": 6,
"userSvtId": 22103092,
"userId": "100115223282",
"isFollowerSvt": false,
"userSvtEquipIds": [0],
"uniqueId": 6
}],
"userEquipId": 152041
},
"passiveSkillContainer": {
"svtSkillLvContainers": [{
"svtId": "602100",
"mstSkillLv": {
"skillId": 50350,
"lv": 1,
"chargeTurn": 0,
"funcId": "[295,214]",
"vals": ["[1000,-1,-1,60]", "[1000,-1,-1,60]"],
"script": "{}",
"skillDetailId": "50350",
"priority": 0,
"updatedAt": 0,
"createdAt": 0,
"svals": "[\"[1000,-1,-1,60]\",\"[1000,-1,-1,60]\"]"
},
"mstSvtIndividuality": [5000, 602100, 2, 105, 201, 301, 304, 1000, 2001, 2000, 2040, 2019, 2008, 2011, 2037, 2002, 1004, 1132]
}, {
"svtId": "602100",
"mstSkillLv": {
"skillId": 62350,
"lv": 1,
"chargeTurn": 0,
"funcId": "[265]",
"vals": ["[1000,-1,-1,150]"],
"script": "{}",
"skillDetailId": "62350",
"priority": 0,
"updatedAt": 0,
"createdAt": 0,
"svals": "[\"[1000,-1,-1,150]\"]"
},
"mstSvtIndividuality": [5000, 602100, 2, 105, 201, 301, 304, 1000, 2001, 2000, 2040, 2019, 2008, 2011, 2037, 2002, 1004, 1132]
}, {
"svtId": "702200",
"mstSkillLv": {
"skillId": 54450,
"lv": 1,
"chargeTurn": 0,
"funcId": "[118]",
"vals": ["[1000,-1,-1,80]"],
"script": "{}",
"skillDetailId": "54450",
"priority": 0,
"updatedAt": 0,
"createdAt": 0,
"svals": "[\"[1000,-1,-1,80]\"]"
},
"mstSvtIndividuality": [5000, 702200, 2, 106, 201, 301, 304, 1000, 2001, 2019, 2008, 2011, 2037, 1004, 1132]
}, {
"svtId": 700600,
"mstSkillLv": {
"skillId": 54150,
"lv": 1,
"chargeTurn": 0,
"funcId": "[118]",
"vals": ["[1000,-1,-1,20]"],
"script": "{}",
"skillDetailId": "54150",
"priority": 0,
"updatedAt": 0,
"createdAt": 0,
"svals": "[\"[1000,-1,-1,20]\"]"
},
"mstSvtIndividuality": [5000, 700600, 1, 106, 202, 300, 303, 1000, 2001, 2000, 2040, 2008, 2012]
}, {
"svtId": 700600,
"mstSkillLv": {
"skillId": 62250,
"lv": 1,
"chargeTurn": 0,
"funcId": "[265]",
"vals": ["[1000,-1,-1,125]"],
"script": "{}",
"skillDetailId": "62250",
"priority": 0,
"updatedAt": 0,
"createdAt": 0,
"svals": "[\"[1000,-1,-1,125]\"]"
},
"mstSvtIndividuality": [5000, 700600, 1, 106, 202, 300, 303, 1000, 2001, 2000, 2040, 2008, 2012]
}, {
"svtId": "200500",
"mstSkillLv": {
"skillId": 34250,
"lv": 1,
"chargeTurn": 0,
"funcId": "[388]",
"vals": ["[1000,-1,-1,125]"],
"script": "{}",
"skillDetailId": "34250",
"priority": 0,
"updatedAt": 0,
"createdAt": 0,
"svals": "[\"[1000,-1,-1,125]\"]"
},
"mstSvtIndividuality": [5000, 200500, 2, 102, 201, 302, 304, 1000, 2001, 2006, 2008, 2011, 2037]
}, {
"svtId": "200500",
"mstSkillLv": {
"skillId": 20550,
"lv": 1,
"chargeTurn": 0,
"funcId": "[199]",
"vals": ["[1000,-1,-1,100]"],
"script": "{}",
"skillDetailId": "20550",
"priority": 0,
"updatedAt": 0,
"createdAt": 0,
"svals": "[\"[1000,-1,-1,100]\"]"
},
"mstSvtIndividuality": [5000, 200500, 2, 102, 201, 302, 304, 1000, 2001, 2006, 2008, 2011, 2037]
}, {
"svtId": "501200",
"mstSkillLv": {
"skillId": 83550,
"lv": 1,
"chargeTurn": 0,
"funcId": "[109]",
"vals": ["[1000,-1,-1,100]"],
"script": "{}",
"skillDetailId": "83550",
"priority": 0,
"updatedAt": 0,
"createdAt": 0,
"svals": "[\"[1000,-1,-1,100]\"]"
},
"mstSvtIndividuality": [5000, 501200, 2, 104, 201, 300, 303, 1000, 2001, 2000, 2040, 2008, 2011, 2037, 2113]
}, {
"svtId": "501200",
"mstSkillLv": {
"skillId": 80451,
"lv": 1,
"chargeTurn": 0,
"funcId": "[373]",
"vals": ["[1000,-1,-1,90]"],
"script": "{}",
"skillDetailId": "80451",
"priority": 0,
"updatedAt": 0,
"createdAt": 0,
"svals": "[\"[1000,-1,-1,90]\"]"
},
"mstSvtIndividuality": [5000, 501200, 2, 104, 201, 300, 303, 1000, 2001, 2000, 2040, 2008, 2011, 2037, 2113]
}, {
"svtId": "501200",
"mstSkillLv": {
"skillId": 62450,
"lv": 1,
"chargeTurn": 0,
"funcId": "[265]",
"vals": ["[1000,-1,-1,175]"],
"script": "{}",
"skillDetailId": "62450",
"priority": 0,
"updatedAt": 0,
"createdAt": 0,
"svals": "[\"[1000,-1,-1,175]\"]"
},
"mstSvtIndividuality": [5000, 501200, 2, 104, 201, 300, 303, 1000, 2001, 2000, 2040, 2008, 2011, 2037, 2113]
}, {
"svtId": "401900",
"mstSkillLv": {
"skillId": 34550,
"lv": 1,
"chargeTurn": 0,
"funcId": "[388]",
"vals": ["[1000,-1,-1,200]"],
"script": "{}",
"skillDetailId": "34550",
"priority": 0,
"updatedAt": 0,
"createdAt": 0,
"svals": "[\"[1000,-1,-1,200]\"]"
},
"mstSvtIndividuality": [5000, 401900, 2, 103, 202, 300, 303, 2009, 1000, 2001, 2000, 2040, 2008]
}, {
"svtId": "401900",
"mstSkillLv": {
"skillId": 88552,
"lv": 1,
"chargeTurn": 0,
"funcId": "[100]",
"vals": ["[1000,-1,-1,115]"],
"script": "{}",
"skillDetailId": "88552",
"priority": 0,
"updatedAt": 0,
"createdAt": 0,
"svals": "[\"[1000,-1,-1,115]\"]"
},
"mstSvtIndividuality": [5000, 401900, 2, 103, 202, 300, 303, 2009, 1000, 2001, 2000, 2040, 2008]
}, {
"svtId": "401900",
"mstSkillLv": {
"skillId": 62350,
"lv": 1,
"chargeTurn": 0,
"funcId": "[265]",
"vals": ["[1000,-1,-1,150]"],
"script": "{}",
"skillDetailId": "62350",
"priority": 0,
"updatedAt": 0,
"createdAt": 0,
"svals": "[\"[1000,-1,-1,150]\"]"
},
"mstSvtIndividuality": [5000, 401900, 2, 103, 202, 300, 303, 2009, 1000, 2001, 2000, 2040, 2008]
}, {
"svtId": "401900",
"mstSkillLv": {
"skillId": 960503,
"lv": 1,
"chargeTurn": 0,
"funcId": "[1234]",
"vals": ["[1000,-1,-1,400,ShowState:1]"],
"script": "{}",
"skillDetailId": "960503",
"priority": 0,
"updatedAt": 0,
"createdAt": 0,
"svals": "[\"[1000,-1,-1,400,ShowState:1]\"]"
},
"mstSvtIndividuality": [5000, 401900, 2, 103, 202, 300, 303, 2009, 1000, 2001, 2000, 2040, 2008]
}]
},
"enemyUserSvt": [],
"boostItems": [],
"enemyDeck": [{
"svts": [{
"npcId": 94012305,
"id": 1,
"userSvtId": 7,
"isFollowerSvt": false,
"userSvtEquipIds": [],
"userId": 0,
"name": "恶鬼A",
"enemyScript": {},
"roleType": 1,
"deckSvtName": "恶鬼",
"uniqueId": 7,
"dropInfos": []
}, {
"npcId": 94012305,
"id": 2,
"userSvtId": 8,
"isFollowerSvt": false,
"userSvtEquipIds": [],
"userId": 0,
"name": "恶鬼B",
"enemyScript": {},
"roleType": 1,
"deckSvtName": "恶鬼",
"uniqueId": 8,
"dropInfos": []
}]
}, {
"svts": [{
"npcId": 94012306,
"id": 1,
"userSvtId": 9,
"isFollowerSvt": false,
"userSvtEquipIds": [],
"userId": 0,
"name": "濡女A",
"enemyScript": {},
"roleType": 1,
"deckSvtName": "濡女",
"uniqueId": 9,
"dropInfos": []
}, {
"npcId": 94012305,
"id": 2,
"userSvtId": 10,
"isFollowerSvt": false,
"userSvtEquipIds": [],
"userId": 0,
"name": "恶鬼",
"enemyScript": {},
"roleType": 1,
"deckSvtName": "恶鬼",
"uniqueId": 10,
"dropInfos": [{
"mstGiftId": 10022,
"type": 2,
"objectId": 1,
"num": 3000,
"originalNum": 3000,
"limitCount": 0,
"lv": 0,
"rarity": 0
}]
}, {
"npcId": 94012306,
"id": 3,
"userSvtId": 11,
"isFollowerSvt": false,
"userSvtEquipIds": [],
"userId": 0,
"name": "濡女B",
"enemyScript": {},
"roleType": 1,
"deckSvtName": "濡女",
"uniqueId": 11,
"dropInfos": []
}]
}, {
"svts": [{
"npcId": 94012304,
"id": 1,
"userSvtId": 12,
"isFollowerSvt": false,
"userSvtEquipIds": [],
"userId": 0,
"name": "兵主部",
"enemyScript": {},
"roleType": 2,
"deckSvtName": "兵主部",
"uniqueId": 12,
"dropInfos": [{
"mstGiftId": 20030,
"type": 2,
"objectId": 6507,
"num": 1,
"originalNum": 1,
"limitCount": 0,
"lv": 0,
"rarity": 2
}]
}]
}],
"viewEnemyInfo": [],
"raidInfo": [],
"startRaidInfo": [],
"superBossInfo": [],
"userEquipId": 152041,
"callDeck": [],
"shiftDeck": [],
"transformDeck": {
"svts": []
},
"userSvt": [{
"id": 1,
"userId": 0,
"svtId": 700600,
"lv": 60,
"limitCount": 1,
"dispLimitCount": 0,
"imageLimitCount": 0,
"commandCardLimitCount": 0,
"iconLimitCount": 0,
"portraitLimitCount": 0,
"exp": 0,
"hp": 7629,
"atk": 8025,
"skillLv1": 6,
"skillId1": 39551,
"equipTargetId1": 0,
"individuality": ["5000", "700600", "1", "106", "202", "300", "303", "1000", "2001", "2000", "2040", "2008", "2012"],
"exceedCount": 0,
"classPassive": [54150, 62250],
"adjustHp": 0,
"adjustAtk": 0,
"skillLv2": 6,
"skillLv3": 2,
"skillId2": 17350,
"skillId3": 26550,
"treasureDeviceId": 700601,
"treasureDeviceLv": 4,
"deathRate": 520,
"status": 0
}, {
"id": "22103092",
"userId": "100115223282",
"svtId": "401900",
"lv": "1",
"limitCount": "0",
"dispLimitCount": 1,
"imageLimitCount": 1,
"commandCardLimitCount": 1,
"iconLimitCount": 1,
"portraitLimitCount": 0,
"exp": "0",
"hp": "200000",
"atk": "133500",
"skillLv1": "10",
"skillId1": 13550,
"equipTargetId1": 0,
"individuality": ["5000", "401900", "2", "103", "202", "300", "303", "2009", "1000", "2001", "2000", "2040", "2008"],
"exceedCount": "0",
"classPassive": [34550, 88552, 62350, 960503],
"adjustHp": "0",
"adjustAtk": "0",
"skillLv2": "10",
"skillLv3": "10",
"skillId2": 1,
"skillId3": 2,
"treasureDeviceId": 401901,
"treasureDeviceLv": "5",
"deathRate": 300,
"status": "0"
}, {
"id": "253458096",
"userId": "100115223282",
"svtId": "501200",
"lv": "1",
"limitCount": "0",
"dispLimitCount": 1,
"imageLimitCount": 1,
"commandCardLimitCount": 1,
"iconLimitCount": 1,
"portraitLimitCount": 1,
"exp": "0",
"hp": "200000",
"atk": "151000",
"skillLv1": "10",
"skillId1": 238550,
"equipTargetId1": 0,
"individuality": ["5000", "501200", "2", "104", "201", "300", "303", "1000", "2001", "2000", "2040", "2008", "2011", "2037", "2113"],
"exceedCount": "0",
"classPassive": [83550, 80451, 62450],
"adjustHp": "0",
"adjustAtk": "0",
"skillLv2": "10",
"skillLv3": "10",
"skillId2": 1,
"skillId3": 2,
"treasureDeviceId": 501201,
"treasureDeviceLv": "5",
"deathRate": 360,
"status": "0"
}, {
"id": "253458917",
"userId": "100115223282",
"svtId": "602100",
"lv": "1",
"limitCount": "0",
"dispLimitCount": 1,
"imageLimitCount": 1,
"commandCardLimitCount": 1,
"iconLimitCount": 1,
"portraitLimitCount": 1,
"exp": "0",
"hp": "200000",
"atk": "185300",
"skillLv1": "10",
"skillId1": 219550,
"equipTargetId1": 0,
"individuality": ["5000", "602100", "2", "105", "201", "301", "304", "1000", "2001", "2000", "2040", "2019", "2008", "2011", "2037", "2002", "1004", "1132"],
"exceedCount": "0",
"classPassive": [50350, 62350],
"adjustHp": "0",
"adjustAtk": "0",
"skillLv2": "10",
"skillLv3": "10",
"skillId2": 1,
"skillId3": 2,
"treasureDeviceId": 602101,
"treasureDeviceLv": "5",
"deathRate": 316,
"status": "0"
}, {
"id": "253461920",
"userId": "100115223282",
"svtId": "702200",
"lv": "1",
"limitCount": "0",
"dispLimitCount": 1,
"imageLimitCount": 1,
"commandCardLimitCount": 1,
"iconLimitCount": 1,
"portraitLimitCount": 1,
"exp": "0",
"hp": "200000",
"atk": "160600",
"skillLv1": "10",
"skillId1": 220550,
"equipTargetId1": 0,
"individuality": ["5000", "702200", "2", "106", "201", "301", "304", "1000", "2001", "2019", "2008", "2011", "2037", "1004", "1132"],
"exceedCount": "0",
"classPassive": [54450],
"adjustHp": "0",
"adjustAtk": "0",
"skillLv2": "10",
"skillLv3": "10",
"skillId2": 1,
"skillId3": 2,
"treasureDeviceId": 702201,
"treasureDeviceLv": "5",
"deathRate": 520,
"status": "0"
}, {
"id": "253462308",
"userId": "100115223282",
"svtId": "200500",
"lv": "1",
"limitCount": "0",
"dispLimitCount": 1,
"imageLimitCount": 1,
"commandCardLimitCount": 1,
"iconLimitCount": 1,
"portraitLimitCount": 1,
"exp": "0",
"hp": "200000",
"atk": "143800",
"skillLv1": "10",
"skillId1": 3450,
"equipTargetId1": 0,
"individuality": ["5000", "200500", "2", "102", "201", "302", "304", "1000", "2001", "2006", "2008", "2011", "2037"],
"exceedCount": "0",
"classPassive": [34250, 20550],
"adjustHp": "0",
"adjustAtk": "0",
"skillLv2": "10",
"skillLv3": "10",
"skillId2": 1,
"skillId3": 2,
"treasureDeviceId": 200501,
"treasureDeviceLv": "5",
"deathRate": 315,
"status": "0"
}, {
"id": 7,
"userId": 0,
"svtId": 9934700,
"lv": 22,
"limitCount": 1,
"dispLimitCount": 0,
"imageLimitCount": 0,
"commandCardLimitCount": 0,
"iconLimitCount": 0,
"portraitLimitCount": 0,
"exp": 0,
"hp": 15903,
"atk": 3551,
"skillLv1": 1,
"skillId1": 960206,
"equipTargetId1": 0,
"individuality": ["5000", "5010", "1", "105", "201", "1004", "1112", "2001", "2019"],
"exceedCount": 0,
"classPassive": [],
"adjustHp": 0,
"adjustAtk": 0,
"skillId2": 0,
"skillId3": 0,
"skillLv2": 0,
"skillLv3": 0,
"treasureDeviceId": 302,
"treasureDeviceLv": 1,
"criticalRate": 300,
"starRate": -100,
"tdRate": 900,
"tdAttackRate": 900,
"deathRate": 500,
"aiId": 1000000,
"passiveSkill": [],
"chargeTurn": 6,
"actPriority": 1000,
"maxActNum": 1,
"hpGaugeType": 1,
"npcSvtType": 2,
"displayType": 1,
"npcSvtClassId": 0
}, {
"id": 8,
"userId": 0,
"svtId": 9934700,
"lv": 22,
"limitCount": 1,
"dispLimitCount": 0,
"imageLimitCount": 0,
"commandCardLimitCount": 0,
"iconLimitCount": 0,
"portraitLimitCount": 0,
"exp": 0,
"hp": 15903,
"atk": 3551,
"skillLv1": 1,
"skillId1": 960206,
"equipTargetId1": 0,
"individuality": ["5000", "5010", "1", "105", "201", "1004", "1112", "2001", "2019"],
"exceedCount": 0,
"classPassive": [],
"adjustHp": 0,
"adjustAtk": 0,
"skillId2": 0,
"skillId3": 0,
"skillLv2": 0,
"skillLv3": 0,
"treasureDeviceId": 302,
"treasureDeviceLv": 1,
"criticalRate": 300,
"starRate": -100,
"tdRate": 900,
"tdAttackRate": 900,
"deathRate": 500,
"aiId": 1000000,
"passiveSkill": [],
"chargeTurn": 6,
"actPriority": 1000,
"maxActNum": 1,
"hpGaugeType": 1,
"npcSvtType": 2,
"displayType": 1,
"npcSvtClassId": 0
}, {
"id": 9,
"userId": 0,
"svtId": 9933000,
"lv": 25,
"limitCount": 1,
"dispLimitCount": 0,
"imageLimitCount": 0,
"commandCardLimitCount": 0,
"iconLimitCount": 0,
"portraitLimitCount": 0,
"exp": 0,
"hp": 35319,
"atk": 4274,
"skillLv1": 1,
"skillId1": 960206,
"equipTargetId1": 0,
"individuality": ["5000", "5010", "2", "104", "201", "1004", "1110", "2001", "2019"],
"exceedCount": 0,
"classPassive": [],
"adjustHp": 0,
"adjustAtk": 0,
"skillId2": 0,
"skillId3": 0,
"skillLv2": 0,
"skillLv3": 0,
"treasureDeviceId": 273,
"treasureDeviceLv": 1,
"criticalRate": 100,
"starRate": 0,
"tdRate": 1200,
"tdAttackRate": 1200,
"deathRate": 500,
"aiId": 1000000,
"passiveSkill": [],
"chargeTurn": 6,
"actPriority": 250,
"maxActNum": 1,
"hpGaugeType": 1,
"npcSvtType": 2,
"displayType": 1,
"npcSvtClassId": 0
}, {
"id": 10,
"userId": 0,
"svtId": 9934700,
"lv": 32,
"limitCount": 1,
"dispLimitCount": 0,
"imageLimitCount": 0,
"commandCardLimitCount": 0,
"iconLimitCount": 0,
"portraitLimitCount": 0,
"exp": 0,
"hp": 55267,
"atk": 4881,
"skillLv1": 1,
"skillId1": 960206,
"equipTargetId1": 0,
"individuality": ["5000", "5010", "1", "105", "201", "1004", "1112", "2001", "2019"],
"exceedCount": 0,
"classPassive": [],
"adjustHp": 0,
"adjustAtk": 0,
"skillId2": 0,
"skillId3": 0,
"skillLv2": 0,
"skillLv3": 0,
"treasureDeviceId": 302,
"treasureDeviceLv": 1,
"criticalRate": 300,
"starRate": -100,
"tdRate": 900,
"tdAttackRate": 900,
"deathRate": 500,
"aiId": 1000000,
"passiveSkill": [],
"chargeTurn": 6,
"actPriority": 1000,
"maxActNum": 1,
"hpGaugeType": 1,
"npcSvtType": 2,
"displayType": 1,
"npcSvtClassId": 0
}, {
"id": 11,
"userId": 0,
"svtId": 9933000,
"lv": 25,
"limitCount": 1,
"dispLimitCount": 0,
"imageLimitCount": 0,
"commandCardLimitCount": 0,
"iconLimitCount": 0,
"portraitLimitCount": 0,
"exp": 0,
"hp": 35319,
"atk": 4274,
"skillLv1": 1,
"skillId1": 960206,
"equipTargetId1": 0,
"individuality": ["5000", "5010", "2", "104", "201", "1004", "1110", "2001", "2019"],
"exceedCount": 0,
"classPassive": [],
"adjustHp": 0,
"adjustAtk": 0,
"skillId2": 0,
"skillId3": 0,
"skillLv2": 0,
"skillLv3": 0,
"treasureDeviceId": 273,
"treasureDeviceLv": 1,
"criticalRate": 100,
"starRate": 0,
"tdRate": 1200,
"tdAttackRate": 1200,
"deathRate": 500,
"aiId": 1000000,
"passiveSkill": [],
"chargeTurn": 6,
"actPriority": 250,
"maxActNum": 1,
"hpGaugeType": 1,
"npcSvtType": 2,
"displayType": 1,
"npcSvtClassId": 0
}, {
"id": 12,
"userId": 0,
"svtId": 9933400,
"lv": 45,
"limitCount": 1,
"dispLimitCount": 0,
"imageLimitCount": 0,
"commandCardLimitCount": 0,
"iconLimitCount": 0,
"portraitLimitCount": 0,
"exp": 0,
"hp": 122898,
"atk": 7952,
"skillLv1": 1,
"skillId1": 960206,
"equipTargetId1": 0,
"individuality": ["5000", "5010", "106", "201", "1004", "1113", "2005"],
"exceedCount": 0,
"classPassive": [],
"adjustHp": 0,
"adjustAtk": 0,
"skillId2": 0,
"skillId3": 0,
"skillLv2": 0,
"skillLv3": 0,
"treasureDeviceId": 285,
"treasureDeviceLv": 1,
"criticalRate": 100,
"starRate": 0,
"tdRate": 800,
"tdAttackRate": 800,
"deathRate": 200,
"aiId": 1000000,
"passiveSkill": [],
"chargeTurn": 6,
"actPriority": 500,
"maxActNum": 1,
"hpGaugeType": 1,
"npcSvtType": 2,
"displayType": 1,
"npcSvtClassId": 0
}]
},
"id": "77937272"
}]
},
"updated": {
"userQuest": [{
"userId": 100115223282,
"questId": 94012301,
"questPhase": 0,
"clearNum": 0,
"isNew": false,
"isEternalOpen": false,
"expireAt": 0,
"keyExpireAt": 0,
"keyCountRemain": 0,
"challengeNum": 1,
"status": 0,
"lastStartedAt": 1532080473,
"createdAt": 1532080473,
"updatedAt": 1532080473
}],
"userGame": [{
"id": "151909",
"userId": "100115223282",
"usk": "975bb9df1282d8c8a28b",
"appuid": "84933655",
"appname": "consiadjec",
"rksdkid": "1",
"rkchannel": "24",
"name": "osinecjcda",
"birthDay": "0",
"actMax": "129",
"actRecoverAt": "1524001049",
"carryOverActPoint": 452,
"genderType": "1",
"lv": "107",
"exp": "12398350",
"qp": "111507360",
"costMax": "102",
"friendCode": "100115223282",
"favoriteUserSvtId": "22102994",
"friendKeepBase": "10",
"friendKeepAdjust": "47",
"commandSpellRecoverAt": "1485184731",
"svtStorageAdjust": "0",
"svtEquipStorageAdjust": "0",
"svtKeepBase": "350",
"svtKeepAdjust": "0",
"svtEquipKeepBase": "350",
"svtEquipKeepAdjust": "0",
"userEquipId": "152041",
"freeStone": "90",
"chargeStone": "0",
"getPay": "0,0,0,0,0,0,0",
"mana": "729",
"rarePri": "0",
"mainDeckId": "1343529",
"activeDeckId": 1343568,
"tutorial1": "268477422",
"tutorial2": "0",
"tutorialProgress": "3",
"darkGachaNum": "0",
"mregtime": "1485109212",
"zerotime": "1532016000",
"sweepNum": "15",
"uflag": "0",
"deviceinfo": "8116d384655ae538c1abfd2c2804346b;Android OS 7.1.1 \/ API-25 (NMF26F\/V9.5.5.0.NDDCNFA);Xiaomi MI MAX 2;com.bilibili.fatego",
"md5str": "7zkwinysaq",
"md5key": "671fba0fa6e2866749d481dbd748c88c",
"regtime": "1485109212",
"lasttime": "1532078218",
"thawAt": "0",
"updatedAt": "1485184731",
"createdAt": "1485184731",
"rewardGetIds": "[\"45\",\"47\",\"48\",\"49\",\"50\",\"51\",\"52\",\"53\",\"54\",\"55\",\"56\",\"57\",\"58\",\"59\",\"60\",\"61\",\"62\",\"63\",\"64\",\"65\",\"66\",\"67\",\"68\",\"69\",\"70\",\"71\",\"72\",\"73\",\"74\",\"75\",\"76\",\"77\",\"78\",\"79\",\"80\",\"81\",\"82\",\"83\",\"84\",\"85\",\"86\",\"87\",\"88\",\"89\",\"90\",\"92\",\"93\",\"94\",\"95\",\"96\",\"97\",\"98\",\"99\",\"100\",\"101\",\"102\",\"103\",\"104\",\"110\",\"105\",\"106\",\"107\",\"108\",\"109\",\"111\",\"112\",\"113\",\"114\",\"115\",\"116\",\"117\",\"118\",\"119\",\"120\",\"121\",\"122\",\"123\",\"124\",\"125\",\"126\",\"127\",\"128\",\"129\",\"131\",\"132\",\"133\",\"134\",\"135\",\"136\",\"137\",\"138\",\"139\",\"140\",\"141\",\"142\",\"143\",\"144\",\"145\",\"146\",\"147\",\"148\",\"149\",\"150\",\"151\",\"152\",\"153\",\"154\",\"155\",\"156\",\"157\",\"158\",\"159\",\"160\",\"161\",\"162\",\"163\",\"164\",\"165\",\"166\",\"167\",\"168\",\"169\",\"170\",\"171\",\"172\",\"173\",\"174\",\"175\",\"176\",\"177\",\"178\",\"179\",\"180\",\"182\",\"183\",\"184\"]",
"weekFriendPoint": "0",
"chargeRewardRecord": "",
"firstgoldtime": "1532078015",
"loginresettime": "1532030400",
"last_ac": "decksetup",
"last_ac_time": "1532080442",
"appVer": "1.21.0",
"tint01": "0",
"tint02": "1",
"tint03": "0",
"tint04": "179",
"tint05": "0",
"tint06": "1",
"tint07": "1",
"tint08": "1",
"tint09": "0",
"rpRecoverAt": "0",
"carryOverRaidPoint": "0",
"mainSupportDeckId": "1",
"message": "",
"stone": 90,
"friendKeep": 57,
"svtKeep": 350,
"svtEquipKeep": 350
}],
"userSvtCollection": [{
"userId": 100115223282,
"svtId": 700600,
"status": 1,
"maxLv": 0,
"maxHp": 0,
"maxAtk": 0,
"maxLimitCount": 0,
"skillLv1": 1,
"skillLv2": 1,
"skillLv3": 1,
"treasureDeviceLv1": 1,
"treasureDeviceLv2": 1,
"treasureDeviceLv3": 1,
"friendship": 0,
"friendshipRank": 0,
"updatedAt": 1532080473,
"createdAt": 1532080473,
"costumeIds": []
}]
},
"serverTime": 1532080473
},
"sign": "89b52919e8902e6652bd2e593c637432"
}
官方已经注意到这个repo了。。下次更新应该和谐掉了,希望不会大面积封禁账号。
iOS客户端,Anyproxy是用Mac配置的。
log里看到应该代理服务工作是正常的:
[AnyProxy Log][2018-05-27 16:00:14]: [internal https]proxy server for static.biligame.net established
[AnyProxy Log][2018-05-27 16:00:14]: received https CONNECT request pinterface.biligame.net
[AnyProxy Log][2018-05-27 16:00:14]: will forward to local https server
[AnyProxy Log][2018-05-27 16:00:14]: [internal https]proxy server for pinterface.biligame.net established
[AnyProxy Log][2018-05-27 16:00:14]: received request to: HEAD p.biligame.com/api/client/verify_channel?&
[AnyProxy Log][2018-05-27 16:00:14]: received request to: GET p.biligame.com/api/client/config?************************************
[AnyProxy Log][2018-05-27 16:00:15]: received https CONNECT request line3-s2-ios-fate.bilibiligame.net
[AnyProxy Log][2018-05-27 16:00:15]: will forward to local https server
[AnyProxy Log][2018-05-27 16:00:15]: [internal https]proxy server for line3-s2-ios-fate.bilibiligame.net established
[AnyProxy Log][2018-05-27 16:00:15]: received https CONNECT request line1-s2-ios-fate.bilibiligame.net
[AnyProxy Log][2018-05-27 16:00:15]: will forward to local https server
但是手机里打开游戏时提示“与服务器连接中断”
手机和电脑上的证书都已经信任了。
会报错201数据错误。
要拆包找算法了么...
get error on fiddler
%3D是URL编码的结果,System.Web.HttpUtility.UrlDecode可以进行URL解码,System.Web.HttpUtility.UrlEncode用于编码
需要import System.Web
anyproxy在家目录下有一个.anyproxy/cache文件夹。
长期开着科技,cache的体积越来越大。
能不能直接rm -rf掉这些cache文件夹?
我用下试试😂
抓了包感觉应该是能改的但是不知道是改哪个属性
主要的功能
//下面是处理userSvt
var svts = decJson['cache']['replaced']['battle'][0]['battleInfo']['userSvt'];
//var count = 0;
for (var i = 0; i < svts.length; i++) {
{
svts[i]['atk'] = 40000;
svts[i]['skillLv1'] = '10';
svts[i]['skillLv2'] = '10';
svts[i]['skillLv3'] = '10';
svts[i]['treasureDeviceLv'] = '5';
//console.log('原始血量:'+ ohp + ' 新血量:' + svts[i]['hp']);
//count = i;
}
if (svts[i]['hpGaugeType'] != undefined) {
// 最大1动
svts[i]['maxActNum'] = 0;
// 充能6格
svts[i]['chargeTurn'] = 6;
}
}
decJson['cache']['replaced']['battle'][0]['battleInfo']['userSvt'] = svts;
//不能上传js文件,上传的是txt,使用时改下后缀就行
war_board.txt
/*
//modify
撤退胜利
*/
module.exports = { * beforeSendRequest(requestDetail) {
if ((requestDetail.url.indexOf('ac.php') != -1) && requestDetail.requestData.indexOf('key=battleresult')!=-1) {
var newRequestData = requestDetail.requestData;
var newReqBodyStr = newRequestData.toString();
if(newReqBodyStr.indexOf('battleResult%22%3a3')!=-1){
newReqBodyStr = newReqBodyStr.replace('elapsedTurn%22%3a1','elapsedTurn%22%3a3');
newReqBodyStr = newReqBodyStr.replace('elapsedTurn%22%3a2','elapsedTurn%22%3a3');
newReqBodyStr = newReqBodyStr.replace("battleResult%22%3a3", "battleResult%22%3a1");
var regex1 = /aliveUniqueIds%22%3a%5b([\d+,%2c]+)%5d/gi;
newReqBodyStr = newReqBodyStr.replace(regex1, "aliveUniqueIds%22%3a%5b%5d");
}
var b = new Buffer(newReqBodyStr);
newRequestData = b;
return {
requestData: newRequestData
};
}
},
};
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.