Best Studio 1
Best Studio
D 1
delimuratt
Aliyldrim 1
Aliyldrim
Mt2Hizmet 1
Mt2Hizmet
noisiv 1
noisiv
Manwe Work 1
Manwe Work
melankolıa18 1
melankolıa18
Agora Metin2 1
Agora Metin2
Cannn6161 1
Cannn6161
kralhakan2009 1
kralhakan2009
Vahsi Uzman 1
Vahsi Uzman
Hikaye Ekle
Reklam vermek için turkmmo@gmail.com

42pak-generator | acik kaynakli pak dosya yoneticisi

push.42

Level 1
Üye
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
Ticaret - 0%
0   0   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!


custom-pak-tool-banner.jpg


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



black_42pak_main.png


black_42pak_convert.png


black_42pak_manage.png

black_42pak_manage2.png


black_42pak_settings.png


black_42pak_help.png



Open Theme


white_42pak_main.png


white_42pak_convert.png


white_42pak_manage.png

white_42pak_manage2.png


white_42pak_settings.png


white_42pak_help.png





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 class CEterPackthat replaces itCVpkPack
  • VpkCrypto.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:
  1. SetVpkPassphrase()Call before the registration cycle ends.
  2. 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 -> 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

  • Windows 10 version 1809+
  • (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





We welcome your contributions! Please open an issue or submit a pull request on GitHub.
 

custom-pak-tool-banner.jpg


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



black_42pak_main.png


black_42pak_convert.png


black_42pak_manage.png

black_42pak_manage2.png


black_42pak_settings.png


black_42pak_help.png



Open Theme


white_42pak_main.png


white_42pak_convert.png


white_42pak_manage.png

white_42pak_manage2.png


white_42pak_settings.png


white_42pak_help.png





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 class CEterPackthat replaces itCVpkPack
  • VpkCrypto.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:
  1. SetVpkPassphrase()Call before the registration cycle ends.
  2. 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 -> 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

  • Windows 10 version 1809+
  • (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





We welcome your contributions! Please open an issue or submit a pull request on GitHub.
Paylaşım için teşekkürler.
 

Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)

Geri
Üst