# readdata

> **Tool `tools/pe/readdata.py`** (program, Windows PE). Read typed values from a Windows binary at Ghidra addresses (the DAT_ globals in pseudocode).

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

## Its own help

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

```text
Read typed values from a Windows binary at Ghidra addresses (the DAT_ globals in pseudocode).

Usage: readdata.py BINARY TYPE ADDRESS [ADDRESS ...] [--count N]

TYPE is u8, i8, u16, i16, u32, i32, u64, i64, f32, f64, ptr, cstr, wstr or hex. ADDRESS is a
virtual address at the binary's preferred base, as Ghidra prints it (0x140008000 or DAT_140008000).
`--count N` reads N consecutive values (a table). Ghidra often shows a float constant only as a
reference to data: read it here rather than trusting the decompiler's typing.
```

## Named by

Skills: [re-ghidra](/skills/re-ghidra), [re-trace](/skills/re-trace).
