分类 默认分类 下的文章

解包的是红烧天堂日服PC版。以下所有分享的软件如果被归档,可以查看fork的仓库或搜索类似软件,找一找star高的可能更好用。分享的不一定是最简单的方法。所有用到的软件:https://wwcz.lanzout.com/b0kobuthc 密码:4qs1

操作AssetBundle文件

AssetBundle 是一个存档文件,包含特定于平台的非代码资源(如模型、纹理、预制件、音频剪辑甚至整个场景),这些资源可以在运行时由 Unity 加载。

这类文件一般以一串随机英文与数字.bundle组成。查看文件头一般为UnityFS加版本号。

解包

这一类工具仅提供解包功能,不支持打包。如果只想解包这个就够了。

  1. AssetStudio:原版Asset Studio。在23年已经归档,最终版还残留了一些bug,如在解包某些游戏资源时会报错、闪退;内存管理不够完善,内存不足时会疯狂吃内存导致死机。
    链接:https://github.com/Perfare/AssetStudio
  2. AnimeStudio:修改版,不断更新,支持众多国产游戏的解包。优化过,不会出现大面积报错;能够自动检测内存是否足够解包选择的文件并提示。使用体验很好。
    链接:https://github.com/Escartem/AnimeStudio

解包与打包

这一类工具既支持解包,又支持打包。

  1. UABE:原版UABE。22年以后不再更新,本人测试的时候能够解包的文件很少,不好用。
    链接:https://github.com/SeriousCache/UABE
  2. UABEA(UABEAvalonia):严格来说不算是uabe的改版,但是叫这个名字。更新至24年。这个工具能够自动检测文件是否被压缩并提供解压功能,但是需要手动将解压的文件再次解包。
    链接:https://github.com/nesrak1/UABEA
  3. UABEANext:与UABEA同作者,个人觉得最好用的一个。界面容易操作,能够方便地解包并打包。
    链接:https://github.com/nesrak1/UABEANext

过校验

Unity在加载资源文件时会先进行CRC32检查,如果不通过则出错。因此,如果要修改游戏的资源文件,就要对文件进行处理。

  1. AddressablesTools:这个工具通过修改catalog文件来禁用crc检测。但我使用时报错。
    链接:https://github.com/nesrak1/AddressablesTools
  2. Unity_CRC32_Bypass:这个工具“通过在ab文件末端添加额外数据来绕过Unity的CRC32检查”,避免了修改catalog文件。
    作者博客:https://blog.axix.top/index.php/2024/04/25/107/
    项目github:https://github.com/AXiX-official/Unity_CRC32_Bypass

操作Criware媒体文件

CRIWARE 是一套由日本 CRI Middleware 公司开发的,用于游戏和多媒体内容开发的中间件。CRIWARE 包含了业界知名的 CRI ADX 和 CRI Sofdec 工具,分别用于处理游戏中的音频和视频。ADX 提供了高质量、低延迟的音频压缩和回放技术;Sofdec 则专注于视频编码和播放,支持各种格式和高效的解码。

Criware类的文件有若干类型,可以先用hex编辑软件(推荐:HxD免费轻量,010 Editor功能强大)查看文件头来确认。

CRID类

此类文件的头部为CRID,可存储视频和音频。步骤:

  1. 由于Criware会对文件进行加密,首先需要获取该游戏对应的密钥。Unity游戏可以使用ZygiskUnityCriwareKeylogger获得。首先要有一台root过安装了Magisk使用Zygisk的设备(模拟器应该也可以),在Magisk里安装该插件。按照readme流程操作,使用adb连接设备,输入adb logcat -s ZygiskUnityCriwareKeylogger并启动游戏,会输出类似log信息:

    08-15 14:26:58.256 15470 15556 I ZygiskUnityCriwareKeylogger: Extracted Key: ***
    08-15 14:26:58.256 15470 15556 I ZygiskUnityCriwareKeylogger: Extracted Key (hex): 0x***

    保存Extracted Key (hex)值。

  2. 接下来使用CRID(.usm)Demux Tool软件进行解包。将总共16位的Extracted Key (hex)值按8位分为两部分,前半部分记为b,后半部分记为a。提取命令为:

    #仅提取音频生成adx文件(需进一步解码)
    crid_mod -b <b值> -a <a值> -x <文件地址>
    #仅提取视频生成m2v文件
    crid_mod -b <b值> -a <a值> -v <文件地址>
    #仅提取音频生成wav文件
    crid_mod -b <b值> -a <a值> -c <文件地址>

    即可在当前文件夹下解包出.adx文件。

  3. 如果生成了adx文件,可使用adx2wavmod3vgmstream将.adx转为wav,直接将adx文件拖入该软件即可获得wav文件。

