PADDashFormation/monsters-info
枫谷剑仙 58aabed9c3 v21.2阴阳加护 2023-12-19 20:33:36 +08:00
..
custom 2023年7月21日 2023-07-21 19:05:15 +08:00
official-API v21.2阴阳加护 2023-12-19 20:33:36 +08:00
README.md 2023年7月21日 2023-07-21 19:05:15 +08:00
ckey.json v21.2阴阳加护 2023-12-19 20:33:36 +08:00
extractByNode.js 解决“变身到”,重复减少id的问题 2023-04-28 16:21:08 +08:00
extract_CHT.js 2023年7月21日 2023-07-21 19:05:15 +08:00
mon_en.json v21.2阴阳加护 2023-12-19 20:33:36 +08:00
mon_ja.json v21.2阴阳加护 2023-12-19 20:33:36 +08:00
mon_ko.json v21.2阴阳加护 2023-12-19 20:33:36 +08:00
skill_en.json 2023年12月15日 2023-12-15 23:28:41 +08:00
skill_ja.json v21.2阴阳加护 2023-12-19 20:33:36 +08:00
skill_ko.json 更新了一点技能 2023-12-08 17:53:52 +08:00
提取中文数据.bat 转换为node模块,加速简繁转换 2021-02-25 22:27:17 +08:00
提取整合怪物信息.bat v17.3 2019-07-25 18:24:30 +08:00

README.md

