An open API service indexing awesome lists of open source software.

https://github.com/rvost/pakinspector

Viewer and extractor for Arma Reforger .pak files
https://github.com/rvost/pakinspector

arma arma-reforger games reverse-engineering

Last synced: 6 months ago
JSON representation

Viewer and extractor for Arma Reforger .pak files

Awesome Lists containing this project

README

          

# PakInspector

PakInspector is simple CLI tool for exploring and extracting Arma Reforger's PAC1 files.

---

This is a proof of concept implementation aimed at investigating and addressing the issues with existing tools ([\[1\]](https://github.com/FlipperPlz/PakExplorer/issues/5), [\[2\]](https://github.com/Rendszerguru/PakEntpacker/issues/1)). If you encounter similar problems, please share the results obtained using the command `PakInspector inspect --save`.

## Features

- View the file structure inside Arma Reforger's `.pak` files;
- Extract all the content from the `.pak` file, or just specific files;
- If the file is compressed using an unknown algorithm, you can extract the raw file section for analysis
- View chunks of arbitrary Interchange File Format files;
- Extracting chunks isn't currently supported, but this feature may be added later.

## Installation

PakInspector does not require installation. Simply download `PakInspector.exe` from the [latest release](https://github.com/rvost/PakInspector/releases/latest) and start using it! For convenience, you may want to [add](https://stackoverflow.com/questions/9546324/adding-a-directory-to-the-path-environment-variable-in-windows) your PakInspector location to the `PATH`.

Sometimes you may get a warning from Windows Defender or other anti-virus software. You can safely ignore it. This is because PakInspector is not a properly signed application.

## Usage examples

- Extract all files from `data.pak` to `output` folder:
```
.\PakInspector extract data.pak output
```
- Extract `foo\bar.xob` and `foo\bazz.xob` from `data.pak` to `output` folder:
```
.\PakInspector extract data.pak output -f "foo\bar.xob" -f "foo\bazz.xob"
```
Please note that you must specify `-f` (or `--file`) key before each filename. The filename must match one of those returned by the 'inspect' command.
- Show file tree for `data.pak`
```
.\PakInspector inspect data.pak --tree
```
- Inspect `data.pak` and save results without printing to console
```
.\PakInspector inspect data.pak -qs
```

You can also use the `--help` key to view all the available commands and options.

## Issues

If you find a bug or have a feature request, please use [Issues](https://github.com/rvost/PakInspector/issues) to report it. Samples of the `.pak` files that the tool fails to extract are needed. If you have encountered this problem, please post your *inspection results* in the Issues or send me a message on Discord.

### Known issues

As the current POC implementation prioritizes the ease of development and clarity provided by Kaitai Struct over parser performance, high RAM usage is expected.
RAM usage for inspection and extraction operations is comparable to the size of the `.pak` file.

## Contribution

All contributions are welcome! If you have any plans for improving the parser, please use the `formats/pak.ksy` file as a starting point and avoid modifying the *generated* parser code.

## Acknowledgments

This tool relies heavily on [@FlipperPlz](https://github.com/FlipperPlz/)'s work in [PakExplorer](https://github.com/FlipperPlz/PakExplorer), the first open source tool for reading `PAC1` files.