AFS2类

此类文件只存储音频。可以使用vgmstream进行解包,首先将文件加上.awb后缀,直接拖进vgmstream-cli.exe即可。

其他可能有用的软件

  • WannaCRI:提供Criware媒体文件解包与打包功能的python库
  • VGMToolbox:可提取众多游戏媒体文件的工具箱

きみのために出来ることは何?
为了你 我能做到什么?
死ぬこと以外ならなんでもするよ
除了死亡以外 我愿意做任何事
朝には歯磨き粉ぼたぼた垂らして磨くきみが
晨光里 是手握牙刷 啪塔啪塔 随泡沫滴落 刷着牙的你
夜には安物のイヤホンでしゃりしゃりとロックを楽しむきみが
夜色中 是耳戴廉价耳机 滋滋噪声下 仍享受摇滚乐的你
居るだけでもう充分すぎた
有你在就已经很满足了
何かなくしそうで不安だ
害怕失去什么 不安难却
どうか何かを差し出させて
请让我也为你做些什么
月を目指し旅立った日 火星探査成功した日
奔月旅行 启程之日 火星探测 成功之日
いつかオールトの雲も見つけ外を知るだろう それが暮らしさ
有朝一日也将找到奥尔特云 了解到外面的世界吧 那就是所谓的生活
きみと出会いぼくは少しだけポジティブになった
与你相遇后 我竟开始期待黎明
投票日も忘れない
连选举日都铭记在心
春にはずるずると鼻をかみ季節呪うきみが
春天里 是吸溜吸溜擤鼻 咒骂季节的你
夏にはしゃくしゃくと頭痛と格闘しながらかき氷食べるきみが
盛夏天 是与头痛搏斗 喀嚓喀嚓吃着冰沙的你

朝にはうとうととリモコン持って出かけるきみが
晨光里 是迷迷糊糊 还握着遥控器就已出门的你
夜には野良猫を減らすニュースではらはら涙を零すきみが
夜色中 是看到新闻里 驱赶流浪猫 簌簌落泪的你
いつまでもそんなきみで居て
请你永远保持这般模样
感じたこと全部教えて
将感受到的一切都告诉我
その目で観測する世界
你的双眼所观测到的世界
それがオールトの雲
就是我的奥尔特云
秋にはぱりぱりと子供のように枯れ葉を踏むきみが
金秋下 是像孩童那般 沙啦沙啦 脚踩落叶的你
冬には眠りに就くすべての命をしんしんと弔うきみが
寒冬中 是为沉睡的万物生灵 默默悼念的你
ぼくも隣で神に祈る
我也在一旁向神明祈祷
このひとだけは奪わないで
唯独不要将这个人夺走
せめて次の季節を見せて
至少能够见证下个季节
きらきらと輝く未来を
目睹那闪耀的未来
ジーパンじゃぶじゃぶ洗い
牛仔裤 哗哗反复搓洗
Tシャツぱんぱんと干し
T恤 蓬蓬鼓风晾起
光はさんさんと射し
阳光 灿灿照进房间
巡る巡るめくるめく彩りを変えて
循环往复 斑斓色彩 渐次流转
やがて指もかじかみ夢のまにまに
直至指尖冻僵 仍随梦境沉浮
ぼたぼたと
滴落的泡沫
しゃりしゃりと
滋滋的噪响
うとうとと
迷糊的身影
はらはらと
簌簌的泪珠
ぱりぱりと
沙沙的落叶
しんしんと
默默的悼念


歌手:やなぎなぎ(柳凪)
作词:麻枝准
作曲:麻枝准

过程

今天在配置新服务器时发现一个很奇怪的错误。安装php时,直接运行apt install php-fpm再在nginx配置文件中加入php8.3-fpm.sock的链接,竟然一直告诉我“File not found.”。装了多久服务器,愣是第一次遇到这种错误。重装php-fpm,换源再装什么的都试了个遍都没用。用systemctl status php8.3-fpm.service查看运行状态也一点问题没有。

