- Katılım
- 8 Ara 2025
- Konular
- 1
- Mesajlar
- 1
- Online süresi
- 1h 16m
- Reaksiyon Skoru
- 3
- Altın Konu
- 0
- TM Yaşı
- 5 Ay 27 Gün
- Başarım Puanı
- 8
- MmoLira
- 179
- DevLira
- 0
ROHAN2 WORLD 1-120 TR TİPİ OFFICIAL YOHARA, BALATHOR VE AMON! 80. GÜNÜNDE! +10.000 ONLİNE! HİLE VE BOT %100 ENGELLİ HEMEN TIKLA!
42pak-generator
A modern, open-source PACK file manager for the Metin2 private server community.
Why?
42pak-generator is a modern tool that replaces the old EIX/EPK archive format with a new .VPK format. Features:
- AES-256-GCM encryption - authenticated encryption with a unique nonce per file.
- LZ4 / Zstandard / Brotli compression - choose the algorithm that suits your needs.
- BLAKE3 content summary - cryptographic integrity verification for each file.
- HMAC-SHA256 - archive-level tamper detection.
- Single file format - no more .eix + .epk pair.
- PBKDF2-SHA512 key derivation - 200,000 iterations, no more hardcoded keys.
- File name hiding - optional scrambling to avoid path numbering.
It comes with both a GUI (a WebView2 desktop application with dark/light theme support) and a full CLI tool ( ).
42pak-cliComparison of VPK and EIX/EPK
Encryption: TEA / Panama / HybridCrypt → AES-256-GCM
Compression: LZO → LZ4 / Zstandard / Brotli
Integrity: CRC32 → BLAKE3 + HMAC-SHA256
File format: Dual file (.eix + .epk) → Single file (.vpk)
Archive entries: Maximum 512 → Unlimited
Filename length: 160 bytes → 512 bytes (UTF-8)
Key derivation: Hardcoded keys → PBKDF2-SHA512 (200k iterations)
Tamper detection: None → HMAC-SHA256 entire archive
Screenshots
Dark Theme
Open Theme
Features
GUI (Desktop Application)
- Create VPK archives from directories using drag-and-drop.
- Convert EIX/EPK to VPK (supports both 40250 and FliegeV3 variants)
- View, search, extract, and verify VPK archives.
- Real-time progress, step-by-step creation wizard.
- Dark and light themes
- Archive comparison view (side-by-side)
- Detection of duplicate files across archives.
CLI (42pak-cli)
42pak-cli pack <SOURCE_DIRECTORY> [--output <FILE>] [--compression <lz4|zstd|brotli|none>] [--level <N>] [--passphrase <PASSWORD>]42pak-cli unpack <ARCHIVE> <OUTPUT_DIRECTORY> [--passphrase <PASSWORD>] [--filter <PATTERN>]42pak-cli list <ARSIV> [--passphrase <PASSWORD>] [--filter <PATTERN>] [--json]42pak-cli info <ARSIV> [--passphrase <PASSWORD>] [--json]42pak-cli verify <ARSIV> [--passphrase <PASSWORD>] [--filter <PATTERN>] [--json]42pak-cli diff <ARSIV_A> <ARSIV_B> [--passphrase <PASSWORD>] [--json]42pak-cli migrate <OLDI_ARSIV> [--output <FILE>] [--compression <TIP>] [--passphrase <PASSWORD>]42pak-cli search <WORKING_DIRECTORY> <FILE_NAME_OR_PATTERN>42pak-cli check-duplicates <CALISMA_DIRECTORY> [--read-index]42pak-cli watch <SOURCE_DIRECTORY> [--output <FILE>] [--debounce <MS>]-q--quietPrints all output except for errors .--jsonIt provides structured JSON output for scripting.- Exit codes: 0 = success, 1 = error, 2 = integrity error, 3 = incorrect password
Metin2 Client Integration
Ready-made C++ integration files are provided for two reference source trees:
- 40250 / ClientVS22 - targets multi-encryption HybridCrypt architecture (Camellia, Twofish, XTEA)
- FliegeV3 - targets the simpler XTEA/LZ4 architecture.
Each profile includes the following:
VpkLoader.h/cpp- the ready-made classCEterPackthat replaces itCVpkPackVpkCrypto.h/cpp- Independent crypto module (AES-GCM, BLAKE3, PBKDF2)EterPackManager_Vpk.h/cpp- Patched administrator with VPK + EPK return capability.INTEGRATION_GUIDE.md- step-by-step instructions
Integration requires only 2 changes:
SetVpkPassphrase()Call before the registration cycle ends.RegisterPack()RegisterPackAuto()use instead
VPK and EPK files work together – it
RegisterPackAutofirst .vpkchecks the `<package>` file, and if not found, .eix/.epkreturns to the `<package>` file. You can convert your packages step by step.Server integration is also included (optional for reading configuration/proto from VPK
CVpkHandler).VPK File Format
Single-file archive structure:
Kod:
+-------------------------------------+
| VpkHeader (512 bytes, fixed) | Magic "42PK", version, entry count
+-------------------------------------+
| Data Block 0 (aligned to 4096) | Compressed + encrypted file data
+-------------------------------------+
| Data Block 1 (aligned to 4096) |
+-------------------------------------+
| ... |
+-------------------------------------+
| Entry Table (variable size) | If encrypted: AES-GCM wrapped
+-------------------------------------+
| HMAC-SHA256 (32 bytes) | Includes everything above
+-------------------------------------+
Encryption line:
Orijinal -> LZ4 Sikistirma -> AES-256-GCM Sifreleme -> DepolamaKey derivation:
PBKDF2-SHA512("42PK-v1:" + sifre, tuz, 100000 iterasyon) -> 64 baytFirst 32 bytes = AES key, last 32 bytes = HMAC key.
Downloading and Compiling
Requirements
-
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
- Windows 10 version 1809+
-
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.(usually pre-installed)
Compiled from the source.
cd 42pak-generatordotnet restoredotnet build --configuration ReleasePortable version
# CLI single-exe (~65 MB).\publish.ps1 -Target CLI# GUI is portable (~163 MB).\publish.ps1 -Target GUI# Both + Inno Setup installer.\publish.ps1 -Target AllTechnologies
- Running time: .NET 8.0 (C# 12)
- Interface: WebView2 + WinForms
- Faceplate: HTML5, CSS3, Vanilla JS
- Encryption: AES-256-GCM (System.Security.Cryptography)
- Key Derivation: PBKDF2-SHA512 (200,000 iterations)
- Summary: BLAKE3
- Compression: LZ4, Zstandard, Brotli
- C++ Cryptography: OpenSSL 1.1+
- Test: xUnit (22 tests)
Licence
MIT License - use, modify, and distribute free of charge.
Source Code
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
We welcome your contributions! Please open an issue or submit a pull request on GitHub.
- Katılım
- 20 Kas 2025
- Konular
- 131
- Mesajlar
- 843
- Çözüm
- 4
- Online süresi
- 14d 15h
- Reaksiyon Skoru
- 878
- Altın Konu
- 19
- Başarım Puanı
- 163
- Yaş
- 32
- MmoLira
- 9,297
- DevLira
- 3
Paylaşım için teşekkürler.
![]()
42pak-generator
A modern, open-source PACK file manager for the Metin2 private server community.
Why?
42pak-generator is a modern tool that replaces the old EIX/EPK archive format with a new .VPK format. Features:
- AES-256-GCM encryption - authenticated encryption with a unique nonce per file.
- LZ4 / Zstandard / Brotli compression - choose the algorithm that suits your needs.
- BLAKE3 content summary - cryptographic integrity verification for each file.
- HMAC-SHA256 - archive-level tamper detection.
- Single file format - no more .eix + .epk pair.
- PBKDF2-SHA512 key derivation - 200,000 iterations, no more hardcoded keys.
- File name hiding - optional scrambling to avoid path numbering.
It comes with both a GUI (a WebView2 desktop application with dark/light theme support) and a full CLI tool ( ).42pak-cli
Comparison of VPK and EIX/EPK
Encryption: TEA / Panama / HybridCrypt → AES-256-GCM
Compression: LZO → LZ4 / Zstandard / Brotli
Integrity: CRC32 → BLAKE3 + HMAC-SHA256
File format: Dual file (.eix + .epk) → Single file (.vpk)
Archive entries: Maximum 512 → Unlimited
Filename length: 160 bytes → 512 bytes (UTF-8)
Key derivation: Hardcoded keys → PBKDF2-SHA512 (200k iterations)
Tamper detection: None → HMAC-SHA256 entire archive
Screenshots
Dark Theme
![]()
![]()
![]()
![]()
![]()
![]()
Open Theme
![]()
![]()
![]()
![]()
![]()
![]()
Features
GUI (Desktop Application)
- Create VPK archives from directories using drag-and-drop.
- Convert EIX/EPK to VPK (supports both 40250 and FliegeV3 variants)
- View, search, extract, and verify VPK archives.
- Real-time progress, step-by-step creation wizard.
- Dark and light themes
- Archive comparison view (side-by-side)
- Detection of duplicate files across archives.
CLI (42pak-cli)
42pak-cli pack <SOURCE_DIRECTORY> [--output <FILE>] [--compression <lz4|zstd|brotli|none>] [--level <N>] [--passphrase <PASSWORD>]
42pak-cli unpack <ARCHIVE> <OUTPUT_DIRECTORY> [--passphrase <PASSWORD>] [--filter <PATTERN>]
42pak-cli list <ARSIV> [--passphrase <PASSWORD>] [--filter <PATTERN>] [--json]
42pak-cli info <ARSIV> [--passphrase <PASSWORD>] [--json]
42pak-cli verify <ARSIV> [--passphrase <PASSWORD>] [--filter <PATTERN>] [--json]
42pak-cli diff <ARSIV_A> <ARSIV_B> [--passphrase <PASSWORD>] [--json]
42pak-cli migrate <OLDI_ARSIV> [--output <FILE>] [--compression <TIP>] [--passphrase <PASSWORD>]
42pak-cli search <WORKING_DIRECTORY> <FILE_NAME_OR_PATTERN>
42pak-cli check-duplicates <CALISMA_DIRECTORY> [--read-index]
42pak-cli watch <SOURCE_DIRECTORY> [--output <FILE>] [--debounce <MS>]
-q--quietPrints all output except for errors .--jsonIt provides structured JSON output for scripting.- Exit codes: 0 = success, 1 = error, 2 = integrity error, 3 = incorrect password
Metin2 Client Integration
Ready-made C++ integration files are provided for two reference source trees:
- 40250 / ClientVS22 - targets multi-encryption HybridCrypt architecture (Camellia, Twofish, XTEA)
- FliegeV3 - targets the simpler XTEA/LZ4 architecture.
Each profile includes the following:
VpkLoader.h/cpp- the ready-made classCEterPackthat replaces itCVpkPackVpkCrypto.h/cpp- Independent crypto module (AES-GCM, BLAKE3, PBKDF2)EterPackManager_Vpk.h/cpp- Patched administrator with VPK + EPK return capability.INTEGRATION_GUIDE.md- step-by-step instructions
Integration requires only 2 changes:
SetVpkPassphrase()Call before the registration cycle ends.RegisterPack()RegisterPackAuto()use instead
VPK and EPK files work together – itRegisterPackAutofirst.vpkchecks the `<package>` file, and if not found,.eix/.epkreturns to the `<package>` file. You can convert your packages step by step.
Server integration is also included (optional for reading configuration/proto from VPKCVpkHandler).
VPK File Format
Single-file archive structure:
Kod:+-------------------------------------+ | VpkHeader (512 bytes, fixed) | Magic "42PK", version, entry count +-------------------------------------+ | Data Block 0 (aligned to 4096) | Compressed + encrypted file data +-------------------------------------+ | Data Block 1 (aligned to 4096) | +-------------------------------------+ | ... | +-------------------------------------+ | Entry Table (variable size) | If encrypted: AES-GCM wrapped +-------------------------------------+ | HMAC-SHA256 (32 bytes) | Includes everything above +-------------------------------------+
Encryption line:
Orijinal -> LZ4 Sikistirma -> AES-256-GCM Sifreleme -> Depolama
Key derivation:
PBKDF2-SHA512("42PK-v1:" + sifre, tuz, 100000 iterasyon) -> 64 bayt
First 32 bytes = AES key, last 32 bytes = HMAC key.
Downloading and Compiling
Requirements
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.- Windows 10 version 1809+
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.(usually pre-installed)
Compiled from the source.
cd 42pak-generator
dotnet restore
dotnet build --configuration Release
Portable version
# CLI single-exe (~65 MB)
.\publish.ps1 -Target CLI
# GUI is portable (~163 MB)
.\publish.ps1 -Target GUI
# Both + Inno Setup installer
.\publish.ps1 -Target All
Technologies
- Running time: .NET 8.0 (C# 12)
- Interface: WebView2 + WinForms
- Faceplate: HTML5, CSS3, Vanilla JS
- Encryption: AES-256-GCM (System.Security.Cryptography)
- Key Derivation: PBKDF2-SHA512 (200,000 iterations)
- Summary: BLAKE3
- Compression: LZ4, Zstandard, Brotli
- C++ Cryptography: OpenSSL 1.1+
- Test: xUnit (22 tests)
Licence
MIT License - use, modify, and distribute free of charge.
Source Code
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
We welcome your contributions! Please open an issue or submit a pull request on GitHub.