如何获取怪物数据 | How to acquire monster data

  • 目前的获取 API 为
    The current acquisition API is

    语言 API
    <97><A5>语(ja) | ttps://api-adrv2.padsv.gungho.jp/api.php?action=download_card_data
    https://api-adrv2.padsv.gungho.jp/api.php?action=download_skill_data |
    <8B><B1>语(en) | ttps://api-na-adrv2.padsv.gungho.jp/api.php?action=download_card_data
    https://api-na-adrv2.padsv.gungho.jp/api.php?action=download_skill_data |
    <9F><A9>语(ko) | ttps://api-kr-adrv2.padsv.gungho.jp/api.php?action=download_card_data
    https://api-kr-adrv2.padsv.gungho.jp/api.php?action=download_skill_data |
  • 但是有加密的参数,我不知道如何生成,所以我只能从游戏的下载过程截获。
    But there are encrypted parameters that I don't know how to generate. So I intercepted from the game's download process.

  • 使用 Fiddler,执行 HTTPS 中间人攻击从游戏内抓包获得怪物信息。
    Use Fiddler, do HTTPS man-in-the-middle attack to capture monster information from in-game capture.

  • 安卓5可以直接在安卓系统里安装 CER 证书但安卓7开始系统不再信任用户证书。由于需要安卓 7 才能玩智龙迷城,所以要先创建安卓 7 的模拟器,再安装智龙迷城。
    Android 5 can install CER certificates directly in Android. Starting with Android 7, the system no longer trusts user certificates. Since Android 7 is required to play PAD, you must create an emulator for Android 7 before installing PAD.

  • 将 Fidder 根证书导出到桌面
    Export the Fidder Root Certificate to desktop

  • 在电脑上找一个 openssl.exe 程序,或者下载安装 Win32OpenSSL
    Find an openssl.exe program on computer, or install Win32OpenSSL

  • 执行代码获取证书的hash
    Execute the code to get the hash of the certificate
    openssl x509 -inform DER -in FiddlerRoot.cer -subject_hash_old -noout

  • 执行代码,将证书由 CER 转换为 PEM 格式
    Execute the code to convert the certificate from CER to PEM format
    openssl x509 -inform DER -in FiddlerRoot.cer -outform PEM -out [hash].0

  • 将证书文件放入安卓系统证书文件夹/system/etc/security/cacerts/
    Place the certificate file in the Android system certificate folder/system/etc/security/cacerts/
    参考/Reference: https://www.jianshu.com/p/035f7d7a0f7e

    蓝叠模拟器 | BlueStacks
    1. 关闭所有安卓模拟器
      Close all Android emulators
    2. 进入安装时设定的 BlueStacks_nxt 位置找到模拟器的系统虚拟磁盘文件。默认为C:\ProgramData\BlueStacks_nxt\Engine\Nougat64\Root.vhd
      Go to the BlueStacks_nxt location set during installation to locate the emulator's system vDisk file. The default is C:\ProgramData\BlueStacks_nxt\Engine\Nougat64\Root.vhd.
    3. 双击Root.vhd挂载到 Windows 磁盘管理中。
      Double-click Root.vhd to mount it into Windows Disk Management.
    4. 运行 Ext2FsdExt2 Volume Manager,选中刚刚挂载的 EXT4 格式磁盘,右键菜单选择“加载装配点盘符”或按F4快捷键,给虚拟磁盘分配一个盘符。
      Run Ext2 Volume Manager of Ext2Fsd, select the EXT4 format disk you just mounted, right-click the menu and select "Assign Drive Letter" or press the F4 shortcut key to assign a drive letter to the virtual disk.
    5. 在 Windows 下,将证书复制到X:\android\system\etc\security\cacerts\
      Under Windows, copy the certificate to X:\android\system\etc\security\cacerts\
    6. Ext2 Volume Manager 内,在虚拟磁盘的右键菜单选择“保存系统缓冲”或按F11快捷键。
      In Ext2 Volume Manager, select "Flush Cache to Disk" or press the F11 shortcut from the context menu of the virtual disk.
    7. Ext2 Volume Manager 内,在虚拟磁盘的右键菜单选择“更改装配点盘符”或按F10快捷键,删除分配的盘符。
      In Ext2 Volume Manager, select "Change Drive Letter" or press the F10 shortcut key to delete the assigned drive letter.
    8. 运行 diskmgmt.msc 打开系统磁盘管理在虚拟磁盘上点击右键选择“分离VHD”。
      Run diskmgmt.msc to open System Disk Management, right-click on the virtual disk and select "Detach VHD".
    9. 运行模拟器,在 设置-高级 内打开 Android调试(ADB),并记下调试 IP 和端口,默认为127.0.0.1:5555
      Run the emulator, open Android Debugging (ADB) in Settings-Advanced, and note the debug IP and port, which defaults to 127.0.0.1:5555
    10. 在终端里输入adb connect 127.0.0.1:5555连接设备
      Enter adb connect 127.0.0.1:5555 in the terminal to connect the device
    11. 将安卓模拟器内的网络代理设置到 Fidder 上。蓝叠里的真实电脑IP默认为10.0.2.2Fidder 默认端口为8888,在终端里输入adb -s 127.0.0.1:5555 shell settings put global http_proxy 10.0.2.2:8888
      Set the network proxy in the Android emulator to Fidder. The default real computer IP in BlueStacks is 10.0.2.2, the default port of Fidder is 8888, enter in the terminal adb -s 127.0.0.1:5555 shell settings put global http_proxy 10.0.2.2:8888
    夜神模拟器 | NoxPlayer
    1. 打开安卓模拟器的Root
      Turn on the Root of the Android simulator
    2. 在模拟器内使用支持root读写的文件管理器将证书复制到/system/etc/security/cacerts/,并修改为 644 权限
      Within the emulator, use a file manager that supports root reading and writing, to copy the certificate to /system/etc/security/cacerts/ and modify it to 644 permissions
    3. 重启安卓模拟器
      Restart the Android simulator
    4. 关闭安卓模拟器的 Root
      Turn off the Root of the Android simulator
    5. 将安卓模拟器内的 WiFi 代理设置到 Fidder 上。夜神里的真实电脑IP默认为172.17.100.2Fidder 默认端口为8888
      Set up the WiFi proxy in the Android emulator to Fidder. The real computer IP in Nox defaults to 172.17.100.2, and the Fidder default port is 8888
  • 打开 Fidder 的 允许远程计算机连接、HTTPS 解密、流式传输,和 GZIP 解码
    Turn on Fidder's "Allow remote computers to connet", "HTTPS decrypt", "Stream" and "Decode"

  • 现在你运行模拟器内的游戏Fidder 就能够截获和解密智龙迷城的数据了。将返回的 JSON 数据保存为文件。
    Now that you're running the game inside the simulator, Fidder will be able to intercept and decrypt the data from the PAD. Save the response JSON data as a file.

  • [可选的]将以下代码加入 Fidder 的自定义代码的OnBeforeResponse中就可以每次自动保存文件了。
    [Optional]Add the following code to OnBeforeResponse of Fidder's Customize Rules to save the file automatically each time.

    //自动储存智龙迷城数据
    switch (oSession.hostname) {
    	case "api-adr.padsv.gungho.jp": //日服域名
    	case "api-ht-adr.padsv.gungho.jp":{ //港台服域名
    		savePADData("ja");
    		break;
    	}
    	case "api-na-adrv2.padsv.gungho.jp":{ //美服域名
    		savePADData("en");
    		break;
    	}
    	case "api-kr-adrv2.padsv.gungho.jp":{ //韩服域名
    		savePADData("ko");
    		break;
    	}
    }
    function savePADData(serverName: String) {
    	//智龙迷城数据文件位置
    	var PADDataPath: String = "D:\\www\\PADDashFormation\\monsters-info\\official-API\\";
    	if (oSession.uriContains("download_card_data")) { //自动保存怪物数据
    		oSession.SaveResponseBody(Path.Combine(PADDataPath, serverName + "-card.json"));
    	}
    	if (oSession.uriContains("download_skill_data")) { //自动保存技能数据
    		oSession.SaveResponseBody(Path.Combine(PADDataPath, serverName + "-skill.json"));
    	}
    }
    
  • 运行提取整合怪物信息.bat
    Execute the following code in CMD

    node.exe extractByNode.js
    
  • 会将每种语言的信息提取到一个文件内,互相之间也保留有不同语言的怪物名称、标签数据
    Each language's information is extracted into a file, and monster names and tag data in different languages are retained from each other


Only For 🇨🇳Chinese

CHT.jsonCHS.json的中文信息来源于战友网,见子项目 https://github.com/Mapaler/Download-pad.skyozora.com

运行提取中文数据.bat,将战友网页面内容抽出,抽出过程使用 opencc-js 的 NodeJs 模块来繁转简。 然后再运行一遍 提取整合怪物信息.bat 把中文插进去。