Skip to content
This repository was archived by the owner on Sep 28, 2025. It is now read-only.

Releases: UnknownCollections/ptcgp_tool

v0.1.2167

29 Mar 19:15

Choose a tag to compare

v0.1.2162

29 Mar 07:27

Choose a tag to compare

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.dat encryption key in libil2cpp.so has been rewritten.
  • Now analyzes ARM64 instruction sequences (specifically BL, ADRP, and ADD instructions) 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 the SKIP_BUILD_NUMBER environment 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.rs to conditionally compile and export bindings based on the selected feature flag.
  • The metadata loader now checks against the correct SUPPORTED_GLOBAL_METADATA_VERSION based on the selected feature.

User Experience

Full Changelog: v0.1.2086...v0.1.2162

v0.1.2086

24 Mar 02:56
619f411

Choose a tag to compare

Initial Release

  • Protobuf extraction feature complete
  • IL2CPP code hash updating functional but not completely tested

ptcgp_tool.exe Virus Total