Reversing WoWs Resource Format - Part 4: Tidying-Up The Project

Parts Part 1 — Searching The Data → /posts/wows_depack_part1/ Part 2 — Getting The Metadata → /posts/wows_depack_part2/ Part 3 — Reading The Database → /posts/wows_depack_part3/ Part 4 — Tidying-Up The Project → /posts/wows_depack_part4/ Tidying-Up The Project In the last part we got a first rough implementation. In this final part, we will clean up things, correct a few shortcuts we took, and create an actual project out of this. Creating Unit Tests I did this project right around the release of ChatGPT 3. [Read More]

Reversing WoWs Resource Format - Part 3: Reading The Database

Parts Part 1 — Searching The Data → /posts/wows_depack_part1/ Part 2 — Getting The Metadata → /posts/wows_depack_part2/ Part 3 — Reading The Database → /posts/wows_depack_part3/ Part 4 — Tidying-Up The Project → /posts/wows_depack_part4/ The Implementation In the last part, we discovered and got a fairly good idea of the metadata/IDX format. In this part, we will create a rough implementation to extract the content. Data Structures First, define C structures matching our reverse-engineered format: [Read More]

Reversing WoWs Resource Format - Part 2: Getting The Metadata

Parts Part 1 — Searching The Data → /posts/wows_depack_part1/ Part 2 — Getting The Metadata → /posts/wows_depack_part2/ Part 3 — Reading The Database → /posts/wows_depack_part3/ Part 4 — Tidying-Up The Project → /posts/wows_depack_part4/ Searching & Reading The Metadata In Part 1, we discovered: Data lives in res_packages/ as custom .pkg archives. Each .pkg is a sequence of DEFLATE-compressed blobs separated by 64-bit IDs with zero padding. No file names inside . [Read More]

Reversing WoWs Resource Format - Part 1: Searching The Data

Parts Part 1 — Searching The Data → /posts/wows_depack_part1/ Part 2 — Getting The Metadata → /posts/wows_depack_part2/ Part 3 — Reading The Database → /posts/wows_depack_part3/ Part 4 — Tidying-Up The Project → /posts/wows_depack_part4/ Introduction Firstly, a disclaimer: this is the first time I’m doing this kind of exercise, so the process described here is far from ideal, and the tools used are probably less than adequate. Also, I’m writing this after various findings, so the process seems quite straightforward. [Read More]