宝石姫資源分享

先從https://cdn.app.jewepri-re.com/v{APP_VERSION}_{APP_HASH}/AssetBundles/assetbundle_Windows.txt抓資源清單,然後把清單中的資源名稱、MD5和Salt做SHA256就可以拿到真實路徑。格式如下:

{AssetName}+{AssetMD5}+ria_gpl_ab    # SHA256

思路是參考下面網頁,Salt是HookGeePlus.GPUL.AssetBundles.AssetBundleUtils:ComputeHash
不曉得怎麼抓遊戲版本和MD5,就看有哪位大老願意幫忙或從開網頁版按F12改一下

import csv
import hashlib
import requests

# Change game version and MD5
APP_VERSION = "5.6.2"
APP_HASH = "b7905cafa66eb94cab69539042170d62"

CDN_URL = f"https://cdn.app.jewepri-re.com/v{APP_VERSION}_{APP_HASH}/AssetBundles"
ASSET_LIST_URL = f"{CDN_URL}/assetbundle_Windows.txt"
ASSET_URL = f"{CDN_URL}/Windows_Hash"

SALT = "ria_gpl_ab"


def get_asset_list(downloaded_content):
  temp = list()

  reader = csv.reader(downloaded_content.splitlines(), delimiter=',')
  temp = [[row[1], hashlib.sha256((f"{row[1]}+{row[3]}+{SALT}").encode()).hexdigest()] 
    for row in reader]

  return temp


def download_asset(asset_list):
  session = requests.session()

  for item in asset_list:
    with requests.get(f"{ASSET_URL}/{item[1]}", stream=True) as r:
      r.raise_for_status()
      with open(item[0], "wb") as f:
        for chunk in r.iter_content(chunk_size=8192):
          f.write(chunk)

   print(f"Downloaded File: {item[0]}")
   #print(f"SHA256: {item[1]}")
  
  return None


def main():
  response = requests.get(ASSET_LIST_URL)
  if response.status_code != 200:
    print("Failed to get asset list, please check app version and app md5 hash.")
    return 1

  asset_list = get_asset_list(response.content.decode("UTF-8"))
  download_asset(asset_list)

  return 0


if __name__ == "__main__":
  main()

寢文本(寢動畫路徑放在文本)只能從後端拿到,用GeePlus.GPUL.Peerless.ScriptEngineCore::LoadScriptDump出來。
沒有全部,靠活動隨機寢給的(含純圖寢,除了合作角和最新的沒有)

百度:百度网盘 请输入提取码
提取碼:dfrx
解壓密碼:[email protected]