UEFI BIOS рдлрд╝рд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕, рднрд╛рдЧ рджреЛ: UEFI рдлрд░реНрдорд╡реЗрдпрд░ рд╡реЙрд▓реНрдпреВрдо рдФрд░ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА

рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдбреЗрдврд╝ ( рдкрд╣рд▓реЗ , рдбреЗрдврд╝ ) рднрд╛рдЧреЛрдВ рдХреЗ рдкреАрдЫреЗ, рдЕрдм рдЕрдВрдд рдореЗрдВ UEFI рдлрд░реНрдорд╡реЗрдпрд░ рд╡реЙрд▓реНрдпреВрдо рдФрд░ UEFI рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рд╛рд░реВрдк рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

рдкрд░рд┐рдЪрдп


рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд▓реЗрдЦ рдХреЗ рдЗрд╕ рднрд╛рдЧ рдореЗрдВ рдореИрдВ рд╕рдВрд╕реНрдХрд░рдг 2 рдХреЗ рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рд░реВрдкреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рд╕рднреА рдореМрдЬреВрджрд╛ BIOS рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдкреАрдЖрдИ рдорд╛рдирдХ рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рд╕рдВрд╕реНрдХрд░рдг 3 рдХреЗ рд╕реНрд╡рд░реВрдкреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ 16 рдПрдордмреА рд╕реЗ рдмрдбрд╝реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ, рдЬреЛ рдЕрднреА рддрдХ рдХрд┐рд╕реА рднреА рдмреЛрд░реНрдб рдкрд░ рдирд╣реАрдВ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рдкрд╣рд▓реЗ рд╣реА рдЗрд╕рдХреЗ Z87 рдмреЛрд░реНрдбреЛрдВ рдкрд░ рдЗрд╕ рдмрд┐рдВрджреБ рдХреЗ рдХрд░реАрдм рдЖ рдЪреБрдХрд╛ рд╣реИред рд╕рднреА рдЖрдзреБрдирд┐рдХ рдЗрдВрдЯреЗрд▓ рдорджрд░рдмреЛрд░реНрдб рдкрд░ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреНрд╖реЗрддреНрд░ 16 рдПрдордмреА рд╕реЗ рдЕрдзрд┐рдХ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде 2 рд╕реЗ рдЕрдзрд┐рдХ рдЪрд┐рдкреНрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдЧрд▓реА рдкреАрдврд╝реА рдХреЗ рдЗрдВрдЯреЗрд▓ рдЪрд┐рдкрд╕реЗрдЯ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рд╣реЛрдиреЗ рддрдХ рд╕рдВрд╕реНрдХрд░рдг 3 рдкреНрд░рд╛рд░реВрдкреЛрдВ рдХреЗ рдЙрдкрдпреЛрдЧ рдореЗрдВ рджреЗрд░реА рд╣реЛ рд░рд╣реА рд╣реИред

рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, Zotac Z77-ITX рд╡рд╛рдИрдлрд╛рдИ рдХреЗ рд▓рд┐рдП рдлрд╝рд╛рдЗрд▓ рд╕рдВрд╕реНрдХрд░рдг 229 рд╕реЗ BIOS рдХреНрд╖реЗрддреНрд░ рд▓реЗрдВред
рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

рдлрд░реНрдорд╡реЗрдпрд░ рдХреА рдорд╛рддреНрд░рд╛


рдлрд░реНрдорд╡реЗрдпрд░ рд╡реЙрд▓реНрдпреВрдо рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдкреАрдЖрдИ рдПрдлрдПрдлрдПрд╕ рдкреНрд░рд╛рд░реВрдк рдХреЛ рдпреВрдИрдПрдлрдЖрдИ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкреНрд░рд┐рд╕рд┐рдЬрд╝рдирдЯрди рдкреНрд░рд▓реЗрдЦрди рдХреЗ рд╡реЙрд▓реНрдпреВрдо 3 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдлрд░реНрдорд╡реЗрдпрд░ рд╡реЙрд▓реНрдпреВрдо рдлреНрд▓реИрд╢ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:
  1. рдирд╛рдо: FV рдФрд░ рдЙрд╕рдХреЗ рд╕рднреА рднрд╛рдЧреЛрдВ рдХрд╛ рдирд╛рдо рдЙрдирдХреЗ GUID рд╣реИ
  2. рдЖрдХрд╛рд░: рд╕рднреА рдбреЗрдЯрд╛, рд╣реЗрдбрд░ рдФрд░ рдореБрдХреНрдд рд╕реНрдерд╛рди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ
  3. рд╕реНрд╡рд░реВрдк: рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░ FV рдХреЗ рдЕрдВрджрд░, рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрд▓рдЧ GUID рд╣реИрдВ
  4. рдЧрдардмрдВрдзрди: FV рдХреЗ рдкрд╣рд▓реЗ рдмрд╛рдЗрдЯ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реАрдорд╛ рдкрд░ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХрдИ рдбрд┐рдЧреНрд░реА 2ред рдПрдлрд╡реА рдХрд╛ рд╕рдВрд░реЗрдЦрдг рдЗрд╕рдХреЗ рдЕрдВрджрд░ рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдВрд░реЗрдЦрдг рд╕реЗ рдХрдордЬреЛрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрдм рддрдХ рдХрд┐ EFI_FVB_WEAK_ALIGNMENT рдореЗрдВ EFI_FVB_WEAK_ALIGNMENT рдлреНрд▓реИрдЧ рд╕реЗрдЯ рди рд╣реЛред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рдВрд░реЗрдЦрдг 2 рдХреА рдХрд┐рд╕реА рднреА рд╢рдХреНрддрд┐ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ FV рдХреЛ рдЕрдм рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
  5. рдкрдврд╝рдиреЗ, рд▓рд┐рдЦрдиреЗ рдХреА рд╕реБрд░рдХреНрд╖рд╛, рд╕реНрд╡-рдЕрдХреНрд╖рдо рдкрдврд╝рдиреЗ рдпрд╛ рд▓рд┐рдЦрдиреЗ рдХреА рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ
  6. OEM рд╡рд┐рд╡реЗрдХрд╛рдзреАрди рд╡рд┐рдХрд▓реНрдк

