首页 > 其他分享 >星趴解包教程

星趴解包教程

时间:2024-05-02 10:23:00浏览次数:16  
标签:rawname 文件 教程 导出 解包 dic 点击 资源

目录
本篇文章偏小白向,有一定基础的可以选择性阅读
本文仅供学习交流使用,请勿用于商业用途。

更新至 2024.5.2, 星趴版本号 v1.2.3_20240430_123a

#1 提取资源文件

  • 启动你的星趴
  • 按下 Ctrl+Shift+Esc 打开任务管理器(右键任务栏,选择「任务管理器」亦可)
  • 找到 AstralParty.exe(如果你看到的是乱序的列表,点击窗口上部左侧的「名称」进行排序)
  • 右键 AstralParty.exe,选择「打开文件所在的位置」
  • 这时候跳出的文件资源管理器的窗口就是星趴的根目录了,大概长这样:
  • 依次打开文件夹 AstralParty_Data StreamingAssets aa StandaloneWindows64,可以看到许多以 .bundle 为扩展名的文件,这些就是星趴的资源文件了
    • 如果没看到扩展名 .bundle,可以点击窗口上部的「查看」,并勾选右侧的「文件扩展名」
  • 我们并不希望影响星趴的正常运行,所以将你想要的文件(如果你不清楚你想要的文件是哪些,那就 Ctrl+A 全选)复制到别的地方(下文以文件夹「tutorial」为例)
    • 不必担心其他类型的文件,它们没有影响

#2 解密

  • 在「tutorial」文件夹下新建一个文本文档并打开
    • 如果没看到扩展名 .txt,可以点击窗口上部的「查看」,并勾选右侧的「文件扩展名」(见图 3)
  • 复制下面的部分至文本文档中
