
UEFIã®ã»ãã¥ãªãã£ãè
åšãããã³è
åšã«å¯Ÿããæ¢åã®é²åŸ¡ã«ã€ããŠã®æåŸã®æçš¿ã§äŒè©±ãéå§ããŸãã
ä»åã¯ãSMMããããã©ã®ããã«æ§æããåäœãããããããŠãªããããæ»æã®æãŸããã¿ãŒã²ããã§ãããã«ã€ããŠã話ããŸãã
ãã®äœåã®
ãŒãéšåãšæåã®éšåãèŠéããŠããŸã£ãã®ã§
ãæåã«ããããèªãããšããå§ãããŸããæ®ãã®éšåã¯å¿ å®ã«ç«ãæ±ããŸãã
ããŒã2 SMM
å°ãã®æè²ããã°ã©ã
æ€çŽ¢ãšã³ãžã³æé©åãšãããã¯ãŒã¯ããŒã±ãã£ã³ã°ã¹ãã·ã£ãªã¹ãã®ãããã§ïŒå¥å
šã«ïŒïŒããSMMãã®ãªã¯ãšã¹ãã§ã¯SMMã«é¢ããæ
å ±ããããã¯ãŒã¯äžã§èŠã€ããããšã¯çµ¶å¯Ÿã«äžå¯èœã§ããã·ã§ã«ã
ã·ã¹ãã 管çã¢ãŒãã¯ãx86 / amd64äºæããã»ããµã®æãç¹æš©çãªã³ãŒãå®è¡ã¢ãŒãã®1ã€ã§ããIntel80386ã®ç¹å¥ãªSLããŒãžã§ã³ã§åããŠç»å ŽããŸããã80486以éãAMDããã³VIA補ãå«ããã¹ãŠã®x86 CPUã§ãµããŒããããŸãã
åœåãSMMã¯OSã«äŸåããªãèªåé»æºããã³ã·ã¹ãã ããã€ã¹ç®¡çãå®è£
ããããã«äœ¿çšãããŸããã ãã®æéã®ãã®OSãæããããšã¯ãããã»ããµã«å¥ã®å®è¡ã¢ãŒããè¿œå ãããããå°é£ã§ããã
SMMã¢ãŒããžã®åãæ¿ãã¯ãããŸããŸãªæ¹æ³ã§çæãããç¹å¥ãªå²ã蟌ã¿
SMIã䜿çšããŠã®ã¿å®è¡ãããŸãã
-ããŒããŠã§ã¢ãé«ã¬ãã«åºåSMIãçºè¡ïŒ
-ããã€ãã®ã€ãã³ãã®çµæãšããŠã®ã·ã¹ãã èªäœ
-ããã°ã©ã çã«ãæå®ãããçªå·ã§ãã€ããCPU IOã¬ãžã¹ã¿ã«éä¿¡ããŸãïŒã»ãšãã©ã®å Žåãã¬ãžã¹ã¿0xB2ã§ãïŒ
ããŒããŠã§ã¢SMI
圌ã«ã€ããŠæžãããšã¯ç¹ã«ãããŸãããèã«åŒµåããããŸã-äžæããŸãã ä»ã§ã¯ãã£ãã«äœ¿ãããªã ã»ãšãã©ãã¹ãŠã®ã·ã¹ãã ã«ãOSãäžæããããšãªãã€ãã³ããçæã§ããå€æ©èœGPIOãè¿œå ãããŸãããããã«ãå€ãã®ããã€ã¹ããããã¬ãã°ã1ã€ãããªããããããŒããŠã§ã¢SMIãå
·äœçã«çæãããŠãŒã¶ãŒã決å®ããããã®è¿œå ããžãã¯ã¯å¿
èŠãããŸãã
ã·ã¹ãã SMI
éåžžã«å€ãã®ã·ã¹ãã SMIãœãŒã¹ãååšããå¯èœæ§ããããŸããããã¡ãŒã ãŠã§ã¢éçºè
ã®èŠæ±ã«å¿ããŠå¶åŸ¡ããã³ç¡å¹åã§ãããã®ã®ã¿ããªã¹ãããŸããäŸãšããŠã8çªç®ã®ã·ãªãŒãºãããã»ãããæã€ã·ã¹ãã ãåãäžããŸãã Haswell / Broadwellããã»ããµã䜿çšïŒ
- xHCI SMI-USBã³ã³ãããŒã©ãŒã«ãã£ãŠçæãããã¬ã¬ã·ãŒUSBãšãã¥ã¬ãŒã·ã§ã³ãå®è£
ããDOSã§USBã¡ãã£ã¢ããèµ·åã§ããŸãã
- ME SMI- MEã«ãã£ãŠçæãããã¡ã€ã³MEã®ãã€ãã£ããã©ã€ããŒãæããªãã·ã¹ãã ã§äœ¿çšã§ããŸã-HECIã€ã³ã¿ãŒãã§ã€ã¹ã§åäœããŸã
- GPIOããã¯è§£é€SMI-ããã¯ããããGPIOãã³å¶åŸ¡ã¬ãžã¹ã¿ããåé€ããããšçæãããŸãã ãã®SMIã§ã¯ããã¡ãŒã ãŠã§ã¢éçºè
ã¯ãOSãç¹å®ã®GPIOãå¶åŸ¡ã§ããããã«ãããã©ããã決å®ããç¬èªã®ãã³ãã©ãŒããã³ã°ãããããšãã§ããŸãã
- å®æçãªSMI-8/16/23/64ç§ã®èª¿æŽå¯èœãªåšæ³¢æ°ã§å
éšã¿ã€ããŒã«åŸã£ãŠãããã»ããã«ãã£ãŠçæãããŸãããéåžžã¯å®å
šã«ç¡å¹ã«ãªã£ãŠããŸãã
- TCO SMI- TCOã¿ã€ããŒã«ãã£ãŠçæãããŸãïŒæå¹ãªå ŽåïŒã TCOã¯Intelåºæã®ãŠã©ããããã°ã«ãŠã³ãããŠã³ã¿ã€ããŒã§ãããOSãæ°ç§ããšã«èµ·åããŠãŠã©ããããã°ã«åé¡ããªãããšãéç¥ããå¿
èŠããããŸãã ã¿ã€ããŒããŒãã«éãããšãSMIãçæããããã®ãã³ãã©ãŒã§ã·ã¹ãã ãæãé »ç¹ã«åèµ·åããŸãã
- EC SMI-éåžžã ECãé
眮ãããŠãã0x62-0x66ã®ç¯å²ã®CPU IOããŒãã«ã¢ã¯ã»ã¹ãããšããããã»ããã«ãã£ãŠçæãããŸããããã«ãããããšãã°ããšãã¥ã¬ãŒã·ã§ã³ãã»ããã¢ãããããããã¡ãŒã ãŠã§ã¢ãæžã蟌ã¿ããä¿è·ãããã§ããŸãã ã»ãšãã©ã®å Žåããã®ãœãŒã¹ã¯ç¡å¹ã«ãªããäžèšã®ç¯å²ãžã®ã¢ã¯ã»ã¹ã¯ãç©çECãæ¥ç¶ãããŠããLPCãã¹ã«çŽã¡ã«ãã³ãŒããããŸãã ååšããªãå Žåããããã»ããã¯ãã¹ãŠã®èŠæ±ã«å¯ŸããŠ0xFFã§å¿çããããã§çµããã§ãã
- CPU IOããŒãAPM_CNTãžã®æžã蟌ã¿ã«ãã£ãŠçæãããAPMC SMIã«ã€ããŠã¯ã次ã®ã»ã¯ã·ã§ã³ã§è©³ãã説æããŸãã
- SLP SMIã¯ãACPI S1-S5ç¶æ
ãžã®é·ç§»ãããæ£ç¢ºã«ã¯SLP_ENããããèšå®ããããšãããšãã«çæãããŸãã ãã®å²ã蟌ã¿ã«ãããã¹ãªãŒããŸãã¯äŒæ¢ç¶æ
ã«ãªãåã«ãã©ãããã©ãŒã åºæã®ã³ãŒããå®è¡ã§ããSxãã©ãããå®è£
ãããŸãã
- CPU IOã®ããŒãã«ã¢ã¯ã»ã¹ãããšãã«çæãããIOTR SMIã ãã®äžæã®å©ããåããŠãIOãã©ãããå®è£
ãããIOããŒãã§ãã³ã°ããããã«äœ¿çšãããŠããã¬ã¬ã·ãŒã¢ã€ãã³ããšãã¥ã¬ãŒãã§ããŸãã SuperIOãããŒããŒãããªãŒãã£ãªããããMIDIãCOMãããã³LPTããŒããªã©ã USBããŒããŒãã¯DOSã§ã®ã¿åäœããŸããããã¯ã0x60 / 0x64 IOããŒãã«ã¢ã¯ã»ã¹ãããšãSuperIOãŸãã¯IO Trapãã€ã³ã¿ãŒã»ãããããããã§ãã
- ãããŠãç§ãããŸãã«ãé·ãé話ãããªããã°ãªããªãä»ã®ããã€ãã®ãç§ã¯RTFMã«èå³ããããã¹ãŠã®äººã«ã¡ãã»ãŒãžãéããŸã ã
ãœãããŠã§ã¢SMI
ãœãããŠã§ã¢SMIã¯ã»ãšãã©ã®å Žåããã¡ãŒã ãŠã§ã¢ãŸãã¯ãã©ã€ããŒã«ãã£ãŠçæãããŸãããOSã®ç®¡çè
æš©éïŒããæ£ç¢ºã«ã¯
outåœä»€ãå®è¡ããæš©éãå¿
èŠïŒãæã€æ»æè
ãåæ§ã«çæã§ããŸãã
IOããŒãAPM_CNTãCPUïŒã»ãšãã©ã®å ŽåããŒã0xB2ïŒã«æžã蟌ãŸãããšããœãããŠã§ã¢SMIãçæããããã®çªå·ã¯ALã¬ãžã¹ã¿ã®ãã©ã¡ãŒã¿ãŒãšããŠæž¡ãããŸãã ãããã£ãŠãã·ã¹ãã å
ã®ããŸããŸãªãœãããŠã§ã¢SMIããã»ããµãŒã®æ倧æ°ã¯256ã§ãããå®éã«ã¯ãRTOSã§ã®äœæ¥çšã«æºåãããç¹æ®ãªã·ã¹ãã ã§ã¯0ãã5ãOSã®ä»å
¥ãªãã§ç®¡çããå¿
èŠã®ããããŸããŸãªããŒããŠã§ã¢ãæã€ã·ã¹ãã ã§ã¯15ãã20ã®ç¯å²ã§ãã
SMMã®å®è£
æ¹æ³
SMMãã£ã¹ãããã£ãŒãšSMIãã³ãã©ãŒã®ã³ãŒãã«ã¯ã1ã3åã®ç©çã¡ã¢ãªé åãå²ãåœãŠãããŸããããã¯ããã¹ãŠã®ãéåžžãå®è¡ã¢ãŒãã§ããããã»ãããååšããªãããã€ã¹ã®MMIOé åãšããŠããŒã¯ããŸãã ãã®ä»ã®å°åã§ã¯ããããã®é åã¯é£ç¶ããäžé£ã®0xFFã§ãããäžæžãã§ããŸããã éåžžã
ASEG ïŒããªãã¡ããã»ã°ã¡ã³ãAãïŒãšåŒã°ããæåã®é åã¯ããããã
ã¬ã¬ã·ãŒSMMã³ãŒã ãã€ãŸã çŸåšã®ã·ã¹ãã ã«ã¯ååšããªãå€ã16ãããSMIãã³ãã©ãŒã ã»ã°ã¡ã³ãã¯ãåºå®ç©çã¢ãã¬ã¹0xA0000-0xBFFFFã«ããããããã®ååãååŸããŸããã åºå®ã¢ãã¬ã¹ãæã€2çªç®ã®é åã¯
HSEG ïŒã€ãŸããé«ã»ã°ã¡ã³ããïŒã§ã以åã¯0xFEDA0000ã0xFEDBFFFFã«ãããŸããããææ°ã®ã·ã¹ãã ã§ã¯äœ¿çšãããŠããŸããã ã«ã¹ã¿ã ã¢ãã¬ã¹ãšãµã€ãºãæã€ã¯ããã«äŸ¿å©ãªã»ã°ã¡ã³ã
-TSEG ïŒã€ãŸãããããã»ã°ã¡ã³ããïŒããããŸããããã«ã¯ãSMMã§å®è¡ãããã³ãŒãã®99ïŒ
ãå«ãŸããASEGã«ã¯äºææ§ã®ããã«å°ããªã¹ã¿ããããããŸããã
SMMã«åãæ¿ãããšãããã»ããµã¯ã»ãŒãã¹ãŠã®ã³ã³ããã¹ããä¿åããŸãïŒã€ãŸããä¿åãããªãã»ãšãã©ãã¹ãŠã®ã¬ãžã¹ã¿ã®å
容ã¯ç¹å®ã®ãã€ã¯ãã¢ãŒããã¯ãã£ã«äŸåããŸãïŒãSMIãã³ãã©ãŒã¯ä¿åãããã³ã³ããã¹ãã«å®å
šã«ã¢ã¯ã»ã¹ã§ãããããå€æŽãéããŠã·ã¹ãã ãšéä¿¡ã§ããŸãä¿åãããå€ã
OSã®å ŽåãSMMã³ãŒãã®åŒã³åºãã¯ã¬ãžã¹ã¿ãšã¡ã¢ãªã®å
容ã®éæ³ã®ãããªå€æŽã®ããã«èŠããŸãããããã°ã©ã ã®å²ã蟌ã¿ã®éå§ã®ååŸã«MSR_SMI_COUNTã¬ãžã¹ã¿ãèªã¿åãããšã«ãããéæ¥çãªå
åã«ãã£ãŠSMMã«ããæéãšãçŽæ¥çãªæ段ã«ãã£ãŠããã«åãæ¿ããäºå®ã远跡ããããšã¯ãŸã å¯èœã§ãããããããOS SMIã¯ããã»ããµã®æç¶æéã«åœ±é¿ãäžããããšãã§ããªããããSMMã¯ããŒãRTOSãšã®äºææ§ãäžååã§ãïŒx86ã¢ãŒããã¯ãã£å
šäœãããªãäºææ§ãããããšã¯æ³šç®ã«å€ããŸãããããã¯å¥ã®è©±ã§ãïŒã
ããã©ã«ãèšå®ã§ã¯ãSMMã§å®è¡ãããŠããã³ãŒãã¯ãèªã¿åãããã³æžã蟌ã¿çšã®ãã¹ãŠã®ç©çã¡ã¢ãªãžã®ãã«ã¢ã¯ã»ã¹ãæ¥ç¶ãããŠãããã¹ãŠã®ããã€ã¹ãžã®ãã«ã¢ã¯ã»ã¹ãäžè¬çã«æã¡ãŸã-ã»ãšãã©ãã¹ãŠãå®è¡ã§ããŸãããåæã«OSããç¬ç«ããŠãããèªã¿åãã§ãã¢ã¯ã»ã¹ã§ããŸãããã®åæãè€éã«ããSMIãã³ãã©ãŒã³ãŒããæ»æã®éåžžã«é
åçãªã¿ãŒã²ããã«ããŸãã ããã«ãæ»æãåããŠããã·ã¹ãã ãSMMããã¢ã¯ã»ã¹å¯èœã§ãSPIãããã«æžã蟌ãå ŽåïŒãããŠãç«çœã§ã¯èŠãããªãPFATãæå¹ã«ãªã£ãŠããã·ã¹ãã ãããŸãäžè¬çã§ã¯ãªãèªã¿åãå°çšBIOSãæèŒãããã·ã¹ãã ã PRã¬ãžã¹ã¿ã«ããä¿è·ã䜿çšãããšïŒãæ»æãæåãããšBIOSã§ã³ãŒããæžã蟌ãŸãããã®åŸã«ã¬ãã§ãŠã«ããçé£ã殺人ãããã³ãããã€ãç¶ããŸãã ãã®ãããSMMãæªæã®ããã³ãŒããæ¿å
¥ããªãããã«ããããšãéèŠã§ãã
SMMã®æ»æãšé²åŸ¡
å¿ããããD_LOCK
SMRAMã®ã³ãŒãã¯ããèªäœã«ã¯è¡šç€ºãããŸããããŸããSMRAMèªäœãæ§æããç©çã¡ã¢ãªãåæåãããã¹ãŠã®ãã³ãã©ãŒãããã«åãŸãããã«TSEGãæ§æããSMMãã£ã¹ãããã£ãŒãšãã³ãã©ãŒã®ã³ãŒããã³ããŒããããã«èšè¿°åããŒãã«ãæ§æããå¿
èŠããããŸã-äžè¬ã«ãå³å¯ãªæ³å®é åºãèšå®ãããã®åŸãD_OPENããããåé€ããŠä»ã®äººãããã«äœãå£ããªãããã«ããå¿
èŠããããD_OPENãæ»ããªãããã«D_LOCKããããèšå®ããŸãã äžéšã®å€ãã·ã¹ãã ã§ã¯ãD_LOCKã®èšå®ãå¿ããŠãããSMMããã¹ãŠã®é¢šã«éãããŠããŸããããããã¯UEFIã®æ代ã«ã¯çºçããªãã£ãããããã®æ»æãã¯ãã«ã¯æŽå²äžäœäžããŸããã
SMMãã£ãã·ã¥ãã€ãºãã³ã°
ãã1ã€ã®æŽå²çãªæ»æã¯ã2009幎ã«Rafal WojtczukãšJoanna Rutkowskaã«ãã£ãŠå
¬éãã
ãSMRAMãã£ãã·ã¥ã®ãã€ãºãã³ã°ã§ã ã æ»æã®æ¬è³ªã¯çã-SMRAMé åã®ã¡ã¢ãªã¿ã€ããã©ã€ãããã¯ã«å€æŽããSMRAMé åã§ã³ãŒãã®èšé²ãæŽçããã¡ã¢ãªã«æžã蟌ã¿ãè¡ããŸããããã³ãŒãã¯2次ãã£ãã·ã¥ã«æ®ãããã®åŸãœãããŠã§ã¢SMIãçæããããã»ããµã¯ããŒã¿ãèªã¿åããŸããSMRAMãšãã£ãã·ã¥ããååŸãããšãæªæã®ããã³ãŒããå®è¡ãããŸãã CPUã¡ãŒã«ãŒã¯ãWBã¢ãŒããSMRAMã«èšå®ããããšãçŠããŠãããããUEFIãåããã·ã¹ãã ã®åœ±é¿ãåããŸããã
SMMã³ãŒã«ã¢ãŠããå¥åSMM䟵å
¥æ»æ
ããããååãªæŽå²ãããã®ã§ããçŸä»£ã®ãæ»æã«ç§»ããŸãããã SMM Incursion Attackããå§ããŸãããã
ååã®
解説ã§èšåãããŠãã
ãã·ãŒã« ã ãã®æ»æã¯ååŸã«100幎åã«è¡ãããããã2008幎ã«BIOSã®åé¡ãšããŠæåã«å ±åãããŸãããã2015幎ã«Corey KallenbergãšXeno Kovah
ã«ãã£ãŠåçºèŠãããããããã¢ãã³ããšããèšèãæå³çã«åŒçšç¬Šã§å²ã¿ãŸããã æ»æã¯mooã®ããã«åçŽã§ã-SMIãã³ãã©ãŒãSMRAMã®å€éšã§ã³ãŒããåŒã³åºãå Žåãç©çã¡ã¢ãªãžã®æžã蟌ã¿æš©éãæã€æ»æè
ã¯åŒã³åºãããã³ãŒããèªåã®ã³ãŒãã«çœ®ãæããSMMã¢ãŒãã§ãã®æ¹æ³ã§å®è¡ã§ããŸãã ãããŠä»¥æ¥ UEFIéçºè
ã¯EFIã©ã³ã¿ã€ã ãµãŒãã¹ã®å¯çšæ§ã«æ
£ããŠããããããããã®åããµãŒãã¹ã¯ãããã¿ããšã«SMIãã³ãã©ãŒããå®å®ããŠåŒã³åºãããŸããïŒã»ãšãã©ã®å Žåããããã¯GetVariableãSetVariableãããã³ResetSystemåŒã³åºãã§ããïŒã è匱æ§ã¯éåžžã«å€ãã®ã·ã¹ãã ã®åœ±é¿ãåããããã圱é¿ãåããªãã£ãå Žæãç°¡åã«èšãããšãã§ããŸããã ç§ã®æŠç®ã§ã¯ããã«ãæ¥ãŸã§ã«UEFIã2015幎5æãã6æããå€ãå Žåããã®æ»æã«å¯ŸããŠè匱ãªSMIãã³ãã©ãŒãããã€ãããããšãä¿èšŒãããŸãã ãã®ãããªãã°ã®ãããã³ãã©ãŒããã·ã¹ãã ãåé€ããããšã¯éåžžã«å°é£ã§ãã 以åã¯ããã®åäœã¯è匱æ§ãšã¯ãŸã£ããèŠãªãããŠãããïŒããµãŒãã¹ã¯ã©ã®ãããªæãè
ãããã¯ããã®ã§ããããïŒïŒãïŒããã®åçŽãª
IBVã³ãŒããšã³ã³ãŒããŒã¯ãããè¡ãæ¹æ³ãç¥ããŸããã§ãã-çŸåšã§ãããã®åé¡ã®å¯Ÿè±¡ãšãªãã©ã³ã¿ã€ã ãã©ã€ããŒã®æŽæ°ãå®æçã«å°çã äžè¬çã«ããã¹ãŠãéåžžã«æ²ããã§ãã
SMRAMã®å€éšã®ã³ãŒãã®åŒã³åºããé²ãããã«ãIntelã®ãšã³ãžãã¢ã¯ç¹å¥ãªMSR_SMM_FEATURE_CONTROLãè¿œå ããŸããããã®ãããªã³ãŒããžã®åŒã³åºãããã¹ã¯äžèœã§å埩äžèœãª
MCEãçæããç¹å®ã®ããããèšå®ããåŸããã®ãããªMSRã¯Haswell以éã®CPUã®ã¿ã«ããããã®æ©èœã¯ãã¡ãŒã ãŠã§ã¢ã®ãããã°æéãããã§ãªããã°ããŠãŒã¶ãŒã¯ç解ã§ããªãã»ã©ã®ãã³ã°ã®ããã®åå²ãšããã§RïŒDéšéã®ãã¢ã«æ¥ããããããŸãã-ã»ãšãã©ã®äººã¯ä»ãããåäœãããå¿
èŠããããŸãããããã¯ãã¹ãŠããªãã®ã»ãã¥ãªãã£ã§ã-èªå€§å®£äŒãããŠããŸãã ãã§ããã¯ã¹ã®ãšã³ãžãã¢ã¯ãå€ãã·ã¹ãã ããã³AMDããã»ããµãããŒã¹ãšããã·ã¹ãã ã®ææè
ã®ãã
ã«ãç¬èªã®æ¹æ³ã§ç¬åµçãªãœãªã¥ãŒã·ã§ã³ãèŠã€ããŸãã
ãNXãããã䜿çšããSMMã³ãŒãã®ã¡ã¢ãªãèšå®ããŠSMRAMå€ã®ã³ãŒãã®åŒã³åºããããŒãžãã©ãŒã«ãã§çµäºããããã«ãã MCEã«ãã£ãããšã¶ãäžãããªãã§ãã ããã åçœããŸããããã®ãœãªã¥ãŒã·ã§ã³ã¯ãŸã å®è£
ããŠããŸããããæãå±ããšééããªããããè¡ããŸãã
éåžžã®ãŠãŒã¶ãŒã¯ãã«ãŒãããã®äžå¯è§£ãªã³ãŒãã®å®è¡ãé²æ¢ããããšã«ãã£ãŠã®ã¿ãã®æ»æããä¿è·ã§ããŸãããæ®å¿µãªãããããã¯çŸä»£ã®ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§ã¯å®è³ªçã«éçŸå®çã§ã-æš©å©ã®ããŒã«ã«ãªææ Œã«ã¯æµ·ãšåããããå€ãã®ãªãã·ã§ã³ããããæå
ã«ã¯éåžžã«å€ãã®ãšã¯ã¹ããã€ãããããŸãããã¯ãèšãããšã¯äžå¯èœã åè¿°ã®Xeno KovahãåŒçšããã ãã§ãã
ããããé©çšããŠãã ããïŒ
DMAæ»æ
å¥ã®èå³æ·±ãæ»æãä»åã¯ç¬èªã®ãããã»ããã䜿çšããŸãã å®éãææ°ã®ãããã»ããã«ã¯
DMAã³ã³ãããŒã©ãŒããããDRAMéããã³DRAMãšPCIeããã€ã¹ã®ã¡ã¢ãªéã§ãã¡ã¢ãªãšã®éã§ããŒã¿ãéä¿¡ããã¿ã¹ã¯ããCPUããªãããŒãããããã«äœ¿çšãããŸãã ããã«ãç¬èªã®DMAã³ã³ãããŒã©ãŒãæã€ããšãã§ããOSãšPCIeããã€ã¹ã®äž¡æ¹ãããã®ãããªè»¢éãéå§ã§ããŸãã ããã«ãOSããã®èµ·åã®å ŽåãããŒã¿ã¢ã¯ã»ã¹æäœã¯ãããã»ããã«ãã£ãŠå®è¡ãããŸãã ããã»ããµã®èšå®ã圱é¿ããå Žåã¯ãããªã匱ãã§ãã ã€ãŸã 管çè
æš©éãæã€æ»æè
ã¯ãäžæ¹ã§ã¯åœŒã«ãã£ãŠãä»æ¹ã§ã¯SMRAMã«ãã£ãŠå¶åŸ¡ãããã¡ã¢ãªé åã§DMAãéå§ããããã«å®å
šãªã¢ã¯ã»ã¹ãååŸããŸãã åãããšã¯ãæ»æè
ãå¶åŸ¡ããPCIeããã€ã¹ã®ãã¡ãŒã ãŠã§ã¢ã§ãå®è¡ã§ããŸãã DMAæ»æããä¿è·ããããã«ãIntel DMAã³ã³ãããŒã©ãŒã«ã¯ãTSEGäœçœ®æ
å ±ãè€è£œãããTSEGMBã¬ãžã¹ã¿ãŒãšããã®ã³ã³ãã³ãã®å€æŽãçŠæ¢ããããã¯ãããããããŸãã ãã¡ãŒã ãŠã§ã¢ã®äœæè
ãã€ã³ã¹ããŒã«ãå¿ããå ŽåïŒãŸãã¯ãS3ã®åŸã®èµ·åæã«åŸ©å
ããŸããã次ã®ããŒãã§ããã«è©³ãã説æããŸãïŒ-æ»æããããšãã§ããŸãã AMDãããã»ããã«DMAä¿è·ããããã©ããã¯ããããŸããããè¿ããã¡ã«èª¿ã¹ãŠã¿ãŸãã
SMMã¯ãã¹ãããã¡æ»æ
Intel ATRã¹ãã·ã£ãªã¹ãã«ãã£ãŠæ瀺
ãããSMIã«ããæ»æããã€ã³ã¿ãŒãšãããã¡ãŒãµã€ãºããã©ã¡ãŒã¿ãŒãšããŠåãåããæžã蟌ã¿ãŸãã æ»æè
ã¯ããããã¡ãRAM-SMRAMå¢çãè¶ããããã«ããã€ã³ã¿ãšãµã€ãºã転éã§ããŸãã SMIããã»ããµã¯SMRAMã«ã¢ã¯ã»ã¹ã§ãããããSMRAMã®å
é ã§ããŒã¿ã®äžéšãäžæžãããŸãã äžé£ã®ç¶æ³ãæåãããšïŒã€ãŸããå°ãªããšãçŽ500æéã®ãããã°åŸïŒããã³ãã©ãŒã¯å¿
èŠãªæ»ææ¹æ³ã§SMMãããŒãžã£ãŒãŸãã¯ä»ã®ãã³ãã©ãŒã®ãµãŒãã¹æ§é ãæžãæããããšãã§ããä»»æã®SMMã³ãŒããå®è¡ã§ããããã«ãªããŸãã æ»æã¯å°çã®ããã«è€éã§æšçã«ãããŠããŸãããããªãå¯èœæ§ãããããã2015幎ã®åãããããããã¡ãŒãžã®ãã€ã³ã¿ãŒãåãå
¥ãããã¹ãŠã®SMIãã³ãã©ãŒã¯ã䜿çšåã«æ€èšŒããå¿
èŠããããŸãã å€ãã·ã¹ãã ã§ã¯æ»æã¯æ©èœããŸããããããã³ã°ãããã®ã¯ããªãã§ããå¯èœæ§ã¯ãããã§ãã
ãããã«
ããŠãSMMã䜿çšããŠå€ããå°ãªããç解ããŸããã次ã®ããŒãã§ã¯
ãS3 BootScriptã«å¯Ÿããæ»æã«ã€ããŠèª¬æããŸãã
ããããšããå®å
šãªãã¡ãŒã ãŠã§ã¢ã
PSåå¿ã«æè¬ã§ããªã
d_olexã® SMMã«é¢ããèšäºãšãã®æ»æ
-1 ã€ããã³
2〠ã ãããã¯ã«èå³ããããè±èªã§èªãããšãã§ãã人ã®ããã«-äž¡æ¹ãèªãå¿
èŠããããŸãã