Documentation
¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CalculateChecksum ¶
func IntelPlatforms ¶
Types ¶
type ExtendedHeader ¶
type ExtendedHeaderField ¶
type ExtraHeader ¶
type ExtraHeader struct {
ModuleType uint16 // 0x00 0000 (always)
ModuleSubType uint16 // 0x02 0000 (always)
ModuleSize uint32 // 0x04 dwords
Flags uint16 // 0x08 0 RSA Signed, 1-31 Reserved
RSAKeySize uint16 // 0x0A 1K multiple (2 * 1024 = 2048)
UpdateRevision uint32 // 0x0C Signed to signify PRD/PRE
VCN uint32 // 0x10 Version Control Number
MultiPurpose1 uint32 // 0x14 dwords from Extra, UpdateSize, Empty etc
Day uint8 // 0x18
Month uint8 // 0x19
Year uint16 // 0x1A
UpdateSize uint32 // 0x1C dwords from Extra without encrypted padding
ProcessorSignatureCount uint32 // 0x20 max is 8 (8 * 0x4 = 0x20)
ProcessorSignature0 uint32 // 0x24
ProcessorSignature1 uint32 // 0x28
ProcessorSignature2 uint32 // 0x2C
ProcessorSignature3 uint32 // 0x30
ProcessorSignature4 uint32 // 0x34
ProcessorSignature5 uint32 // 0x38
ProcessorSignature6 uint32 // 0x3C
ProcessorSignature7 uint32 // 0x40
MultiPurpose2 uint32 // 0x44 dwords from Extra + encrypted padding, UpdateSize, Platform, Empty
SVN uint32 // 0x48 Security Version Number
Reserved [20]uint8 // 0x4C Reserved (00000000)
Unknown [32]uint8 // 0x60
}
func ParseMicrocodeExtraHeader ¶
func ParseMicrocodeExtraHeader(mcBytes []byte) (*ExtraHeader, error)
type Header ¶
type Header struct {
HeaderVersion uint32 // 0x00 00000001 (Pattern)
UpdateRevision uint32 // 0x04 Signed to signify PRD/PRE
Year uint16 // 0x08
Day uint8 // 0x0A
Month uint8 // 0x0B
ProcessorSignature uint32 // 0x0C
Checksum uint32 // 0x10 OEM validation only
LoaderRevision uint32 // 0x14 00000001 (Pattern)
PlatformIDs uint8 // 0x18 Supported Platforms
Reserved0 [3]uint8 // 0x19 00 * 3 (Pattern)
DataSize uint32 // 0x1C Extra + Patch
TotalSize uint32 // 0x20 Header + Extra + Patch + Extended
Reserved1 [12]uint8 // 0x24 00 * 12 (Pattern)
}
Taken from MCE.py
func ParseMicrocodeHeader ¶
type Microcode ¶
type Microcode struct {
Header Header
Date Date
CalculatedChecksum uint32
Platforms []uint8
HeaderExtra *ExtraHeader
Encryption *RSAHeader
HeaderExtended *ExtendedHeader
Raw []byte
}
func ParseMicrocode ¶
Click to show internal directories.
Click to hide internal directories.