<# :
cls&echo off&cd /d "%~dp0"&rem bat存为ANSI/GB2312编码
path %SYSTEMROOT%\System32\WindowsPowerShell\v1.0;%path%
set "self=%~f0"
powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal '%~f0'|Out-String|Invoke-Expression"
pause
exit
#>
$self=get-item -literal $env:self;
$current=$self.Directory.FullName.trimend('\');
$len=18;
$newfolder=$current+'\stripped';
if(-not (test-path -literal $newfolder)){[void][IO.Directory]::CreateDirectory($newfolder);}
$files=@(dir -literal $current|?{($self.Extension -ne $_.Extension) -and ($_ -is [System.IO.FileInfo])});
for($i=0;$i -lt $files.length;$i++){
    $arr=[IO.File]::ReadAllBytes($files[$i].FullName);
    $brr=@();
    if($arr.length -gt $len){$brr=$arr[$len..($arr.length-1)];}
    $newfile=$newfolder.trimend('\')+'\'+$files[$i].Name;
    write-host $files[$i].Name ' (' ($i+1) '/' $files.length ')' -Separator '';
    [IO.File]::WriteAllBytes($newfile, $brr);
}

本段代码的目的是去除文件的前 18 个字节

  • 关闭文本文档,将其重命名为 strip.bat
    • 跳出如下窗口时选择「是」
  • 双击打开 strip.bat,待出现「请按任意键继续...」后关闭,此时文件夹 stripped 下的文件就可以用于下一步了

#3 读取资源

  • 打开这个链接(打不开的话多刷新几次),下载页面底部 net7.0 开头的 .zip 文件
  • 解压后打开里面的 AssetStudio.GUI.exe
  • 调整配置如下
    • 别问我为什么可以同时开两个菜单,这是两张图拼起来的
  • 点击左上角的 File 点击菜单中的 Load Folder 并选择刚才的 stripped 文件夹
  • 待下方的进度条满(文件数较多时请耐心等待)后点击上方的 Asset List,即可看到内部的资源
    • 点击部分资源右边会出现预览图

#4 导出资源

#4.1 导出单个 / 少量资源

  • 在左侧列表中选中需要导出的资源并右键,选择 Export selected assets,然后选择放置导出文件的文件夹即可

#4.2 按种类导出资源

  • 点击窗口上部的 Filter Type,一般按需选择 TextAsset(文本)、Texture2D(图片)、VideoClip(视频)即可
  • 点击窗口上部的 Export,在菜单中选择 Filtered assets,然后选择放置导出文件的文件夹即可

#5 资源去重(可选)

  • 在按种类导出资源时,我们可能会遇到资源重复的问题(通常出现在图片类型的资源中),我们通过以下的 Python 脚本除去
import filecmp, os
rootdir = os.path.dirname(__file__)
lst = os.listdir(rootdir)
lst.sort()
lst.remove(os.path.basename(__file__))
# print(lst)
dic = {}
def getRawname(filename: str) -> str: # 获取对应的原始文件名(无后缀)
    return filename.split('.')[0].split('(')[0].strip()
for i in lst: # 根据原始文件名分组
    rawname = getRawname(i)
    if rawname not in dic:
        dic[rawname] = []
    dic[rawname].append(i)
# print(dic.keys())
for rawname in dic.keys():
    dic[rawname] = dic[rawname][-1:] + dic[rawname][:-1] # 把原始文件名对应的文件放在列表开头
    for i in range(len(dic[rawname]) - 1, -1, -1): # 倒序枚举被删除文件的指针
        for j in range(0, i): # 正序枚举模板文件的指针
            if filecmp.cmp(dic[rawname][i], dic[rawname][j]): # 若两文件相同
                os.remove(os.path.join(rootdir, dic[rawname][i]))
                print(f"Removed {dic[rawname][i]}! (equals to {dic[rawname][j]})")
                break

标签:rawname,文件,教程,导出,解包,dic,点击,资源
From: https://www.cnblogs.com/Ender-hz/p/18169987

相关文章

  • 推荐一个教程,适用于想学python但是只学点基础知识用于刷题的
    省流:https://www.bilibili.com/video/BV1Lk4y117Cb?p=1&vd_source=4a339d299e165d8fe38b9926c5240eae我以前一直使用Java刷题,但是随着刷题的数量越来越多,越发感觉Java真的不适合用来刷题,看leetcode里面的大佬们基本都是清一色的c++和python,所以我也是想学点python用于刷题,花了......
  • BSP视频教程第30期:UDS ISO14229统一诊断服务CAN总线专题,常用诊断执行流程精讲,干货分享
    视频教程汇总帖:https://www.armbbs.cn/forum.php?mod=viewthread&tid=110519 【前言】1、继前面分享了CANopen和J1939的专题后,这次继续为大家分享UDS专题视频第1期。2、统一诊断服务(UnifiedDiagnosticServices,简称UDS)是车用电子的通信协议,是电子控制器ECU中设备诊断用的网......
  • 【MMD x EEVEE教程】工具篇 • blender设置
    这篇教程适合有一定基础的萌新....*&blender下载官方网址https://www.blender.org/官方blender,都是最新版,如果需要找旧版的blender可以到这里来https://download.blender.org/release/,里边包好了所有版本的blender,因为是做MMD,下载自己需要版本后,建议额外下载一个2.93版的,某些时......
  • win10 hyper-v 配置教程
    非家庭版跳过以下这一步。pushd"%~dp0"dir/b%SystemRoot%\servicing\Packages\*Hyper-V*.mum>hv.txtfor/f%%iin('findstr/i.hv.txt2^>nul')dodism/online/norestart/add-package:"%SystemRoot%\servicing\Packages\%%i"......
  • CentOS 7.6 Samba服务搭建教程
    CentosOS7.6samba服务器搭建系统环境os:"CentOS7.6x64"lang:"en"搭建教程手动安装环境安装启动Samba服务并设置开机自启关闭防火墙方法1方法2关闭selinux方法1方法2方法3修改Samba配置添加Samba用户创建共享目录并设置权限重启Samba服务批量添......
  • vue-property-decorator基础教程
    vue-property-decorator基础教程为什么要使用vue-property-decorator如何使用vue-property-decorator1.基本写法2.data中定义数据3.生命周期钩子函数4.方法5.@Component()6.@Prop()7.@PropSync()8.@Emit()9.计算属性10.@Watch()为什么要使用vue-property-decoratorvue-......
  • 酒店订单管理系统搭建教程
    1、演示环境配置centos7.9、mysql5.7、php7.22、宝塔创建站点记录创建站点时候创建的数据库信息3、上传fastadmin压缩包点击开始上传4、解压上传的fastadmin5、配置网站目录和运行目录运行目录选择public点击保存即可6、配置伪静态选择thinkphp7、直接访问域......
  • 【教程】Homebrew安装MySQL 8 & 设置root密码
    ✨Homebrew安装MySQL8brewinstallmysql==>CaveatsWe'veinstalledyourMySQLdatabasewithoutarootpassword.Tosecureitrun:mysql_secure_installationMySQLisconfiguredtoonlyallowconnectionsfromlocalhostbydefaultToconnectr......
  • Linux手动安装JD详细教程
    1、下载JDK下载网址:https://www.oracle.com/technetwork/java/javase/downloads/index.html下拉,找到jdk8 2、手动安装2.1先新建一个文件夹,目录是/usr/local/java 进入安装目录。输入命令:cd/usr/local/java 2.2安装JDK1.新建一个存放安装包的文件夹命令:mkdir......
  • 从0到1的 linux 搭建 svn 教程
    linux搭建svn服务器:安装svn软件包:yuminstallsubversionmysql-serverhttpdmod_dav_svnmod_perlsendmailwgetgcc-c++makeunzipperl*ntsysvvim-enhanced安装完成后svn服务器安装成功了。接下来配置svn库:1.新建一个目录用于存储SVN所有文件mkdir/home/svn2.新建......