PADDashFormation/doc/export-player-data.html

276 lines
16 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>智龙急速阵型帮助</title>
<link rel="shortcut icon" href="images/icon.png" type="image/x-png" />
<meta name="viewport"
content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<style type="text/css">
code {
padding: .2em .4em;
margin: 0;
font-size: 85%;
background-color: rgba(175, 184, 193, 0.2);
border-radius: 6px;
font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
white-space: pre-wrap;
}
.block-code
{
display: block;
background-color: #ddd;
}
ul>li {
margin-bottom: 5px;
}
</style>
</head>
<body>
<h1>如何获取用户游戏数据<br>How to get user game data</h1>
<h2>目录 | Index</h2>
<ul class="index">
<li><a href="#android">安卓用户 | Android User</a>
<ul class="index">
<li><a href="#no-root">无 Root 设备用户 | No Root device user</a>
<ul class="index">
<li><a href="#use-HttpCanary">使用 HttpCanary | Use HttpCanary</a></li>
<li><a href="#use-Fidder">使用 Fidder | Use Fidder</a></li>
<li><a href="#multiple-devices">如何多设备登录 | How to login with multiple devices</a></li>
</ul>
</li>
<li><a href="#have-root">Root 设备用户 | Root device user</a></li>
</ul>
</li>
<li><a href="#ios">苹果用户 | iOS User</a></li>
</ul>
<h2 id="android">安卓用户 | Android User</h2>
<h3 id="no-root">无 Root 设备用户 | No Root device user</h3>
<p>你需要在在电脑上安装一个能运行智龙迷城的安卓模拟器,比如 夜神模拟器、逍遥安卓、蓝叠模拟器。后面以<a
href="https://www.bignox.com/">夜神模拟器国际版</a>进行讲解。(与夜神没有任何赞助关系。国际版自带谷歌套装,也能改中文)<br>
You'll need to install an Android simulator on your PC that runs P&amp;D, such as NoxPlayer, MEmu Play,
BlueStacks. I'll use <a href="https://www.bignox.com/">NoxPlayer</a> later to explain. (There is no sponsorship
relationship with NOX.)
</p>
<p>自行安装智龙迷城游戏并登录你的游戏账号。<br>
Install P&amp;D and log in to your game account.<br>
<img src="images/player-emu-pad-download-data.webp" alt="下载PAD数据">
</p>
<p>如果闪退,打开多开器,添加一个能运行智龙迷城的版本,目前有 安卓7 和 安卓7-64位。<br>
If P&amp;D can't be opened, run the Multi-Drive and add a version that runs P&amp;D, currently available in
Android 7 and Android 7-64 bits.<br>
<img src="images/player-emu-add-new.webp" alt="添加模拟器">
</p>
<p>然后你可以选择在安卓内使用 APP 和电脑上用代理软件两种方式抓包。<br>
You can then choose to sniffer in both use the APP within Android and proxy software on your PC.<br>
<img src="images/player-emu-add-new.webp" alt="添加模拟器">
</p>
<h4 id="use-HttpCanary">使用 HttpCanary APP | Use HttpCanary APP</h4>
<p>请自行从网上搜索并安装 <a href="https://www.423down.com/9279.html">HttpCanary</a>(已被谷歌商店下架)。<br>
Please search the web and install <a
href="https://apkpure.com/httpcanary-%E2%80%94-http-sniffer-capture-analysis/com.guoshi.httpcanary">HttpCanary</a>
yourself (It's blocked by google store).<br>
<img src="images/player-emu-install-apk.webp" alt="安装 APK">
</p>
<p>打开模拟器的 Root并重启。<br>
Open the simulator's root and restart.<br>
<img src="images/player-emu-open-root.webp" alt="打开 Root">
</p>
<p>运行 HttpCanary按照提示配置本地 VPN 和导入证书(系统可能要求设置密码)。<br>
Run HttpCanary, follow the prompts to configure the local VPN and import certificates (The system may require a
password).<br>
<img src="images/player-emu-httpcanary-vpn.webp" alt="开启 VPN">
<img src="images/player-emu-httpcanary-cer.webp" alt="安装证书"><br>
授予 Root 权限,将证书移至系统目录。安卓 7 以上必须这样做才能嗅探到 https 的流量。<br>
Grant Root permission to move the certificates to the system directory. Android 7 or above must do this to sniff
out https traffic.<br>
<img src="images/player-emu-httpcanary-move-cer.webp" alt="移动证书到系统目录">
</p>
<p>可以根据需要关闭 Root 了(日服客户端需要关闭 Root 才能运行)。<br>
Root can be closed as needed. (The Japanese version client needs to close Root operation.)
</p>
<p>HttpCanary 菜单内添加智龙迷城为目标应用,可减少其他流量的干扰。<br>
Add P&amp;D to the target app in HttpCanary menu, to reduce interference with other traffic.<br>
<img src="images/player-emu-httpcanary-target-app.webp" alt="设置目标应用">
</p>
<p>回到首页,点击主按钮开始嗅探流量。<br>
Back on the home page, click the main button to start sniffing traffic.<br>
<img src="images/player-emu-httpcanary-start.webp" alt="开始嗅探">
</p>
<p>运行智龙迷城游戏,直到登陆成功。<br>
Run the P&amp;D game until log in successfully.<br>
<img src="images/player-emu-pad-login.webp" alt="登录游戏">
</p>
<p>返回
HttpCanary找到<code>padsv.gungho.jp/api.php?action=get_player_data</code>网络请求。(一般紧跟<code>api.php?action=login</code><br>
Go back to HttpCanary to find the network request <code>padsv.gungho.jp/api.php?action=get_player_data</code>.
(Generally followed by <code>api.php?action=login</code>)<br>
<img src="images/player-emu-httpcanary-find-item.webp" alt="找到请求">
</p>
<p>进入该条目,保存响应体。<br>
Go to the entry and Save Response Body.<br>
<img src="images/player-emu-httpcanary-save-response-body.webp" alt="保存响应体">
</p>
<p>使用文件管理器找到<code>手机储存/HttpCanary/download/[你保存的名称]/response_body.html</code>,这个就是你的游戏数据。<br>
Use the file manager to find
<code>[Phone Storage]/HttpCanary/download/[The name you saved]/response_body.html</code>, and this is your game
data.<br>
<img src="images/player-emu-httpcanary-saved-data.webp" alt="保存的文件">
</p>
<p>打开模拟器的电脑共享目录。<br>
Open the simulator's PC shared folder.<br>
<img src="images/player-emu-open-pc-folder.webp" alt="打开电脑共享路径">
</p>
<p><code>response_body.html</code>复制到<code>手机储存/Download</code>文件夹,即可在电脑上看到文件。<br>
Copy <code>response_body.html</code> to <code>[Phone Storage]/Download</code> folder to see files on your
PC.<br>
<img src="images/player-emu-httpcanary-copy-to-download.webp" alt="复制到下载文件夹">
</p>
<p>到我的箱子功能里打开即可。<br>
Open my box function and open it.<br>
<img src="images/player-open-data.webp" alt="打开数据">
</p>
<p>每次获取新的数据,重复 启动 HttpCanary > 登录游戏 > 保存响应体 的步骤。<br>
Each time you get new data, repeat the steps to Start httpCanary > Log in to the game > Save Response Body.
</p>
<p>如果希望不要每次都重新使用 SNS 登录游戏,可以查看<a href="#multiple-devices">如何多设备登录</a><br>
If you want to not reuse the SNS login game every time, you can see <a href="#multiple-devices">How to login
with multiple devices</a>.
</p>
<h4 id="use-Fidder">在电脑上使用 Fidder | Use Fidder on PC</h4>
<p>在电脑上安装<a href="https://telerik-fiddler.s3.amazonaws.com/fiddler/FiddlerSetup.exe">Fiddler Classic</a><br>
Install <a href="https://telerik-fiddler.s3.amazonaws.com/fiddler/FiddlerSetup.exe">Fiddler Classic</a> on your PC.<br>
<img src="images/player-fidder-install.webp" alt="装好的 Fidder">
</p>
<p>为了使模拟器能连接 Fidder打开允许远程计算机连接的功能。<br>同时为避免抓到其他无用的流量,推荐你关闭自动设为系统代理的选项并重启 Fidder。<br>
In order for the simulator to connect to Fidder, turn on the feature that <em>Allow remote computers to connect</em>.<br>And for avoid catching unwanted traffic, it is recommended that turn off the option <em>Act as the system proxy on startup</em> and restart the Fidder.<br>
<img src="images/player-fidder-close-system-proxy.webp" alt="关闭默认代理">
</p>
<p>打开 HTTPS 解密,警告询问你是否添加证书到电脑可以选择否,因为我们不需要解密电脑上的流量。<br>
Turn on <em>decrypt HTTPS traffic</em>. The warning asks if you want to add the certificate to your PC and you can choose No because we don't need to decrypt traffic from your PC.<br>
<img src="images/player-fidder-decrypt-https.webp" alt="打开 HTTPS解密">
</p>
<p>将根证书导出到桌面,之后你将会在桌面上看到一个<code>FiddlerRoot.cer</code>文件。<br>
Export the root certificate to the desktop. You will then see a file <code>FiddlerRoot.cer</code> on your desktop.<br>
<img src="images/player-fidder-export-cer-to-desktop.webp" alt="导出证书到桌面">
</p>
<p>在桌面按住 <strong>Shift</strong> 点击鼠标右键,在此打开 PowerShell。<br>
Press and hold <strong>Shift</strong> on the desktop and right-click to open PowerShell here.<br>
<img src="images/player-fidder-export-cer-open-powershell.webp" alt="打开PowerShell">
</p>
<p>在 PowerShell 中,执行以下代码,之后你将会在桌面上,见到一个<code>269953fb.0</code>文件。<br>
In PowerShell, execute the following codes, and then you'll see a <code>269953fb.0</code> file on your desktop.<br><br>
<code class="block-code"># get the cer full path
$cert_path=Resolve-Path "FiddlerRoot.cer";
# create a cert object
$cert=New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($cert_path);
# create a md5 object
$md5 = New-Object -TypeName System.Security.Cryptography.MD5CryptoServiceProvider;
# to openssl hash "-subject_hash_old"
# get the cert SubjectName md5 hash
$md5bin = $md5.ComputeHash($cert.SubjectName.RawData);
# convert to this format bytes
$hashnum = ([long]$md5bin[0] -bor ([long]$md5bin[1] -shl 8) -bor ([long]$md5bin[2] -shl 16) -bor ([long]$md5bin[3] -shl 24)) -band 0xffffffff;
# convert bytes to file name
$pem_name = [Convert]::ToString($hashnum, 16).padleft(8,"0")+".0";
# create PEM format content
$str=New-Object System.Text.StringBuilder("");
$str.AppendLine("-----BEGIN CERTIFICATE-----");
$str.AppendLine([Convert]::ToBase64String($cert.RawData, [Base64FormattingOptions]::InsertLineBreaks));
$str.AppendLine("-----END CERTIFICATE-----");
# save the file
$str.ToString() | Out-File -Encoding ascii -FilePath $pem_name</code><br><br>
<img src="images/player-fidder-export-cer-convert.webp" alt="证书格式转换">
</p>
<p>打开模拟器的 Root并重启。<br>
Open the simulator's root and restart.<br>
<img src="images/player-emu-open-root.webp" alt="打开 Root">
</p>
<p>使用共享文件夹,将<code>269953fb.0</code>转移到模拟器。<br>
Use the shared folder to transfer <code>269953fb.0</code> to the simulator.<br>
<img src="images/player-fidder-export-cer-shared-folder.webp" alt="传送到模拟器">
</p>
<p><code>269953fb.0</code>复制到<code>/system/etc/security/cacerts</code>文件夹内。<br>
Copy the <code>269953fb.0</code> to the <code>/system/etc/security/cacerts</code> folder.<br>
<img src="images/player-fidder-export-cer-copy-to-system.webp" alt="复制到系统文件夹">
</p>
<p>打开<code>269953fb.0</code>文件属性,设置权限为<code>-rw-r--r--(644)</code><br>
Open <code>269953fb.0</code> file properties and set permissions to <code>-rw-r--r--(644)</code><br>
<img src="images/player-fidder-export-cer-set-permissions.webp" alt="设置文件属性">
</p>
<p><strong>重启模拟器</strong>,以使证书被系统读取。<br>
<strong>Restart the simulator</strong> so that the certificate is read by the system.
</p>
<p>可以根据需要关闭 Root 了(日服客户端需要关闭 Root 才能运行)。<br>
Root can be closed as needed. (The Japanese version client needs to close Root operation.)
</p>
<p>修改模拟器内 WiFi 的代理,改为手动模式,主机名为电脑的网卡 IP端口号为 8888。<br>
Modify the proxy of WiFi in the simulator to manual mode, the host name is the computer's network card IP, port number 8888.<br>
<img src="images/player-fidder-export-cer-set-proxy.webp" alt="设置WiFi代理"><br>
你可以在电脑网卡属性里找到当前 IP。<br>
You can find the current IP in the PC network card properties.<br>
<img src="images/player-fidder-export-cer-get-pc-ip.webp" alt="查找计算机IP">
</p>
<p>打开 Fiddler 的自动解码和流式传输。<br>
Turn on Fiddler's auto Decode and Stream.<br>
<img src="images/player-fidder-open-auto-decode.webp" alt="自动解码">
</p>
<p>运行智龙迷城游戏,直到登陆成功。<br>
Run the P&amp;D game until log in successfully.<br>
<img src="images/player-emu-pad-login.webp" alt="登录游戏">
</p>
<p>然后在 Fidder 内找到<code>padsv.gungho.jp/api.php?action=get_player_data</code>网络请求。(一般紧跟<code>api.php?action=login</code><br>
Go back to Fidder to find the network request <code>padsv.gungho.jp/api.php?action=get_player_data</code>.
<img src="images/player-fidder-found-traffic.webp" alt="发现网络请求">
</p>
<p>在右键菜单内选择保存响应体。<br>
Select Save Response Body within the right-click menu.<br>
<img src="images/player-fidder-save-response-body.webp" alt="保存响应体">
</p>
<p>到我的箱子功能里打开即可。<br>
Open my box function and open it.<br>
<img src="images/player-open-data.webp" alt="打开数据">
</p>
<p>每次获取新的数据,重复 开启 Fidder > 模拟器内登录游戏 > 保存响应体 的步骤。<br>
Each time you get new data, repeat the steps to Start Fidder > Log in to the game in the simulator > Save Response Body.
</p>
<p>如果希望不要每次都重新使用 SNS 登录游戏,可以查看<a href="#multiple-devices">如何多设备登录</a><br>
If you want to not reuse the SNS login game every time, you can see <a href="#multiple-devices">How to login
with multiple devices</a>.
</p>
<h5>自动保存响应体 | Auto Save Response Body</h5>
<p>Fidder 可以使用脚本自动保存响应体。<br>
Fidder can use scripts to automatically save Response Body.
</p>
<p>在 Fidder 脚本中,快速跳转到<code>OnBeforeResponse</code><br>
In the Fidder Script, quickly jump to the <code>OnBeforeResponse</code><br>
<img src="images/player-fidder-go-to-script.webp" alt="跳到 OnBeforeResponse">
</p>
<p>将以下代码插入<code>OnBeforeResponse</code>代码括号内,并保存。<br>
Insert the following code into the parenthesis of the <code>OnBeforeResponse</code> code and save it.<br>
<img src="images/player-fidder-paste-code.webp" alt="保存代码"><br>
记得将第一行的文件路径修搞到你自己的文件夹,因为是转义符,右斜杠需要写两次。<br>
Remember to fix the first line of file paths to your own folder, because it's an escape character, and the right slash needs to be written twice.<br><br>
<code class="block-code">// the file saved path
var PADDataPath = "D:\\PAD_Data";
if (oSession.uriContains("action=get_player_data")) {
oSession.SaveResponseBody(PADDataPath + "\\player-data-" + new Date().getTime() + ".json");
}</code>
</p>
<h4 id="multiple-devices">如何多设备登录 | How to login with multiple devices</h4>
<p>导出<code>data048.bin</code></p>
<p>待写 To be written</p>
<h3 id="have-root">Root 设备用户 | Root device user</h3>
<p>请参考<a href="#use-HttpCanary">HttpCanary</a>方法。<br>
Refer to the <a href="#use-HttpCanary">HttpCanary</a> method.</p>
<h2 id="ios">苹果用户 | iOS User</h2>
<p>我没有苹果设备无法研究iOS。可以临时 SNS 跨平台到<a href="#no-root"></a>安卓模拟器</a>登录,进行数据导出。<br>
I don't have an Apple device so I can't study iOS. You can temporarily across platforms login to <a
href="#no-root">Android Simulator</a> for data export.</p>
</body>
</html>