FV рдХреЗ рдЕрдВрджрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдмрд╛рд╡рдЬреВрдж, FV рд╣реЗрдбрд░ рдХреЛ рдорд╛рдирдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
 typedef struct { UINT8 ZeroVector[16]; UINT8 FileSystemGuid[16]; UINT64 FvLength; UINT32 Signature; UINT32 Attributes; UINT16 HeaderLength; UINT16 Checksum; UINT16 ExtHeaderOffset; UINT8 Reserved[1]; UINT8 Revision; EFI_FV_BLOCK_MAP BlockMap[]; } EFI_FIRMWARE_VOLUME_HEADER; typedef struct { UINT32 NumBlocks; UINT32 Length; } EFI_FV_BLOCK_MAP 

рдЬрд╝реАрд░реЛрд╡реЗрдХреНрдЯрд░ : рдПрдлрд╡реА рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, 16 рдмрд╛рдЗрдЯреНрд╕ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП рдЖрд░рдХреНрд╖рд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рд░реАрд╕реЗрдЯ рд╡реЗрдХреНрдЯрд░ рд╢реВрдиреНрдп рдкрддреЗ рдкрд░ рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдмреНрд▓реЙрдХ рдореЗрдВ рд╢реВрдиреНрдп рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХреБрдЫ рдФрд░ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ, рдмреВрдЯ рдлрд╝рд░реНрдорд╡реЗрдпрд░ рд╡реЙрд▓реНрдпреВрдо рдХреЛ рдмрд╛рдХрд┐рдпреЛрдВ рд╕реЗ рдЕрд▓рдЧ рдкрд╣рдЪрд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
FileSystemGuid : рдЗрд╕ FV рдХреЗ рдЕрдВрджрд░ рдкреНрд░рдпреБрдХреНрдд рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред
FvLength : рд╕рднреА рд╣реЗрдбрд░ рдХреЗ рд▓рд┐рдП FV рдЖрдХрд╛рд░ред
рд╣рд╕реНрддрд╛рдХреНрд╖рд░ : рдПрдлрд╡реА рдХреА рдЦреЛрдЬ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдорд╛рдирдХ рд╣рдореЗрд╢рд╛ 0x4856465F рд╣реЛрддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд {'_','F','V','H'} ред
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ : рд╡рд╣реА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдордиреЗ рдКрдкрд░ рдмрд╛рдд рдХреА рдереАред рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг EFI_FVB_WEAK_ALIGNMENT , рдЬреЛ FV рдХреЛ рдиреЙрди- EFI_FVB_WEAK_ALIGNMENT рдмрдирд╛рддрд╛ рд╣реИ, рдпрджрд┐ рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ EFI_FVB_ALIGNMENT рд╕реЗ EFI_FVB_ALIGNMENT_1 рд╕реЗ EFI_FVB_ALIGNMENT_1 рд╕реЗ рдПрдХ рд╕реЗрдЯ рдХрд░реЗрдВ рд╢реЗрд╖ рдХреЛ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдЬреЛ FV рдХреЗ рд╕рд╛рде рдореЗрдореЛрд░реА рдХреНрд╖реЗрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдмреЗрдХрд╛рд░ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЙрдиреНрд╣реЗрдВ рд╕реВрдЪреАрдмрджреНрдз рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рд╢реАрд░реНрд╖рд▓реЗрдЦ : рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реЗрдбрд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╣реЗрдбрд░ рдХрд╛ рдЖрдХрд╛рд░, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдиреАрдЪреЗред
рдЪреЗрдХрд╕рдо : 16-рдмрд┐рдЯ рд╣реЗрдбрд░ рдЪреЗрдХрд╕рдоред рд╕рд╣реА рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдХреЛ 0x0000 рддрдХ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред
ExtHeaderOffset : рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реИрдбрд░ рдХреА рд╢реБрд░реБрдЖрдд рдХреА рднрд░рдкрд╛рдИред рдЗрд╕рдореЗрдВ рд╡рд░реНрдгрд┐рдд FV рдХрд╛ GUID, рдЙрдирдХреЗ GUID рдХреЗ рд╕рд╛рде OEM рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдФрд░ рдПрдХ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдлрд┐рд▓рд╣рд╛рд▓, рдореИрдВрдиреЗ рдПрдХ рднрд░реЗ рд╣реБрдП рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде рдПрдХ рднреА рдПрдлрд╡реА рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдпрджрд┐ FV рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рд╣реЗрдбрд░ рдирд╣реАрдВ рд╣реИ, рддреЛ 0x0000 рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╣реИред
рдЖрд░рдХреНрд╖рд┐рдд : рдЖрд░рдХреНрд╖рд┐рдд рдХреНрд╖реЗрддреНрд░, рд╣рдореЗрд╢рд╛ 0x00ред
рд╕рдВрд╢реЛрдзрди : рдкреАрдЖрдИ рдорд╛рдирдХ рдХреЗрд╡рд▓ рдПрдХ рд╕рдВрд╢реЛрдзрди рдХреА рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ - рджреВрд╕рд░рд╛, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдлрд╝реАрд▓реНрдб рд╣рдореЗрд╢рд╛ 0x02 рд╣реИред
BlockMap : рджреЛрдиреЛрдВ рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╢реВрдиреНрдп рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдВрд░рдЪрдирд╛ рдореЗрдВ рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА EFI_FV_BLOCK_MAP рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдмреНрд▓реЙрдХ рдореИрдкред рдХреНрдпреЛрдВрдХрд┐ рдЪреВрдБрдХрд┐ рд╕рднреА рдЖрдзреБрдирд┐рдХ рдлрд╝реНрд▓реИрд╢ рдорд╛рдЗрдХреНрд░реЛрдХрд╛рдЗрдХреНрд░реЗрдЯреНрд╕ рд╕рдЬрд╛рддреАрдп рд╣реИрдВ (рдЕрд░реНрдерд╛рдд, рдЙрдирдХреЗ рдкрд╛рд╕ рд╕рдорд╛рди рдЖрдХрд╛рд░ рдХреЗ рдмреНрд▓реЙрдХ рд╣реИрдВ), рдкреВрд░реА рд╕реВрдЪреА рдореЗрдВ рдЖрдорддреМрд░ рдкрд░ рдХреЗрд╡рд▓ рджреЛ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╣реЛрддреА рд╣реИрдВред