找了一圈,都给我说是php没装好。没办法,只能自己摸索了。

/run/php目录下面,突然注意到一点:用户。

26c14484c689d69af070b090b0f965ee.png

php8.3-fpm.sock的拥有者www-data一般被用来管理网站内容。但在这里就不同了。我前两天安装nginx改根目录时也遇到同样奇怪的问题。明明位置是对的,目录权限也设成了777,但就是报错404 Not Found。在我跟上一台服务器的nginx配置对比时,我发现只要在nginx.conf内把user一项改掉就好了,随便改成默认账户还是root都行。这里我想可能遇到了同样的问题。于是我找到配置用户的位置(在/etc/php/8.3/fpm/pool.d/www.conf),同样把用户改为默认用户,再次重启服务,成功打印出phpinfo。

结论/解决方案

到php的配置文件www.conf(我的是在/etc/php/8.3/fpm/pool.d/www.conf)将所有的www-data用户改为你的默认账户(除了root账户)即可。

我这里把usergrouplisten.ownerlisten.group都改为了ubuntu

d7703db11d9bb947045f5457dbb24769.png

我在配置nginx时也有类似问题,将/etc/nginx/nginx.conf中第一行的user选项修改掉即可。

2e7304092af8b1e347512003711a0a3d.png


暂时不明白原因。总之记录一下,以免以后又碰到了再懵圈。

安装acme.sh

中国大陆用户(无法访问github)

  1. git clone https://gitee.com/neilpang/acme.sh.git
  2. cd acme.sh
  3. acme.sh --install -m (你的邮箱)

通用方法

curl https://get.acme.sh | sh -s email=(你的邮箱)
63ddb536899777e85aee9328a015d669.png

出现以上字样表明安装成功

签发证书

官网上有http方式和dns方式。若使用dns方式且自动验证,可以签发通配符证书,如*.wyywn.site

HTTP方式DNS方式(自动验证)
简单方便,可配置一些无法设置dns记录的域名较复杂,需要到域名解析商获取API Key和ID
只能配置有限域名可签发通配符证书,后新增域名不用再配置

此处使用dns方式自动验证,http方式和dns方式手动验证较简单,可前往官方Wiki查看。

本人域名解析商为腾讯的DNSPod。前往控制台API密钥页面,切换到DNSPod Token栏目(不能使用腾讯云 API 密钥,否则会失败,见使用 dns_dp 自动申请证书时,出现 invalid domain。我一开始也被坑了),点击创建密钥并起名。生成后保存好IDToken
4d67e40d5621210095a49254e8828d5c.png

执行

export DP_Id="(你的ID)"
export DP_Key="(你的Token)"

签发通配符证书

acme.sh --issue --dns dns_dp -d (你的主域名) -d *.(你的主域名)

acme.sh --issue --dns dns_dp -d wyywn.site -d *.wyywn.site

输入后会运行较长时间

7acf18f1e0cbc36e33a3ecfaafe50139.png
4734422c644cdd0dec6ed9929996d8d9.png

如图,生成了4个文件,证书获取成功。

复制证书

对于nginx,运行

sh acme.sh --install-cert -d (你的主域名) \
--key-file       (你的nginx根目录)/key.pem  \
--fullchain-file (你的nginx根目录)/cert.pem \
--reloadcmd     "service nginx reload"

务必配置reloadcmd,可自动续签
3269197646c447c97669264dadef70c0.png

配置nginx

此时还不能直接访问。要到nignx根目录下,你的配置文件处设置监听配置,将http自动转发到https上。两个server字段分别配置80端口和443端口。配置如下

server {
    listen 80;
    server_name wyywn.site www.wyywn.site;
    return 301 https://$host$request_uri; #将http转发到https
}

server {
    listen 443 ssl;
    server_name wyywn.site www.wyywn.site;

    ssl_certificate cert.pem;
    ssl_certificate_key key.pem;

    …………
}

设置完成后运行service nginx restart,访问http网页发现已经自动跳到https,配置成功。

本文为配置Ubuntu 20.04版本方法,其他版本可能有差异。

配置代理

配置代理而非换源的好处:可以获取到官方服务器最新的版本,镜像服务器可能存在版本更新不及时,证书错误等一系列问题。到时候出问题头都大了。
  • 命令行

编辑文件

sudo nano /etc/profile.d/proxy.sh

写入内容

