add remaining offsets
This commit is contained in:
parent
7c63c7ab3b
commit
bece7e9464
36
README.md
36
README.md
@ -78,24 +78,28 @@ relative to the beginning of the file.
|
||||
```
|
||||
const File = struct {
|
||||
magic: [4]u8,
|
||||
version: u3,
|
||||
shells_oob: u1,
|
||||
version: u4,
|
||||
padding: u4,
|
||||
num_shells: u8,
|
||||
num_users: u32,
|
||||
num_groups: u32,
|
||||
<... TBD ...>
|
||||
offset_cmph_gid2group: u26,
|
||||
offset_cmph_uid2user: u26,
|
||||
offset_cmph_groupname2group: u26,
|
||||
offset_cmph_username2user: u26,
|
||||
offset_sorted_groups: u26,
|
||||
offset_sorted_users: u26,
|
||||
offset_groupmembers: u26,
|
||||
offset_additional_gids: u26,
|
||||
}
|
||||
```
|
||||
|
||||
`magic` must be 0xf09fa4b7, and `version` must be `0`. The remaining fields are
|
||||
indices to further sections of the file with their sizes in bytes. All numbers
|
||||
are little-endian.
|
||||
`magic` is 0xf09fa4b7, and `version` must be `0`. Offsets are indices to
|
||||
further sections of the file, with zero being the first block (the magic
|
||||
number). As all blobs are 64-byte aligned, the offsets are pointing to the
|
||||
beginning of the 64-byte "block" (thus u26). All numbers are little-endian.
|
||||
|
||||
What's remaining, variable-length:
|
||||
|
||||
1. A lookup list of shells (if `shells_oob` is True).
|
||||
2. 4 indices mentioned above.
|
||||
3. <...>
|
||||
As of writing the file header is 40 bytes.
|
||||
|
||||
Primitive types:
|
||||
|
||||
@ -116,8 +120,9 @@ const User = struct {
|
||||
gid: u32,
|
||||
// pointer to a separate structure that contains a list of gids
|
||||
additional_gids_offset: u29,
|
||||
padding: u1,
|
||||
shell_len: u6,
|
||||
// shell is a different story, documented elsewhere.
|
||||
shell_here: u1,
|
||||
shell_len_or_place: u6,
|
||||
home_len: u6,
|
||||
username_len: u6,
|
||||
gecos_len: u8,
|
||||
@ -127,5 +132,10 @@ const User = struct {
|
||||
}
|
||||
```
|
||||
|
||||
TODO explain:
|
||||
- shells
|
||||
- `additional_gids`
|
||||
- `members`
|
||||
|
||||
[git-subtrac]: https://github.com/apenwarr/git-subtrac/
|
||||
[cmph]: http://cmph.sourceforge.net/
|
||||
|
Loading…
Reference in New Issue
Block a user