рдЖрдЗрдП рдЙрдкрд░реЛрдХреНрдд рдХреЗ рдЕрдиреБрдкрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред
рд╣реЗрдХреНрд╕ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рд╣рдорд╛рд░реА BIOS рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ BIOS рдХреНрд╖реЗрддреНрд░ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ, 0x500000 рдХреЛ рдСрдлрд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдПрдВред

рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рд╢реБрд░реБрдЖрдд рдореЗрдВ 16 рд╢реВрдиреНрдп рд╣реИрдВ, рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо GUID рд╣реИ, рдЗрд╕ FV рдХрд╛ рдЖрдХрд╛рд░ 0x020000 рд╣реИ, рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдЬрдЧрд╣ рдореЗрдВ рд╣реИ, рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рд╕реЗрдЯ рд╣реИрдВ, рд╣реЗрдбрд░ 0x48 рдмрд╛рдЗрдЯреНрд╕ рдЖрдХрд╛рд░ рдореЗрдВ рд╣реИ, рдЪреЗрдХрд╕рдо рдХреА рдЧрдгрдирд╛ рдХреА рдЧрдИ рд╣реИ, рдХреЛрдИ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рд╣реИрдбрд░ рдирд╣реАрдВ рд╣реИ, рдЖрд░рдХреНрд╖рд┐рдд рдлрд╝реАрд▓реНрдб рдЬрдЧрд╣ рдореЗрдВ рд╣реИрдВ, рдФрд░ рдЗрд╕рдХреЗ рдЕрдВрджрд░ рд╣реИрдВ FV рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ 0x1000 рдХреЗ 20 рдмреНрд▓реЙрдХ рд╣реИрдВ, рдЬреЛ рдХреБрд▓ рдорд┐рд▓рд╛рдХрд░ FvLength рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕рдВрдХреЗрддрд┐рдд рдЖрдХрд╛рд░ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЗрддрд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░, BIOS рдореЗрдВ рдХрдИ рдЕрд▓рдЧ-рдЕрд▓рдЧ FVs рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕реЗ рдПрдХ рдореЗрдВ рдкреИрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред UEFI BIOS рдХреЗ рд╕рднреА рдирд┐рд░реНрдорд╛рддрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдПрдХ рджреВрд╕рд░реЗ рдореЗрдВ FV рдФрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╢рд┐рдХрд╛рд░ рдХреА рдбрд┐рдЧреНрд░реА рдореЗрдВ Intel рд╣реИ, рдЬрд╣рд╛рдВ 12 рд╕реНрддрд░ рддрдХ рдХрд╛ рдШреЛрдВрд╕рд▓рд╛ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджреНрдпрдкрд┐ рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдЕрд▓рдЧ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдлрд╡реА рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдкреАрдЖрдИ рдПрдлрдПрдлрдПрд╕, рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдо рдЕрднреА рдмрд╛рдд рдХрд░реЗрдВрдЧреЗред

рдлрд░реНрдорд╡реЗрдпрд░ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо


рдпрд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдФрд░ рдкрджрд╛рдиреБрдХреНрд░рдо рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдлреНрд▓реИрдЯ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╣реИ, рдЬрд┐рдирдХреА рд╕рднреА рдлрд╛рдЗрд▓реЗрдВ рдШреЛрдбрд╝реЗ рдХреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╣реИрдВред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рд╢реБрд░реВ рд╕реЗ рдЕрдВрдд рддрдХ рдПрдлрдПрд╕ рд╕реЗ рдЧреБрдЬрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд╕рднреА рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдПрдХ рдорд╛рдирдХ-рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЗрдбрд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдлрд╛рдЗрд▓ рдХреЛ рд╕рд┐рд╕реНрдЯрдо рдХреА рд╢реБрд░реБрдЖрдд рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдЖрда-рдмрд╛рдЗрдЯ рд╕реАрдорд╛ рдкрд░ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдмрдбрд╝реА рд╕реАрдорд╛рдУрдВ рдкрд░ рд╕рдВрд░реЗрдЦрдг рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓-рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдорд╛рдирдХ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╡реАрдЯреАрдПрдл рдлрд╝рд╛рдЗрд▓ рдХрд╛ рднреА рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдПрдлрд╡реА рдХреЗ рдЕрдВрдд рдореЗрдВ рдореМрдЬреВрдж рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдпрд╣ рдХреЗрд╡рд▓ BIOS рдЫрд╡рд┐ рдореЗрдВ рдЕрдВрддрд┐рдо рдПрдлрд╡реА рдХреЗ рдЕрдВрдд рдореЗрдВ рдореМрдЬреВрдж рд╣реИ рдФрд░ рдпрд╣ рд╕реНрдерд┐рдд рд╣реИ рддрд╛рдХрд┐ рдЗрд╕рдХреА рдЖрдЦрд┐рд░реА рдмрд╛рдЗрдЯ рднреА рдкреВрд░реА рдЪрд┐рдк рдореЗрдВ рдЕрдВрддрд┐рдо рд╣реЛред рдЗрд╕рдореЗрдВ SEC рдЪрд░рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХреЛрдб рд╣реЛрддрд╛ рд╣реИред

