# Pad - Capture data 有問題可以查看 https://mapaler.github.io/PADDashFormation/doc/export-player-data.html https://github.com/Mapaler/Puzzle-and-Dragons-Data-Files/tree/master ### 1. 如果開了 ROOT 權限 則不能開啟 PAD ### 2. 獲取 PAD 資料 1. 雷電模擬器 安裝 PAD 並且更新資料到最新 2. 找到模擬器資料位置 `E:\LDPlayer\LDPlayer9\vms\leidian0\data.vmdk` 多個模擬器就在 `E:\LDPlayer\LDPlayer9\vms\leidian[0 1 2 ... ]` 3. 安裝 [Arsenal Image Mounter](https://www.mediafire.com/file/yzmay1lfzjp5j3f/Arsenal-Image-Mounter-v3.12.331.zip/file) 並掛載 vmdk `E:\LDPlayer\LDPlayer9\vms\leidian0\data.vmdk` 直接掛載就好(不用選其他選項) 5. [Ex2Fsd](https://www.mediafire.com/file/tt661rrn5jk3lwb/Ext2Fsd-0.71b-setup.rar/file) 用這個程式給 vmdk 一個盤符就可以開啟了 6. 資料放在 `<盤符>:\data\jp.gungho.padHT\files\mon2` * BlueStack 的資料放在 `E:\ProgramData\BlueStacks_nxt\Engine\Pie64\Data.vhdx` 一樣第3步驟用 Arsenal Image Mounter 加上 第4步驟 Ex2Fsd就可以開啟 * Nox 的資料放在 `E:\Program Files\Nox\bin\BignoxVMS\nox\nox-disk2.vmdk` 一樣步驟3(改用[OSFMount](https://www.mediafire.com/file/9a2fovp7clid0hm/osfmount.exe/file))+4 ### 2. 從 Fiddler 取得資料 1. 下載 [Fiddler](https://www.mediafire.com/file/7hmnt16ybwcmzw2/FiddlerSetup.exe/file) 2.     將證書複製到桌面 若有 `openssl` 直接將 `FiddlerRoot.cer`轉換到安卓需要的格式 ```bash ::Get Hash Value openssl x509 -inform DER -in FiddlerRoot.cer -subject_hash_old -noout ::It may output "269953fb" ::Convert to PEM version and rename to Android system rule, <Hash Value>.0 openssl x509 -inform DER -in FiddlerRoot.cer -outform PEM -out 269953fb.0 ``` 若沒有 `openssl` 打開 `PowerShell` 執行下面後會有 `xxxxxx.0` 檔案 ```bash # 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 ``` 3. 放證書到`BlueStacks` 打開 `DiskManager` Attach `Root.vhd` 在使用 `Ext2 Volumn Manager` 給盤符就可以打開了     複製剛才的 `xxxxxxxx.0` 到 `<?>:\android\system\etc\security\cacerts` 然後在 `Ex2 Volumn Manager` 中 Flush to Disk 然後再 Detach VHD   4. 打開 `BlueStacks` 的 Debug Bridge  然後找到 `C:\Program Files\BlueStacks_nxt` 下的 `HD-Adb.exe`  打開 CMD ```bash # 連接 HD-Adb connect 127.0.0.1:5555 # 查看是否已連接 HD-Adb devices # 設置代理 HD-Adb -s 127.0.0.1:5555 shell settings put global http_proxy 10.0.2.2:8888 # 取消代理 HD-Adb -s 127.0.0.1:5555 shell settings put global http_proxy :0 ``` 就可以連接讓 `Fiddler` 抓到封包了  ### 3. 從雷電模擬器取得資料 打開磁碟 選擇可寫入 (放入後 CRT後不可改回唯讀 否則檔案會消失)  打開橋接模式  打開ROOT權限和 ADB偵錯  打開檔案夾 複製 xxxxxxxxx.0 檔案到 電腦資料夾  打開 `android` 資料夾選擇檔案後移動到 `/system/etc/security/cacerts`  點右上角三個點後 貼上選取項目  方法一 去本 wifi 右上角以點選後設定 proxy 設定為電腦端IP和8888  方法二 去 LDPlayer的資料夾下 ```bash cd E:\LDPlayer\LDPlayer9> adb connect 127.0.0.1:5555 # 192.168.0.85 為電腦端IP adb -s 127.0.0.1:5555 shell settings put global http_proxy 192.168.0.85:8888 # 然後 adb devices 確認狀態 adb devices ```  這樣就可以打開 Fiddler 抓取封包 ### 4. 設定自動抓取  ```bash var padDataPath = "D:\\PAD_data"; if (oSession.uriContains("action=get_player_data")) { oSession.SaveResponseBody(padDataPath + "\\player-data-" + new Date().getTime() + ".json"); } ``` 或是手動下載  ### 5. 登入不同的帳號 提取 `data.vhd` 或是 `data.vmdk` 下的 `data > jp.gungho.pad > files > data048.bin` 在 雷電模擬器 掛載 `vmdk` 要開啟 write original vmdk  ### 分析 `dataXXX.bin` 不同作用 原本不刪除任何資料  刪除 `data021.bin` 會抓到 `?action=download_card_data`  刪除 `data024.bin` 會抓到 `?action=download_dungeon_data`  刪除 `data028.bin` 不是下載資料 沒有自動創建 * `data028.bin` 沒有自動創建 當 41~43其中一個不見時會自動創建 * `data031.bin` 會自動創建 * `data032.bin` 會自動創建 * `data038.bin` 會自動創建 * `data039.bin` 會自動創建 * `data056.bin` 會自動創建 * `data075.bin` 會自動創建 * `data078.bin` 會自動創建  刪除 `data029.bin` 會抓到 `?action=download_enemy_skill_data`  刪除 `data033.bin` 會抓到 `?action=get_dung_sale`  刪除 `data034.bin` 會抓到 `?action=shop_item`  刪除 `data035.bin` 會抓到 `?action=dl_al` `?action=al_infoall` `?action=dl_al` 降臨關卡資料  刪除 `data036.bin` 會抓到 `?action=download_skill_data`  刪除 `data037.bin` 會抓到 `?action=mdatadl` 多一個  刪除 `data040.bin` 會抓到 `?action=mdatadl` 多一個  刪除 `data041.bin` 會抓到 `?action=mdatadl` 多一個  刪除 `data042.bin` 會抓到 `?action=mdatadl` 多一個  刪除 `data043.bin` 會抓到 `?action=mdatadl` 多一個  抽卡片會抓到  :::danger BlueStacks version: 5.12.115 - Pie64 -> Pad閃退 - Android 11 -> Pad閃退 5.22.130.2003 - P64 -> Can't modify Root.vhd -> 可以開 PAD - Android 11 -> Can't modify Root.vhd -> 可以開 PAD 5.22.125.1001 OK - P64 -> 可以更改 Root.vhd -> 可以開 Pad 5.20.0.1037 - P64 -> can't open Pad - Android 11 -> Pad閃退 5.21.615.1015 - P64 -> can't open Pad - Android 11 -> Pad閃退 5.2.130.1002 - Can't create P64 5.12.102.1001 - P64 -> Pad閃退 - Android 11 -> Pad閃退 Nox 7.0.6.2 - Android 7 不能創建 解鎖失敗 7.0.6.1 - Android 12 不能開 Pad :::
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up