# set proxy config via profie.d - should apply for all users
export http_proxy="http://127.0.0.1:7890/"
export https_proxy="http://127.0.0.1:7890/"
#export ftp_proxy="http://127.0.0.1:7890/"
export no_proxy="127.0.0.1,localhost"
# For curl
export HTTP_PROXY="http://127.0.0.1:7890/"
export HTTPS_PROXY="http://127.0.0.1:7890/"
#export FTP_PROXY="http://127.0.0.1:7890/"
export NO_PROXY="127.0.0.1,localhost"

设置权限并运行

sudo chmod +x  /etc/profile.d/proxy.sh
source /etc/profile.d/proxy.sh

测试打印

env | grep -i proxy

4096340000.jpg

  • apt包管理器

编辑文件

sudo nano /etc/apt/apt.conf.d/80proxy

写入内容

Acquire::http::proxy "http://127.0.0.1:7890/";
Acquire::https::proxy "http://127.0.0.1:7890/";
#Acquire::ftp::proxy "ftp://127.0.0.1:7890/";

#将127.0.0.1替换为代理服务器的正确IP地址,如果需要身份验证,请设置如下:
#Acquire::http::proxy "http://<username>:<password>@<proxy>:<port>/";
#Acquire::https::proxy "https://<username>:<password>@<proxy>:<port>/";
#Acquire::ftp::proxy "ftp://<username>:<password>@<proxy>:<port>/";
  • conda环境

执行

conda config --set proxy_servers.http http://127.0.0.1:7890
conda config --set proxy_servers.https http://127.0.0.1:7890

使用LVM管理磁盘

优点:可以动态管理磁盘大小,将多块不同硬盘合成为一个连续分区,避免了考虑逻辑卷在硬盘上的位置。
缺点:管理比较麻烦,不能在Windows上访问(包括使用DiskGenius等管理软件)。
  • 调整磁盘大小

使用df -h命令查看信息
3257334219.jpg
可见lvm管理的分区/dev/mapper/ubuntu--vg-ubuntu--lv
使用vgs命令查看信息

root@wyyinspiron:/home/wyy# vgs
    /dev/sdb: open failed: No medium found
    /dev/sdb: open failed: No medium found
    VG        #PV #LV #SN Attr   VSize    VFree 
    ubuntu-vg   1   1   0 wz--n- <109.79g 54.89g

使用vgdisplay命令查看具体信息

root@wyyinspiron:/home/wyy# vgdisplay
    /dev/sdb: open failed: No medium found
    /dev/sdb: open failed: No medium found
    --- Volume group ---
    VG Name               ubuntu-vg
    System ID             
    Format                lvm2
    Metadata Areas        1
    Metadata Sequence No  2
    VG Access             read/write
    VG Status             resizable
    MAX LV                0
    Cur LV                1
    Open LV               1
    Max PV                0
    Cur PV                1
    Act PV                1
    VG Size               <109.79 GiB
    PE Size               4.00 MiB
    Total PE              28105
    Alloc PE / Size       14052 / 54.89 GiB
    Free  PE / Size       14053 / 54.89 GiB
    VG UUID               fhqIse-SP9k-CTgd-oPgw-c1Q5-1JUe-dGp5es

可见当前盘上还有54.89g空间可以分配。
使用lvextend命令对/dev/mapper/ubuntu--vg-ubuntu--lv进行操作,如增加40G。

lvextend -L +40G /dev/mapper/ubuntu--vg-ubuntu--lv

root@wyyinspiron:/home/wyy# lvextend -L +40G /dev/mapper/ubuntu--vg-ubuntu--lv
    /dev/sdb: open failed: No medium found
    /dev/sdb: open failed: No medium found
    Size of logical volume ubuntu-vg/ubuntu-lv changed from 54.89 GiB (14052 extents) to 94.89 GiB (24292 extents).
    Logical volume ubuntu-vg/ubuntu-lv successfully resized.

使用resize2fs命令实行修改

resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv

root@wyyinspiron:/home/wyy# resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
    resize2fs 1.45.5 (07-Jan-2020)
    Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
    old_desc_blocks = 7, new_desc_blocks = 12
    The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 24875008 (4k) blocks long.

再次运行df -h,可见该文件系统容量已扩大。

参考链接:Ubuntu LVM分区扩容:轻松实现磁盘空间扩展,告别空间不足烦恼