рдлрд╝рд╛рдЗрд▓ рд╣реЗрдбрд░

FFS рдлрд╝рд╛рдЗрд▓ рд╣реЗрдбрд░ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
 typedef struct { UINT8 Name[16]; UINT8 HeaderChecksum; UINT8 DataChecksum; UINT8 Type; UINT8 Attributes; UINT8 Size[3]; UINT8 State; } EFI_FFS_FILE_HEADER; 

рдирд╛рдо : рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ GUIDред рдПрдХ FV рдореЗрдВ рдПрдХ рд╣реА GUID рдХреЗ рд╕рд╛рде рджреЛ рдлрд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддреА рд╣реИрдВ, рдЕрдЧрд░ рдпреЗ PAD рдлрд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рд╣реИрдВ, рдЬреЛ рдиреАрдЪреЗ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред
рд╣реЗрдбрд░рдЪреЗрдХрд╕рдо : рдбреЗрдЯрд╛рдЪреЗрдХрд╕рдо рдлреАрд▓реНрдб рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЖрда-рдмрд┐рдЯ рд╣реЗрдбрд░ рдЪреЗрдХрд╕рдоред рд╕рд╣реА рд╣реЗрдбрд░ рдХреЛ 0x00 рддрдХ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред
DataChecksum : рд╣реЗрдбрд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░, рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЖрда-рдмрд┐рдЯ рдЪреЗрдХрд╕рдоред рдпрд╣ рд╣рдореЗрд╢рд╛ рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЕрдЧрд░ FFS_ATTRIB_CHECKSUM рд╡рд┐рд╢реЗрд╖рддрд╛ FFS_ATTRIB_CHECKSUM , рдЕрдиреНрдпрдерд╛ рдпрд╣ рдлрд╝реАрд▓реНрдб FFS_ATTRIB_CHECKSUM рдкрд░ рд╕реЗрдЯ рд╣реИред
рдкреНрд░рдХрд╛рд░ : рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ред рдорд╛рдирдХ 13 рдорд╛рдирдХ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ (0x01 - 0x0D), OEM рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП 32 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░ (0xC0 - 0xDF), рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП 16 рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░ (0xE0 - 0xEF) рдФрд░ 16 рдкреНрд░рдХрд╛рд░ FFS рдХреЗ рд╡рд░реНрддрдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢рд┐рд╖реНрдЯ (0xF0 - 0xFF) рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ 0xF0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдкреНрд▓реЗрд╕рд╣реЛрд▓реНрдбрд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП EFI_FV_FILETYPE_FFS_PAD ред
рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреЛрдИ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ null GUID, null рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ, рдорд╛рдирдХ рд╕реНрдерд┐рддрд┐ рдФрд░ рдХреЛрдИ рднреА рдЖрдХрд╛рд░ рд╢рд╛рдорд┐рд▓ рд╣реИред рдорд╛рдирдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдлрд╝рд╛рдЗрд▓ рдЦрд╛рд▓реА рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рдд рд╣реЗрдбрд░ рдмрд┐рдЯреНрд╕ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЗрд╕рдХреЗ рд╕рднреА рдмрд┐рдЯреНрд╕ рдХреЛ EFI_FVB_ERASE_POLARITY рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдорд╛рдирдХ 8 рдмрд╛рдЗрдЯреНрд╕ рд╕реЗ рдЕрдзрд┐рдХ рд╕реАрдорд╛ рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред PAD рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдиреНрдпреВрдирддрдо рдЖрдХрд╛рд░ рд╣реЗрдбрд░ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИ - 24 рдмрд╛рдЗрдЯреНрд╕ред
рд╣рдо рдорд╛рдирдХ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рд▓реМрдЯреЗрдВрдЧреЗред
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ : рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ FFS_ATTRIB_FIXED , рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХреЛ FV рдХреЗ рдЕрдВрджрд░ рдирд╣реАрдВ FFS_ATTRIB_FIXED рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ FFS_ATTRIB_DATA_ALIGNMENT рдХрд╛ рдПрдХ рд╕реЗрдЯ, рдпрд╣ рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдбреЗрдЯрд╛ (рд╣реЗрдбрд░ рдирд╣реАрдВ) рдХрд┐рд╕реА рд╕реАрдорд╛ рдкрд░ рд╕рдВрд░реЗрдЦрд┐рдд рд╣реИред
рдЖрдХрд╛рд░ : рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде рдлрд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░, 24-рдмрд┐рдЯ UINT рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрддред
рд░рд╛рдЬреНрдп : рдлрд╝рд╛рдЗрд▓ рд╕реНрдерд┐рддрд┐ред рдЗрд╕ рдлрд╝реАрд▓реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ FV рдХреЛ рдореЗрдореЛрд░реА рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдФрд░ FV рдХреЗ рдЕрдВрджрд░ рдлрд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред BIOS рдЫрд╡рд┐ рдХреЗ рдЕрдВрджрд░ рд╕рднреА рдорд╛рдиреНрдп рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╕реНрдерд┐рддрд┐ 0xF8 рд╣реИред

