# peres

> **Tool `tools/pe/peres.py`** (program, Windows PE). List and extract the resources inside a Windows executable or DLL: version information, string tables, dialogs, menus, icons, bitmaps, sounds and the game's own data.

Run it with `./gameframe run peres ARGS` or `python3 tools/pe/peres.py`. [Source on GitHub](https://github.com/tanepiper/game-frame/blob/main/tools/pe/peres.py).

## Its own help

This is the help text in the tool itself, as `./gameframe tool peres` prints it.

```text
List and extract the resources inside a Windows executable or DLL: version information,
string tables, dialogs, menus, icons, bitmaps, sounds and the game's own data.

Usage: peres.py BINARY [--version] [--strings] [--extract DIR] [--json]

  (no option)     every resource: type, name, language, size, and the version information
  --version       only the version information (company, product, version, original name)
  --strings       every string in the string tables, with its id
  --extract DIR   write each resource to DIR/TYPE/NAME_LANG.EXT; bitmaps get a BMP file header
                  so they open as pictures

Windows games keep more in their resources than icons. The version information names the
product, the company and the build; the original file name and the version number date and
identify a release. String tables hold interface text and error messages, often with ids the
code passes to LoadString (search the export for the id). Dialogs and menus are the game's
standard windows: the launcher, the options. RCDATA and custom types hold whatever the
developer packed in: levels, palettes, scripts, sounds. A 16-bit NE program has resources too:
use tools/dos/dosinfo.py for those.

Extracted resources are game material: write them into derived/. Needs pefile (.venv).
```

## Named by

Skills: [re-inventory](/skills/re-inventory).
