diff options
| author | awuctl | 2022-08-28 21:15:19 +0000 |
|---|---|---|
| committer | awuctl | 2022-08-28 21:15:19 +0000 |
| commit | a10b1bf586043e7f7f3fb57e422e21522b7fb17e (patch) | |
| tree | 15580b4e9298a48379babff92bf0eadd1038b4ee | |
| parent | d924b2f7e750187c078019083aba1dc88ec2179d (diff) | |
| download | activation-a10b1bf586043e7f7f3fb57e422e21522b7fb17e.zip | |
update structs
| -rw-r--r-- | Hwid.md | 21 |
1 files changed, 13 insertions, 8 deletions
@@ -50,8 +50,8 @@ The Hardware ID is a magical data structure built by evaluationg the system's ha ```c struct HWID_BLOCK { uint16_t wSize; - uint16_t wVersion; // 0 for all tools - uint16_t threshold; // (TBV) Set to 0x13 + uint16_t wVersion; // 0 for all + uint16_t threshold; // Set to 0x13 struct HWID hwid; // variable length struct TIMEWEIGHT tw; // variable length } @@ -61,17 +61,22 @@ struct HWID_BLOCK { ```c struct HWID { - uint32_t dwSize; // no version here, I think - uint16_t nInstances[9]; - uint16_t bDockOrPCMCIA; + uint16_t size; + uint16_t version; + uint16_t instances[9]; + uint16_t dock_or_PCMCIA; uint16_t hashRAM; - uint16_t hashSMBIOS; - uint16_t instanceHashes[nInstances]; -} + uint16_t hashBIOS; + uint16_t instanceHashes[]; +}; ``` The hashes are all SHA-256 truncated to 15 bits; the 16th bit is set to whether the device is removable (1 if removable). +#### `version` + +This is the version of the hardware ID. It is set to `0` for all implementations I'm aware of. + #### `nInstances` This is an array of 9 counts of instances of hardware per type of hardware. The types are, in order (by 0-based index): |