рдЕрдм рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░реЛрдВ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВред рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рдЕрднреА рддрдХ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдбреЗрдврд╝ рднрд╛рдЧ рдХреЛ рдирд╣реАрдВ рдкрдврд╝рд╛ рд╣реИ, рдореИрдВ рдЬрд╛рдиреЗ рдФрд░ рдкрдврд╝рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдЕрдиреНрдпрдерд╛ рдЖрдк рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕рдордЭрдиреЗ рдХрд╛ рдЬреЛрдЦрд┐рдо рдЙрдард╛рддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рдирддреЗ рд╣реИрдВ, 13 рдорд╛рдирдХ рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ, рдпрд╣рд╛рдБ рд╡реЗ рд╣реИрдВ:
рдирд╛рдордЯрд╛рдЗрдкрд╡рд┐рд╡рд░рдг
рд░реЙ0x01рдРрд╕реА рдлрд╝рд╛рдЗрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рдХреБрдЫ рднреА рдЬреНрдЮрд╛рдд рдирд╣реАрдВ рд╣реИ
freeform0x02рдЗрд╕ рддрд░рд╣ рдХреА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдПрдХ рдЕрдиреБрднрд╛рдЧреАрдп рд╕рдВрд░рдЪрдирд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рднреА рдкрд╣рд▓реЗ рд╕реЗ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдкрддрд╛ рд╣реИред
SECURITY_CORE0x03SEC рдЪрд░рдг рдореЗрдВ рд╕реБрд░рдХреНрд╖рд╛ рдХрд░реНрдиреЗрд▓ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛрдб
PEI_CORE0x04PEI рдХреЛрд░, рдЙрд░реНрдл тАЛтАЛPEI рдлрд╛рдЙрдВрдбреЗрд╢рди
DXE_CORE0x05рдбреАрдПрдХреНрд╕рдИ, рдЙрд░реНрдл тАЛтАЛрдбреАрдПрдХреНрд╕рдИ рдлрд╛рдЙрдВрдбреЗрд╢рди рдХрд╛ рдореВрд▓
PEIM0x06PEI рдореЙрдбреНрдпреВрд▓
рдбреНрд░рд╛рдЗрд╡рд░0x07DXE рдбреНрд░рд╛рдЗрд╡рд░
COMBINED_PEIM_DRIVER0x08рд╣рд╛рдЗрдмреНрд░рд┐рдб PEI / DXE рдореЙрдбреНрдпреВрд▓
рдЖрд╡реЗрджрди0x09рдЖрд╡реЗрджрдиред рдпрд╣ рдбреАрдПрдХреНрд╕рдИ рдЪрд╛рд▓рдХ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдХрд┐ рдпрд╣ рдбреАрдПрдХреНрд╕рдИ рдкреНрд░рдмрдВрдзрдХ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдпреВрдИрдПрдлрдЖрдИ рд╕реЗрдЯрдЕрдк, рдпреВрдИрдПрдлрдЖрдИ рд╢реЗрд▓, BIOS рдЕрдкрдбреЗрдЯ рдЖрджрд┐ рд╣реИрдВред
рдПрд╕ рдПрдо рдПрдо0x0ASMM рдореЙрдбреНрдпреВрд▓
FIRMWARE_VOLUME_IMAGE0x0BрдЫрд╡рд┐ FVред рдпрд╣ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдПрдХ FV рдХреЛ рджреВрд╕рд░реЗ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ
COMBINED_SMM_DXE0x0CрдПрд╕рдПрдордПрдо / рдбреАрдПрдХреНрд╕рдИ рд╣рд╛рдЗрдмреНрд░рд┐рдб рдореЙрдбреНрдпреВрд▓
SMM_CORE0x0DрдХрд░реНрдиреЗрд▓ рдПрд╕рдПрдордПрдо, рдЙрд░реНрдл тАЛтАЛрдПрд╕рдПрдордПрдо рдЗрдирд┐рдЯ

рд╣рдорд╛рд░реА рдлрд╝рд╛рдЗрд▓ рдкрд░ рдЙрдкрд░реЛрдХреНрдд рдЬрд╛рдВрдЪреЗрдВ:

рдПрдлрд╡реА рд╣реЗрдбрд░ рдХреЗ рдкрд╣рд▓реЗ 0x48 рдмрд╛рдЗрдЯреНрд╕ рд╣рдореЗрдВ рдЕрдм рдФрд░ рд░реБрдЪрд┐ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬреЛ рддреБрд░рдВрдд рдЙрдирдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ рд╡рд╣ рд╣рдореЗрдВ рд░реБрдЪрддрд╛ рд╣реИред рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ GUID CEF5B9A3-476D-497D-497F-EF14143E0422C, рд╣реИрдбрд░ рдЪреЗрдХрд╕рдо 0x36, рдбреЗрдЯрд╛ рдЪреЗрдХрд╕рдо 0xAA рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╛рдЗрд▓ рд╣реИ, рдЬреЛ рд╣рдЯрд╛рдП рдЧрдП рд╡рд┐рд╢реЗрд╖рддрд╛ FFS_ATTRIB_CHECKSUM , рдкреНрд░рдХрд╛рд░ RAW (0x01) рдХреЗ рдмрд┐рдирд╛, рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред ред рд╕рддреНрдп рдЬреИрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИред

