小華的部落格: SmmOEMInt15SmiDispatcher

搜尋此網誌

星期一, 6月 20, 2011

SmmOEMInt15SmiDispatcher

今天在Debug USB問題的時候,設定了斷點在SmmOEMInt15SmiDispatcher中,結果發現進入DOS時這個SWSMI會被一直呼叫。

他的原因是因為CSM 在Hook INT15h的時候,並沒有先在Assembly內判斷任何的Signature,沒有利用任何的Signature來判斷要不要產生SWSMI,因此就變成了只要有人呼叫INT15h 就會產生SWSMI而跳到SmmOEMInt15SmiDispatcher內,然後再EFI 那邊再判斷要不要執行Sub function,如果沒有就退出SWSMI。

為了怕自己忘記有這個BUG所以在BLOG先記錄一下。

目前進入DOS時,有看到呼叫INT15h的人是CONFIG.SYS,而且每按一次Key,就會呼叫3次(SWSMI斷點可以攔到3次?) 這也是件奇怪的事情。

開機過程中攔截到的INT15h 時的AX值如下(依順序):
AX=5355
AX=4101
AX=0000
AX=133A
AX=0326 (此時已經出現Win98 Logo)
AX=3E00 <--我們自己的USB test Utility

進入DOS後,每按下一個Key都會產生下面這個INT15h,看起來跟Config.sys有關,不過尚未查證:  AX=5355h , INT15h  <--Config.sys

1 則留言:

匿名 提到...

你好 我有些東西想請教
我有加你的MSN
我的帳號是lineage_lion@hotmail.com