FGO用Charles抓包数据并导入Chaldea
随着FGO日服强制更新安卓7.0,可以无脑抓包的蓝mumu6也暂时告别舞台
这里以安卓9的雷电模拟器9(海外版)为例,演示安卓7.0及以上版本模拟器的证书导入及抓包

需要的软件:Charles、OpenSSL
可以点击文中的官网链接,也会打包放在网盘(见评论区)

一、Charles安装及设置
1.安装Charles
https://www.charlesproxy.com/download/
(这里只给出官网试用版,毕竟不破解也能用)
安装一直点next就完了,没有什么需要注意的
2.确认Proxy Settings


3.设置SSL Proxying Settings


4.设置Access Control Settings

记下本机ipv4地址,以192.168开头


输入上面记下的ip地址

5.保存证书


我在这里选择的是.pem格式,文件名为ca,保存到E盘的根目录,最后得到一个ca.pem文件
到这里Charles的设置就完成了,可以关掉软件

二、用OpenSSL修改证书
1.下载并安装OpenSSL(已经安装Git的不用安装)
https://slproweb.com/products/Win32OpenSSL.html

安装中途注意一下:

2.安装完成后打开安装目录
\OpenSSL-Win64\bin (Git在\Git\usr\bin)
将刚才生成的证书ca.pem复制进来

在当前位置打开命令提示符

运行命令:
openssl x509 -inform PEM -subject_hash_old -in ca.pem

会得到一个hash值

将ca.pem重命名为********.0文件,*******填入你生成的hash值


三、导入证书到模拟器
1.打开雷电模拟器
模拟器设置——磁盘共享——改为System.vmdk可写入

其他设置——ROOT权限开启,ADB开启本地连接

安卓设置——关于平板电脑

连点5次版本号进入开发者模式

安卓设置——系统——高级———开发者选项——Root access——设为Apps and ADB

2.打开模拟器安装文件夹
\LDPlayer\LDPlayer9
确认有adb文件存在,把第二步生成的证书复制进来

在当前位置打开CMD
运行以下命令:
adb root
adb remount
adb push ********.0 /system/etc/security/cacerts
*******填入刚才证书的文件名

如果中途报错提示error: device not found
运行命令:
adb kill-server
然后重新执行上面三条命令
3.设置代理
打开安卓系统的网络设置——右上角修改按钮

设置代理为手动,填写第一步时确认的ip地址及端口号

对于某些无法设置代理的模拟器版本:用adb命令设置代理
adb shell settings put global http_proxy IP地址:端口号
注:清除代理运行以下命令
adb shell settings delete global http_proxy
adb shell settings delete global global_http_proxy_host
adb shell settings delete global global_http_proxy_port

四、抓包
1.打开Charles软件
这里取消勾选Windows Proxy
扫把按钮可以清除记录,把旁边录制按钮点为红色,表明正在录制

2.模拟器重启并打开FGO,直到看到地球仪或公告栏
按下图找所在服务器的域名
国服域名可能会是line1、line2、line3的其中一个
以文件内的ac.php......_key=toplogin为准
右键点击——Save Response,保存为ac.php文件

3.打开解码小程序
https://docs.chaldea.center/zh/guide/import_https/decoder.html
点击“加载文件”,选择刚才保存的ac.php文件
会自动输出结果,点击“结果另存为”,保存.json文件
(这一步可能会慢一些,请耐心等待)

4.在Chaldea中导入刚才保存的.json文件


Chaldea使用指南:
https://docs.chaldea.center/zh/guide/