Releases: UnknownCollections/ptcgp_tool
v0.1.2167
Bug fix
Oops, public releases shouldn't target native-cpu.
- ptcgp_tool_latest.exe Virus Total
- ptcgp_tool_2022356f1.exe Virus Total
- ptcgp_tool_2022322f1.exe Virus Total
Full Changelog: v0.1.2162...v0.1.2167
v0.1.2162
Release Notes
Overview
This release introduces support for multiple Unity engine versions, specifically adding compatibility for Unity 2022.3.56f1 alongside the previously supported 2022.3.22f1. The default build now targets the newer 2022.3.56f1.
The mechanism for extracting the metadata encryption key from the libil2cpp.so binary has been significantly updated to rely on instruction analysis rather than pattern matching.
Build system improvements include automation for generating bindings for different Unity versions and building release artifacts for each supported version.
Key Changes
Multi-Version Unity Support
- Added support for Unity version 2022.3.56f1 (corresponding to global-metadata version 31).
- Introduced Cargo features (
2022322f1,2022356f1) to select the target Unity version at build time. - The default feature now points to
2022356f1, making it the default build target. - Updated README with instructions for building specific versions.
Improved Metadata Key Extraction
- The logic for finding the
global-metadata.datencryption key inlibil2cpp.sohas been rewritten. - Now analyzes ARM64 instruction sequences (specifically
BL,ADRP, andADDinstructions) instead of relying on simple pattern matching. - Added parsers for the required ARM64 instructions.
- The ELF parser now pre-processes executable sections into instruction chunks for easier analysis.
Build System & Automation
- Added new scripts (
build_versions.ps1,extract.py,gen_rs.*) to automate:- Preprocessing Il2Cpp header files for specific Unity versions.
- Generating Rust FFI bindings using bindgen.
- Building release binaries for all supported Unity versions via Cargo features.
- The build script (
build.rs) now supports skipping build number increments via theSKIP_BUILD_NUMBERenvironment variable, facilitating multi-version builds.
Bindings & Compatibility
- Generated new Rust bindings for Unity 2022.3.56f1.
- Refactored generated code structure for better organization (
src/unity/generated/headers/). - Updated
src/unity/generated/mod.rsto conditionally compile and export bindings based on the selected feature flag. - The metadata loader now checks against the correct
SUPPORTED_GLOBAL_METADATA_VERSIONbased on the selected feature.
User Experience
-
The application title now includes the specific Unity version it was built to support (e.g.,
ptcgp_tool - v1.2.2162 (2022.3.56f1)).
Full Changelog: v0.1.2086...v0.1.2162
v0.1.2086
Initial Release
- Protobuf extraction feature complete
- IL2CPP code hash updating functional but not completely tested