1个稳定版本
1.1.0 | 2023年3月5日 |
---|
#650 in 文件系统
170KB
4K SLoC
Rust-VPK
一个用于创建、列出、检查和解包VPK文件的工具。
在Linux下,此工具还可以用作只读FUSE文件系统来挂载VPK包。
这类似于我写的另一个工具,但这次是用Rust而不是C++(为了好玩!)。
限制
由于没有关于如何进行的信息,因此不支持检查和生成加密签名。
我不知道存档MD5校验和条目中的偏移量是否需要调整,就像文件条目的偏移量一样,因为文件嵌入在_dir.vpk
文件中的数据需要调整。目前我假设它们不需要。如果错了,我将生成错误的VPK v2包,并在检查VPK v2包时出错,但只有当数据部分中有_dir.vpk
文件时(即在索引中直接内联)才会发生这种情况。我没有这样的游戏,所以无法进行检查。
用法
USAGE:
vpk [SUBCOMMAND]
FLAGS:
-h, --help
Prints help information
-V, --version
Prints version information
SUBCOMMANDS:
check Check CRC32 and MD5 sums of files in a VPK package.
help Prints this message or the help of the given subcommand(s)
list List content of a VPK package.
mount Mount a VPK package as read-only filesystem.
pack Create a VPK package.
stats Print some statistics of a VPK package.
unpack Extract files from a VPK package.
有关子命令的用法信息,请键入vpk help $SUBCOMMAND
,例如vpk help list
。
构建
Linux
cargo build --release
其他操作系统
cargo build --no-default-features --release
交叉编译到Windows
cargo build --target x86_64-pc-windows-gnu --no-default-features --release
需要--no-default-features
来防止尝试构建FUSE支持。我不知道如何使默认功能针对特定目标。我认为这还不可能。
待办事项
- 找出是否需要调整
_dir.vpk
存档的MD5校验和偏移量,就像文件条目那样。目前我假设它们不需要,但我没有使用VPK v2并在_dir.vpk
文件中嵌入任何数据(不在索引中直接内联)的游戏来验证。不知道如何找到。 - 从VPK v2文件中读取和评估签名?使用的算法是未知的。不知道如何找到。
相关项目
- fezpak:打包、解包、列出和挂载FEZ .pak存档
- psypkg:打包、解包、列出和挂载Psychonauts .pkg存档
- bgebf:解包、列出和挂载《超越善恶》.bf存档
- unvpk:提取、列出、检查和挂载Valve .vpk存档(此项目的C++版本)
- u4pak:列出、检查、解包、打包和挂载虚幻引擎4存档(Python编写)
- rust-u4pak:列出、检查、解包、打包和挂载虚幻引擎4存档(Rust编写)
- t2fbq:解包、列出和挂载《三位一体2》.fbq存档
GPLv3许可证
rust-vpk 是免费软件:您可以根据自由软件基金会发布的GNU通用公共许可证的条款重新分发和/或修改它,许可证版本为3,或(根据您的选择)许可证的任何后续版本。
rust-vpk的发布是希望它将被证明是有用的,但没有任何保证;甚至没有关于适销性或特定用途适用性的暗示性保证。有关详细信息,请参阅GNU通用公共许可证。
您应该已经随 rust-vpk 收到了GNU通用公共许可证的一个副本。如果没有,请参阅https://www.gnu.org/licenses/。
依赖项
~1MB
~10K SLoC