
ããã¯ãããŸããŸãªã¡ãŒã«ãŒã®UEFIäºæãã¡ãŒã ãŠã§ã¢ã§äœ¿çšãããNVRAMãã©ãŒãããã«é¢ããç§ã®ã¹ããŒãªãŒã®3çªç®ã®éšåã§ãã
æåã®éšåã§ã¯ãNVRAMå
šè¬ãšãæšæºãVSS圢åŒã«ã€ããŠ
ã2çªç®ã§ã¯ ããã®åœ¢åŒã®NVRAMã®æšªã«ããè峿·±ããããã¯ã«ã€ããŠèª¬æããŸãããããã®èšäºã§ã¯ãPhoenixãã©ãããã©ãŒã ã®ãã¡ãŒã ãŠã§ã¢ã§äœ¿çšãããããŸããŸãªåœ¢åŒã«ã€ããŠèª¬æããŸã
SCT ïŒFlashMapãEVSAãIntel uCodeãCMDBãSLIC pubkeyããã³SLICããŒã«ãŒã
ãã§ããã¯ã¹ã®éçºè
ãVSSã眮ãæããããã«äœãæãã€ãããã«èå³ããããªããã«ãããžãããããç§ã¯ããªãã«ããã«èŠåããŸããèšäºã¯éåžžã«é·ãããšã倿ããŸããã
å
責äºé
3
æåã®2ã€ã®ã倱æãã®åŸãããã«äœãæžãã¹ãããããããããŸããããã ããäœè
ã¯ãNVRAMããã¡ãŒã ãŠã§ã¢ãã·ã¹ãã ããã®ä»ãã¹ãŠã®æ©èœã®æå€±ã«å¯Ÿããäžåã®è²¬ä»»ããåã³è§£æŸãããŸãã èªåã®è²¬ä»»ã§æ
å ±ã䜿çšããèªåã§è¡åãããã¹ãŠãããŸãããã§ãããã
å¶ç¶ãã®èšäºãå¶ç¶èŠã€ããŠãããã§äœãèµ·ãã£ãŠããã®ããæç¢ºã§ãªãå Žåãèè
ãäœã説æããã«é ã§ããã€ãã®åœ¢åŒã«é£ã³èŸŒãçç±ãšã圌ãã©ã®ããã«åæ°ãæã£ãŠããã®ã-
æåãš
2çªç®ã®éšåãããªããåŸ
ã£ãŠããŸãã æ®ãã¯ç§ã®ãã®ã§ãïŒ
ãã§ããã¯ã¹ãã©ãã·ã¥ããã
Ivy Bridgeäžã®å€ãDell Vostro 3360ã®ãã¡ãŒã ãŠã§ã¢ããã¡ã€ã³NVRAMããªã¥ãŒã ã®å
容ãæåã«éãããšããç§ã¯éåžžã«é©ããŸããã ããã«èŠã€ãããªããã®-æåã«ãIntelãã€ã¯ãã³ãŒãã®ã»ããå
šäœãæååãå«ããããã¯ããã®ååã¯
NoLongerUsedæååã®ã³ããŒãRSA眲åãå«ãæŒ ç¶ãšéŠŽæã¿ã®ãããããã¯ãçŽ5ã€ã®EVSAã¹ãã¬ãŒãžãã«ãŒãã³ã®äžçœ²å_FLASH_MAPã èŠããã«ãPhoenixã®ã¡ã³ããŒã¯ãNVRAMã«éåžžã«å€ãã®ãã®ããã³ãããããšãã§ãããããã«ãŒããªãã§ã¯çè§£ã§ããŸããã§ããã 圌女ããå§ããŸãããã
ã«ãŒãã®ããããŒã¯16ãã€ãã§ã次ã®ããã«ãªããŸãã
struct PHOENIX_FLASH_MAP_HEADER { UINT8 Signature[10];
èŠåºãã®çŽåŸã«ã远å ã®ã¢ã©ã€ã¡ã³ããªãã§ã次ã®ãããªã¬ã³ãŒããé£ãåã£ãŠããŸãã
struct PHOENIX_FLASH_MAP_ENTRY { EFI_GUID Guid;
ã«ãŒãã®æå€§ãµã€ãºã¯ããã®äœçœ®ã«ãã£ãŠæ±ºãŸããŸãã ã¡ã€ã³NVRAMããªã¥ãŒã ã®æåŸãã0x1000ãã€ãã«é
眮ãããŠããŸããæå€§ã§ã¡ããã©113ãšã³ããªã§ãããååãªäœè£ããããŸãã
ã¹ã¯ãªãŒã³ã·ã§ããã§ã¯ããããã¯æ¬¡ã®ããã«ãªããŸãã
眲åãš
ã¬ã³ãŒãæ°ãå«ãããããŒãããã«è¡šç€ºãããçŽåŸã«
GUIDããŒãã
ããŒã¿ã¿ã€ã 0ïŒã€ãŸãããªã¥ãŒã ïŒã
ã¬ã³ãŒãã¿ã€ã 6ã
ç©çã¢ãã¬ã¹ 0xFF980000ã
ããŒã¿ãµã€ãº 0x20000ã
ãªãã»ãã 0ã®ã¬ã³ãŒããç¶ããŸãïŒãŸã
ãªãã»ããããããŸãïŒ ãããèªäœã«é¢ããŠãæåã®ããªã¥ãŒã ã¯ã©ãã«ãã·ãããããŸãããããã§ãªãå Žåããã¡ã€ã«ãŸãã¯ã¹ããŒã¹ã¡ããªãã¯ã®ããããã§äœããéåžžã«ééã£ãŠããŸãã
ããŸããŸãªç»åã§èŠã€ããããšãã§ãããã¹ãŠã®GUIDå€ãåŒçšããŠããŒã¿åãšé¢é£ä»ããããšãã§ããŸããããããã¯
UEFITool NEã® 1ã€ã®ã¹ã¯ãªãŒã³ã·ã§ããã§å®è¡ã§ããŸãã

GUIDã«å ããŠãããã€ãã®ãã¿ãã¬ã衚瀺ãããŸããRSAã®æŒ ç¶ãšéŠŽæã¿ã®ãããããã¯ã¯ã
SLICããŒãã«ã®å
¬éããŒããã³ããŒã«ãŒã§ããããšã倿ããäœããã®çç±ã§è¡ã®ãããããã¯ã¯CMDBãšåŒã°ããŸããã ããããã¹ãŠã«æ»ããŸãããã«ãŒãã«ã€ããŠã¯ãã¹ãŠæç¢ºã§ãããªã¹ããããããããã¹ãŠã®ãããã¯ã®ãã©ãŒããããè§£æããæ¹æ³ãåŠã¶ããšã¯æ®ã£ãŠãããPhoenix SCTã«åºã¥ãããã¡ãŒã ãŠã§ã¢ã®NVRAMæ§é ãå€å°çè§£ããŠãããšä»®å®ã§ããŸãã è¡ããïŒ
Intelãã€ã¯ãã³ãŒã
ãªã¹ãã®æåã¯ããã€ã¯ãã³ãŒãä»ãã®ãããã¯ã§ãã æ®å¿µãªãããNVRAMã«AMDãã€ã¯ãã³ãŒããå«ãã€ã¡ãŒãžããªããããIntelã®ã¿ãæ€èšããŸãã ãã€ã¯ãã³ãŒãããããŒã«ã¯æå€§12ãã€ãã®ç©ºããã€ããå«ãŸããŠãããšããäºå®ã«ãé¢ããããæªãããªçœ²åãããããŸããããã®ãããNVRAMããªã¥ãŒã ã®ã³ã³ãã³ããããã®ãããªããŒã¿ãããã¯ãèŠã€ããããšã¯äŸç¶ãšããŠèª²é¡ã§ãã ããã»ããµãéçºããŸã-ãã€ã¯ãã³ãŒãã®çœ²åã«ã€ããŠèããŠãã ããïŒ ãããã«ãããIntelãã€ã¯ãã³ãŒãã®äž»èŠãªèŠåºãã¯ææžåãããŠãããç§ã®èšæ¶ã§ã¯ããŸã£ããå€ãã£ãŠããŸããã ããã«ãããŸãïŒ
struct INTEL_MICROCODE_HEADER { UINT32 Version;
çè«çã«ã¯ããŸã æ¡åŒµããããŒããããŸãããããã«åæããããã®æãéèŠãªããšã¯ããã§ã«åãåã£ãåèšãµã€ãºã§ãã ããªã¥ãŒã ã®æåã®ãã€ã¯ãã³ãŒãã®ããããŒãèŠãŠã¿ãŸãããã
ããŒãžã§ã³ 1ã¯æå¹ã
ãªããžã§ã³ã¯0x28ã
ãªãªãŒã¹æ¥ã¯04.24.2012ã
ããã»ããµãŒã¿ã€ãã¯0x206A7ã
ãã§ãã¯ãµã ã¯0xF3E9935Dã
ããŒããŒãªããžã§ã³ã¯1ã
ããã»ããµãŒãã©ã°ã¯0x12ã
ããŒã¿ãµã€ãºã¯0x23D0ã
åèšãµã€ãºã¯0x2400ã§ãã
UEFITool NEã®åããã€ã¯ãã³ãŒãã§ã¯ããã€ã¯ãã³ãŒããæã€ãããã¯ã5ã€ãã£ãããšãããããŸãã

CMDB
ããããåç
§ããæ¬¡ã®ãããã¯ã¯
CMDBã§ãã ãã®ç®çã¯ç§ã«ã¯ããŸãæç¢ºã§ã¯ãªããããããè€æ°ã®ããŒãã«é©ãããã¡ãŒã ãŠã§ã¢ã®é©åãªæ§æãäžåºŠã«éžæããããSMBIOSããŒãã«ãäœæãããããããã«äœ¿çšãããŸããããçŸåšã¯äœ¿çšãããŠããŸããã ãã®ãããã¯ã«ã¯ããã®éçºè
ãèããã麻è¬äžæ¯è
ããšããåŒã¹ãªã圢åŒããããŸã-ããã¯å€§ããªè¬ã§ãã èªåã§èŠãŠãã ããïŒ
struct PHOENIX_CMDB_HEADER { UINT32 Signature;
ã¿ã€ãã«ã¯ãŸã£ããå¥åŠã«èŠããŸããããå
šäœã®ãµã€ãºã¯ãããŸããããŸããè§£æäžã«ãããã¯ã®çµãããèŠã€ããããšãã§ããŸããæ¥œãã¿ã¯ãããã«ã¹ã¯ãªãŒã³ã·ã§ããã«è¡šç€ºãããããã£ã³ã¯ã§å§ãŸããŸãã

CMDB
眲å ã
ãµã€ãº 0x0Cã
åèšãµã€ãº 0x23ã®ããããŒã®åŸã«ã3ãã€ãã®ãŒããã£ã³ã¯ããããŸãïŒ
éå§ãã€ã 0x42ïŒããã
TheAnswerãšåŒã³ãããšããèŠåŽã«ãŸã èŠããã§ã
ãŸã ïŒãããããŒã®åŸã®
æåã®è¡ã®ãªãã»ãã ïŒåžžã«0ã§ãïŒããã³è¡
ã®ãããã¯ã®éå§ã®ãªãã»ãã ïŒããã¯åžžã«TotalSize-HeaderSizeã§ãïŒã åèš-3ã€ã®ãã£ãŒã«ãã®ãã¡3ã€ã¯ãŸã£ãã䜿çšãããŠããŸããããã®ãã£ã³ã¯ãå¿
èŠãªçç±ã¯æããã«çè§£ã§ããŸããã ãã®ä»ã¯ãŒããã£ã³ã¯ã«åŸããŸãããããã¯ãã§ã«5ãã€ãã§æ§æãããŠããŸãã䜿ãæ
£ãã
éå§ 0x42ã
ããŒæååãªãã»ãã ãçè§£ã§ããªã
2ãã€ããã£ãŒã«ã ãåžžã«0x205ããã³
倿ååãªãã»ããã§ãã äž¡æ¹ã®è¡ã®é·ãã¯ã©ãã«ãä¿åãããŠããããæããã«èšç®ãããŠããŸããã è¡ã®ãããããã¯ã§ã¯ã
BiosInfo ããããŒè¡ãåå¥ã«æ ŒçŽããããŒããã£ã³ã¯ãåç
§ããä»ã®ãã£ã³ã¯ãåç
§ããæ®ãã®ãã¹ãŠã®è¡ãåç
§ããŸãã åèšãããã¯ãµã€ãºã¯åžžã«0x100ã§ãããããã©ãã«ãä¿åãããŸããã ç§ã¯ãããçºæãã人ãå«ç
ãããã®ãå°ãããã§ããïŒ
ãªããªã ãã®æ§é ã¯é·ãé䜿çšãããŠããããåæã«ç®ã§ããã«åè§£ããããããUEFITool NEã§ã®åæã®ãµããŒãã远å ãå§ããŸããã§ããã æ¥ã«å¿
èŠã«ãªã£ãå Žåã¯ãã³ã¡ã³ãæ¬ãŸãã¯
ããã«æžããŠãã ããã
SLICããããŒãšããŒã«ãŒ
CMDBã®çŽåŸã«ãWindows Vista / 7/2008ã®OEMã¢ã¯ãã£ããŒã·ã§ã³ã«å¿
èŠãªPubkeyããã³Markerãããã¯ãç¶ãããããã¯ç¹å¥ãªãã©ã€ããŒã«ãã£ãŠSLIC ACPIããŒãã«ã«è»¢éãããŸãã ãã®èšäºã®DMCAãã€ã¯ããŠã³ãé²ãããã«ãããã®ãããã¯ã®åœ¢åŒã«ã€ããŠã¯èª¬æããŸããããé·ãééã¢ã»ã³ãã«ãããŠããããã¹ãŠã®ãã£ãŒã«ãã®èª¬æã¯
RW EverythingãŠãŒãã£ãªãã£ã«ãã£ãŠè¡šç€ºãããUEFITool NEã¯ãããããµããŒãããŠããŸãã®ã§ããããã®ãããã¯ã®åœ¢åŒãå¿
èŠãªå Žåã¯ãèŠãŠãã ãã
nvram.hã§ ã
EVSA
ãããã®æåŸã®ãã©ãŒããã
ã ïŒ
æåŸã«ïŒ ïŒNVRAM倿°ãä¿åããããã«äœ¿çšãããŸãã VSSãšæ¯èŒããŠããã®åœ¢åŒã¯å€æ°åãšãã®GUIDã®éè€æé€ã«ããNVRAMã®ã¹ããŒã¹ãããå°ãå¹ççã«äœ¿çšããŸãããEVSAã¹ãã¬ãŒãžãå°ç¡ãã«ããæ¹ãã¯ããã«ç°¡åã§ãããNVRAMããããŒã¿ãå埩ããç§ã®ã±ãŒã¹ã®ã»ãšãã©ã¯ãå€§èŠæš¡ãªäœ¿çšã«ãããããããã®ãã§ãã¯ãµã 圢åŒã ããŒã¿ïŒãªããžããªèªäœã®ããããŒãå«ãïŒã¯ã次ã®ããã«å
±éããããŒãšç°ãªã远å ãã£ãŒã«ããæã€ã¬ã³ãŒãã®åœ¢åŒã§ä¿åãããŸãã
struct EVSA_ENTRY_HEADER { UINT8 Type;
ã¹ã¯ãªãŒã³ã·ã§ããïŒ

ããã«ã¯ã
ã¿ã€ã 0xECïŒãã¹ãã¬ãŒãžããããŒãïŒã®ã¹ãã¬ãŒãžããããŒãã·ã³ã°ã«ãã€ã
ãã§ãã¯ãµã 0x2Cãæ£ããEVSA
眲åä»ãã®
ãµã€ãº 0x14ã
屿§ 0x01ïŒãããã©ã«ãå€ã¯ããã«ãããŸããïŒããã³
ã¹ãã¬ãŒãžãµã€ãº 0x2B65ããããŸãã ããããŒã®çŽåŸã«ãäœçœ®åãããªãã§ã
ãµã€ãº 0x16ã
èå¥å 0ããã³1ã
GUID 4FEE3D67-18F4-4217-BA7B-BC538148382Aããã³1E1F1797-2CCEã®
ãã§ãã¯ãµã ããããã0x35ããã³0xB3ã®
ã¿ã€ã 0xEDïŒãGUIDãïŒã®2ã€ã®ãšã³ããªããããŸãã -49D6-A6CE-4012F338A76E
UEFITool NEã§ã¯ãåããªããžããªã¯æ¬¡ã®ããã«ãªããŸãã

äžèšã®ã¿ã€ã0xECïŒãã¹ãã¬ãŒãžãïŒããã³0xECïŒ0xE1ããGUIDãïŒã«å ããŠãããã«3ã€ãããŸã-0xEEïŒ0xE2ãã倿°åãïŒã0xEFïŒ0xE3ããããŒã¿ãïŒãããã³0x83 ïŒãåé€ãããããŒã¿ãïŒã ç§ãçè§£ããŠããããã«ããGUIDããã倿°åããªã©ã®ãšã³ããªãåé€ã§ããã®ã¯ããã©ã€ããã¬ããŒãžã³ã¬ã¯ã·ã§ã³ãå®è¡ããŠãªããžããªãå®å
šã«åæ§ç¯ããå Žåã®ã¿ã§ãã
ã¿ã€ããã倿°åãã®ãšã³ããªã¯æ¬¡ã®ããã«ãªããŸãã
struct EVSA_NAME_ENTRY { EVSA_ENTRY_HEADER Header;
åçïŒ
ãã§ãã¯ãµã ã 0x39ã
é·ãã 0x20ã
èå¥åã 0ã®
ã¿ã€ã 0xEEã®ã¬ã³ãŒã
ãUCS2ã®DellVariable æååãå«ãŸããŸãã UEFITool NEã«è¡šç€ºããæå³ã¯ãããŸããããã®ããããã¹ãŠãæç¢ºã§ãã
ã¬ã³ãŒãã®æåŸã®ã¿ã€ãã§ããããŒã¿ãèæ
®ããå¿
èŠããããŸãã å®éãæ¬¡ã®ãããª2ã€ã®åœ¢åŒããããŸãã
struct EVSA_DATA_ENTRY { EVSA_ENTRY_HEADER Header;
ã¹ã¯ãªãŒã³ã·ã§ããã§ã¯æåã®ãã®ã®ã¿ã衚瀺ããŸãã2çªç®ã®ãã®ã¯éåžžã«ãŸãã§ããã远å ã®ãã£ãŒã«ãã1ã€ã ãããããã§ãã

ããã«ã¯ã
ã¿ã€ã 0xEFã®2ã€ã®ã¬ã³ãŒãããããæåã®ã¬ã³ãŒãã«
㯠0x84ã
ãµã€ãº 0x5Fã
GUID 0ã
ååèå¥å 0ããã³
屿§ 0x03ïŒ
NV +
BS ïŒã®
ãã§ãã¯ãµã ãããã2çªç®ã«ã¯ãããã0xEAã0x11ã1ã1ãããã³0x03ããããŸãã æåã®äŸã§ã¯ãGUID 4FEE3D67-18F4-4217-BA7B-BC538148382Aã®äžèšã®DellVariable倿°ã®ããŒã¿ãæ£ç¢ºã«ä¿åãããŠããããšãããããŸããã
UEFITool NEã®å ŽåïŒ

ãããã«
ããŠãPhoenix SCTã³ãŒãããŒã¹ãã¡ãŒã ãŠã§ã¢ãNVRAMããªã¥ãŒã ã«ä¿åã§ããããŒã¿åœ¢åŒãå°ãæç¢ºã«ãªããŸããã AMI Aptioã§äœ¿çšãããŠããNVAR圢åŒã«ã€ããŠã¯ããã®èšäºã®æ¬¡ã®æåŸã®éšåã§èª¬æããŸãã
ãæž
èŽããããšãããããŸãããéç¥ãããäŒç¥šãL / Cã«éä¿¡ããå°ãªããšãäœããã®åœ¢ã§æåã§NVRAMã埩å
ããªãããã«ã©ã³ãã ã«ä¿åããŠãã ããã