рдЕрдм рд╡рд░реНрдЧреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред RAW рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА FFS рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдбреЗрдЯрд╛ рдХреНрд╖реЗрддреНрд░ рдХреА рд╢реБрд░реБрдЖрдд рд╕реЗ 4 рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕реАрдорд╛ рдкрд░ рд╕рдВрд░реЗрдЦрд┐рдд рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рдВрдЦреНрдпрд╛ рдФрд░ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рдХрд╛рд░ рдХреА рдлрд╝рд╛рдЗрд▓ рдХреА рдЕрдкрдиреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рд╣реЛрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреА рдХреЛрдИ рд╕реВрдЪреА рдирд╣реАрдВ рд╣реЛрдЧреА - рдпрд╣ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╣реИ рдФрд░ рдмрд╣реБрдд рдЙрдмрд╛рдК рд╣реИред рд▓реЗрдХрд┐рди рдЕрдиреБрднрд╛рдЧ рд╢реАрд░реНрд╖рдХ, рдЙрдирдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдФрд░ рдкреНрд░рдХрд╛рд░, рдЕрдм рд╣рдо рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдиреБрднрд╛рдЧ рд╢реАрд░реНрд╖ рд▓реЗрдЦ

рдиреНрдпреВрдирддрдо рдЦрдВрдб рд╢реАрд░реНрд╖рд▓реЗрдЦ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:
 typedef struct { UINT8 Size[3]; UINT8 Type; } EFI_COMMON_SECTION_HEADER; 

рдЖрдХрд╛рд░ : рдлрд╝рд╛рдЗрд▓ рд╢реАрд░реНрд╖рд▓реЗрдЦ рдХреЗ рд╕рдорд╛рди рд╕реНрд╡рд░реВрдк рдореЗрдВ рдЕрдиреБрднрд╛рдЧ рдЖрдХрд╛рд░ред
рдкреНрд░рдХрд╛рд░ : рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдкреНрд░рдХрд╛рд░ред
рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЛ рджреЛ рдЙрдкрд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдФрд░ рд▓реАрдлред рдкреВрд░реНрд╡ рдореЗрдВ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдмрд╛рдж рдореЗрдВ рд╕реАрдзреЗ рдбреЗрдЯрд╛ рд╣реЛрддреЗ рд╣реИрдВред рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрдиреБрднрд╛рдЧреЛрдВ рдиреЗ рд╣реЗрдбрд░ рдмрдврд╝рд╛рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╢реБрд░реБрдЖрдд рд╣рдореЗрд╢рд╛ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред
рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЗ рд▓рд┐рдП 3 рдкреНрд░рдХрд╛рд░ рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХреА рдЧрдИ рд╣реИ:
0x01 - EFI_SECTION_COMPRESSION , рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрднрд╛рдЧ рдХреБрдЫ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рдВрдХреБрдЪрд┐рдд рд╣реИред
рдкреВрд░реНрдг рд╢реАрд░реНрд╖рдХ EFI_COMPRESSION_SECTION (рд╢реАрд░реНрд╖рдХ рдореЗрдВ рд╢рдмреНрдж рдорд┐рд╢реНрд░рд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рдпрд╣ рдРрд╕рд╛ рд╣реИ):
 typedef struct { UINT8 Size[3]; UINT8 Type; UINT32 UncompressedSize; UINT8 CompressionType; } EFI_COMPRESSION_SECTION; 

рдЕрд╕рдореНрдкреАрдбрд┐рдд рдЖрдХрд╛рд░: рд╡рд┐рдШрдЯрд┐рдд рдбреЗрдЯрд╛ рдХрд╛ рдЖрдХрд╛рд░ред
CompressionType : рд▓рд╛рдЧреВ рд╕рдВрдкреАрдбрд╝рди рдПрд▓реНрдЧреЛрд░рд┐рдердоред
рдлрд┐рд▓рд╣рд╛рд▓ 2 рдХрдореНрдкреНрд░реЗрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рджрдо рд╣реИрдВ- рдЯрд┐рдпрд╛рдиреЛ (0x01) рдФрд░ LZMA (0x02)ред рдпрджрд┐ рдЕрдиреБрднрд╛рдЧ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рдмрд┐рдирд╛ рдЕрдирдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рддреЛ 0x00 рдХреЛ рд╕рдВрдкреАрдбрд╝рди рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдЕрдиреБрднрд╛рдЧ рдЖрдХрд╛рд░ рдкреИрдХ рдХрд┐рдП рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдЯрд┐рдпрд╛рдиреЛ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо LZ77 рдФрд░ рдЗрдВрдЯреЗрд▓ рджреНрд╡рд╛рд░рд╛ рд╣рдлрдореИрди рдХреЛрдб рдХрд╛ рдПрдХ рд╕рдВрдпреЛрдЬрди рд╣реИ, рд╕рдВрдкреАрдбрд╝рди рдФрд░ рд╡рд┐рдШрдЯрди рдХреЛрдб BSDL рдХреЗ рддрд╣рдд TianoCore рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рд▓рд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред LZMA рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрд╣реБрдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рдВрдкреАрдбрд╝рди рдФрд░ рд╡рд┐рдШрдЯрди рдХреЛрдб LZMA SDK рдореЗрдВ рд╣реИред

