Changes for README.md: 3 added lines, 0 removed lines.
Original line number
Diff line number
Diff line
Inspects four level x86_64 guest page tables on Xen and replays captures offline. It reports the entries consulted during translation and predicts ordinary explicit paging accesses using the captured register state and an explicit guest feature profile.
Changes for format.md: 0 added lines, 111 removed lines.
Original line number
Diff line number
Diff line
A version 1 capture contains a fixed header, three metadata strings and the table frames below the selected root. Integers are little-endian and no OCaml values are marshalled, so the reader can check lengths and tags before constructing a paging context.
## Header
```text
offset bytes encoding field
0 8 bytes 53 43 4f 50 45 00 01 0a
8 4 u32 domid
12 4 u32 vcpu
16 4 u32 physical-address width
20 4 u32 feature flags
24 56 7 * u64 cr0 cr2 cr3 cr4 efer rflags rip
80 4 u32 root-override tag
84 8 u64 root-override value
feature flags
bit 0 = nx
bit 1 = 1 gib pages
other bits = rejected
root override
tag 0 = use saved cr3, value must be zero
tag 1 = select value as the raw root, retain saved cr3
MD5 detects accidental corruption and does not authenticate a capture. Writes go through a mode-0600 temporary file beside the destination, followed by `fsync` and rename, but the directory itself is not synchronised and the rename may therefore be lost after a host crash.