рдЪрд▓реЛ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдЕрдиреБрднрд╛рдЧреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВ:
0x02 - EFI_SECTION_GUID_DEFINED , рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрднрд╛рдЧ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдЙрд╕рдореЗрдВ рджрд░реНрдЬ GUID рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рджреЗрдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдРрд╕реЗ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдУрдИрдПрдо рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде рдЕрдиреБрднрд╛рдЧ рдпрд╛ рд╕рдВрдкреВрд░реНрдг рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрдирд┐рдХ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
0x03 - EFI_SECTION_DISPOSABLE , рдПрдХ рдЕрдиреБрднрд╛рдЧ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ рдФрд░ рдЕрдВрддрд░рд┐рдХреНрд╖ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП reassembly рдХреЗ рджреМрд░рд╛рди рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдлрд╝рд╛рдЗрд▓реЛрдВ рдореЗрдВ, BIOS рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИред
рдкрддреНрддреА рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП, 12 рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдХрд╛рд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ:
рдирд╛рдордЯрд╛рдЗрдкрд╡рд┐рд╡рд░рдг
PE320x10рдЕрдкрдиреЗ рд╕рднреА рд╣реЗрдбрд░ рдХреЗ рд╕рд╛рде PE32 + рдкреНрд░рд╛рд░реВрдк рдореЗрдВ 64-рдмрд┐рдЯ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛрдбред рдпреВрдИрдПрдлрдЖрдИ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛрдб рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдкреНрд░рд╛рд░реВрдкред
рдкреАрдЖрдИрд╕реА0x1164-рдмрд┐рдЯ рд╕реНрдерд┐рддрд┐-рд╕реНрд╡рддрдВрддреНрд░ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛрдбред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреЗрд╡рд▓ рдХреБрдЫ PEI рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдкреНрд░рд╛рд░реВрдк PE32 + рдХреЗ рд╕рдорд╛рди рд╣реЛрддрд╛ рд╣реИ, рдХреЗрд╡рд▓ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдХрд╛рдЯ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
TE0x1264-рдмрд┐рдЯ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЙрдбреНрдпреВрд▓ рдФрд░ PEI рдХреЛрд░ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдПрдХ рд╢реАрд░реНрд╖ рд▓реЗрдЦ рджреНрд╡рд╛рд░рд╛ PE32 + рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреИрд╢ рдореЗрдВ рд╕реНрдерд╛рди рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдо рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдХреЗ рдбреЗрдврд╝ рднрд╛рдЧ рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдкрдврд╝реЗрдВред
DXE_DEPEX0x13рдПрдХ рдЦрдВрдб рдЬрд┐рд╕рдореЗрдВ рдбреАрдПрдХреНрд╕рдИ рдЪрд╛рд▓рдХ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╕реНрдерд┐рдд рд╣реИред рдЗрд╕ рдЦрдВрдб рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдЦрдВрдб 2 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИ
рд╕рдВрд╕реНрдХрд░рдг0x14рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ рдФрд░ рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ рдкреВрд░реНрдг рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдПрдХ рдпреВрдирд┐рдХреЛрдб рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред рдпрд╣ рдХрд╛рдлреА рджреБрд░реНрд▓рдн рд╣реИред
USER_INTERFACE0x15рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд╕рд╛рде рдПрдХ рдпреВрдирд┐рдХреЛрдб-рд╢рдмреНрдж рд╕рдорд╛рд╣рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рдЕрдиреБрднрд╛рдЧ рдХреА рд╕рд╛рдордЧреНрд░реА рджреНрд╡рд╛рд░рд╛ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдЦреЛрдЬ рдХрд░рдирд╛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЕрдХреНрд╕рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реЗ рдЕрдиреБрднрд╛рдЧ рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдмрд┐рдирд╛ рднреА BIOS рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
COMPATIBILITY160x16рдкреБрд░рд╛рдиреЗ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рд╕рдВрдЧрддрддрд╛ рдХреЗ рд▓рд┐рдП 16-рдмрд┐рдЯ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛрдбред
FIRMWARE_VOLUME_IMAGE0x17FV рдЫрд╡рд┐ рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╛рдЧред рдЗрд╕ FV рдХреЗ рдЕрдВрджрд░ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕реЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рдлрд╛рдЗрд▓ рднреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдФрд░ рдЗрд╕реА рддрд░рд╣, рдЬрдм рддрдХ рдХрд┐ рдорд╛рдЗрдХреНрд░реЛрдХреНрд░реЗрд╕реАрдЯ рдореЗрдВ рдЬрдЧрд╣ рдЦрддреНрдо рди рд╣реЛ рдЬрд╛рдПред
FREEFORM_SUBTYPE_GUID0x18рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ рджрд░реНрдЬ рдХреА рдЧрдИ GUID рдХреА рд╢реБрд░реБрдЖрдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реЛред
рд░реЙ0x19рдХрдЪреНрдЪреЗ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╛рдЧред рдЙрдирдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рд╣реИ рдпрд╣ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЦреЛрд▓рдиреЗ рд╡рд╛рд▓реЗ рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
PEI_DEPEX0x1BрдкреАрдИрдЖрдИ рдореЙрдбреНрдпреВрд▓ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдЦрдВрдб рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рд░рд╣рддрд╛ рд╣реИред рдЗрд╕ рдЦрдВрдб рдХрд╛ рдкреНрд░рд╛рд░реВрдк рдЦрдВрдб 1 рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред
SMM_DEPEX0x1Cрд╡рд╣ рдЕрдиреБрднрд╛рдЧ рдЬреЛ рдПрд╕рдПрдордПрдо рдЪрд╛рд▓рдХ рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рд╕реНрдерд┐рдд рд╣реИ, рдкреНрд░рд╛рд░реВрдк DXE_DEPEX рдХреЗ рд╕рдорд╛рди рд╣реИред

рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдКрдкрд░ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВред рдкрд┐рдЫрд▓реА рдмрд╛рд░ рдорд╛рдиреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд░реЙ рдкреНрд░рдХрд╛рд░ рдХреА рдлрд╛рдЗрд▓ рдореЗрдВ рдХреЛрдИ рдЦрдВрдб рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдЗрдП рдПрдХ рдФрд░ рдлрд╛рдЗрд▓ рд▓реЗрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рд╣реИ PEI рдореЙрдбреНрдпреВрд▓ рдЬрд┐рд╕рдХрд╛ рдирд╛рдо PchUsb рд╣реИ рдЬреЛ рдСрдлрд╕реЗрдЯ 0x7AD210 рдкрд░ рд╕реНрдерд┐рдд рд╣реИ:

рдпрд╣ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ PEIM рд╣реИ (рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ 0x06 рд╣реИ), рдЬрд┐рд╕рдореЗрдВ рджреЛ рдЦрдВрдб рд╣реИрдВред рдЖрдХрд╛рд░ 0x3A рдХреЗ рдкрд╣рд▓реЗ рдЦрдВрдб рдФрд░ рдкреНрд░рдХрд╛рд░ PEI_DEPEX (0x1B) рдореЗрдВ рдЗрд╕рдХреА рдирд┐рд░реНрднрд░рддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реИред рджреВрд╕рд░реЗ рдЦрдВрдб (4 рдмрд╛рдЗрдЯреНрд╕ рдХреА рд╕реАрдорд╛ рдкрд░ рд╕рдВрд░реЗрдЦрд┐рдд) рдХрд╛ рдЖрдХрд╛рд░ 0x31A рд╣реИ рдФрд░ рдЯрд╛рдЗрдк COMPRESSED_SECTION (0x01), рдФрд░ рдЗрд╕рдореЗрдВ рдбреЗрдЯрд╛ LZMA рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо (0x02) рджреНрд╡рд╛рд░рд╛ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдирдкреИрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕рдХрд╛ рдЖрдХрд╛рд░ 0x558 рд╣реИред рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдкрдХреЗ рдорди рдореЗрдВ LZMA рдХреЛ рдХреИрд╕реЗ рд╣рдЯрд╛рдирд╛ рд╣реИ, рддреЛ рдЖрдк рдкрд╣рд▓реЗ рд╣реА рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рдЪреБрдХреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕ рд╕реЗрдХреНрд╢рди рдХреЗ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реИ, рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдореИрдВ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реВрдБред 2 рдФрд░ рдЦрдВрдб рд╣реИрдВ: PE32 рдореЙрдбреНрдпреВрд▓ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдХреЛрдб рдФрд░ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдХреЗ рд╕рд╛рде USER_INTERFACE рдХреЗ рд╕рд╛рдеред рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ, рдореБрдЭреЗ рдХреИрд╕реЗ рдкрддрд╛ рдЪрд▓реЗрдЧрд╛ рдХрд┐ рдореЗрд░реЗ рджрд┐рдорд╛рдЧ рдореЗрдВ LZMA рдирд╣реАрдВ рд╣реИ? рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдРрдк рд╣реИ!

рдлреАрдирд┐рдХреНрд╕рдЯреВрд▓ рдФрд░ рдирд┐рд╖реНрдХрд░реНрд╖


рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдлреАрдирд┐рдХреНрд╕рдЯреВрд▓ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдПрд╕рдПрд▓рдЖрдИрд╕реА рдХреЛ рдпреВрдИрдПрдлрдЖрдИ BIOS рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдХрд╛рдиреВрди рдХрд╛ рдкрд╛рд▓рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд▓реЛрдЧ рд╣реИрдВ рдФрд░ рд╣рдо рдЕрдкрдиреЗ BIOS рдореЗрдВ рдПрд╕рдПрд▓рдЖрдИрд╕реА рдХреЛ рдирд╣реАрдВ рдЬреЛрдбрд╝реЗрдВрдЧреЗред рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рд╕реЗ, рд╣рдо рд╕рдВрд░рдЪрдирд╛ рдмрдЯрди рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦреЗрдВрдЧреЗ, BIOS рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдХрд╛рдо рдХрд░реЗрдВрдЧреЗред рд╕рдВрд░рдЪрдирд╛ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЦреБрд▓рддреА рд╣реИ рдФрд░ рдПрдХ рдкреЗрдбрд╝ рдХреЗ рд░реВрдк рдореЗрдВ рдпреВрдИрдПрдлрдЖрдИ BIOS рдЫрд╡рд┐ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддреА рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдХ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдкрд░ рдЬрд╛рдирдХрд╛рд░реА рдФрд░ рдЙрдкрд▓рдмреНрдз рдХреНрд░рд┐рдпрд╛рдПрдВ рджрд╛рдИрдВ рдУрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЗрд╕ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдорд╛рдирд╛ рдЧрдпрд╛ рдлрд╝рд╛рдЗрд▓ рдХреБрдЫ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

рдХрд╛рд░реНрдпрдХреНрд░рдо рдлрд╝рд╛рдЗрд▓ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕реАрдорд┐рдд рд╕рдВрдкрд╛рджрди рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╣реИред

рдпреВрдИрдПрдлрдЖрдИ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдмреЗрд╣рддрд░ рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рд╕рдВрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП рдФрд░ рдпрд╣ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЕрдЧрд▓рд╛ рд▓реЗрдЦ рдкрдврд╝реЗрдВред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред

рд╕рд╛рд╣рд┐рддреНрдп


рдпреВрдИрдПрдлрдЖрдИ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЗрдирд┐рд╢рд┐рдпрд▓рд╛рдЗрдЬреЗрд╢рди рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди 1.2.1 рдЗрд░реЗрдЯрд╛ рдП, рдпреВрдИрдПрдлрдЖрдИ рдлреЛрд░рдо рджреНрд╡рд╛рд░рд╛ рджрд╕реНрддрд╛рд╡реЗрдЬ

Source: https://habr.com/ru/post/In185774/


All Articles