TW461997B - Write protection method of programmable chipset software - Google Patents

Write protection method of programmable chipset software Download PDF

Info

Publication number
TW461997B
TW461997B TW089110022A TW89110022A TW461997B TW 461997 B TW461997 B TW 461997B TW 089110022 A TW089110022 A TW 089110022A TW 89110022 A TW89110022 A TW 89110022A TW 461997 B TW461997 B TW 461997B
Authority
TW
Taiwan
Prior art keywords
program
register
computer system
programmable chip
interrupt
Prior art date
Application number
TW089110022A
Other languages
English (en)
Inventor
Yu-Guang Chen
Original Assignee
Asustek Comp Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Asustek Comp Inc filed Critical Asustek Comp Inc
Priority to TW089110022A priority Critical patent/TW461997B/zh
Priority to US09/861,619 priority patent/US20010049794A1/en
Application granted granted Critical
Publication of TW461997B publication Critical patent/TW461997B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Description

經濟部智慧財產局員工消t合作社印製 4 6 199 7 5B44twf doc/006 A7 ------ B7__ 五、發明說明(/ ) 本發明是有關於一種可程式(programmable)晶片之防 寫保護方法’且特別是有關於一種採用軟體來達到防止不 正確資料寫入可程式晶片之暫存器的保.護方法。 以往許多可程式晶片組(chipset)或1C是沒有提供保護 機制的’但是沒有保護是非常危險的事,就病毒程式爲例, 當病毒將可程式晶片寫入錯誤的參數時,將使系統發生當 機或不穩定的現象。對於大部分消費性電子而言是屬於封 閉式系統,上述的論點是不會發生的,但對於開放式系統 而言,除了所規定的修改程序之外,不可任意修改可程式 晶片之暫存器的資料是非常重要的。 第1圖繪示習知之電腦的基本結構圖。如第1圖所示, CPU 1〇、主記憶體12及影像加速卡14連接至北橋晶片16, 週邊設備22連接至南橋晶片20,北橋晶片16與南橋晶片 20再互相連接,如此,將槪略地描述電腦系統的基本架構。 當電腦開機時,即CPU 10開始工作,CPU 10會尋找 要執行的第一個指令之所在的位址,而其位址是在主機板 上BIOS(Basic Input Output System)快閃記憶體中之開機程 式的位址,CPU 10便開始執行開機程式。 這時,開機程式檢查電腦中所有的標準元件(如主記 憶體U等)是否存在,同時檢查其功能是否正常。在做檢 查工作之前,先將中斷向量表的前十六欄指標改爲指向主 機板中BIOS的中斷服務例行程式(Interrupt Service Routme),完成這樣的程序之後,開機程式才會啓動遮蔽 (mask)式中斷,如此,電腦才會有所回應,如鍵盤的按鍵 3 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) -Λ6 *
----線-S 5844twf.doc/006 A7 B7 經濟部智慧財產局員Η消费合作社印製 五、發明說明(2) 訊號。 之後,開機程式會檢查介面卡是否有BIOS晶片。例 如檢查到加速影像卡14上有影像BI0S晶片(未繪示)’ 開機程式會將電腦的控制權轉移給影像BIOS晶片中的程 式,讓這個程式可以在中斷向量表的適當欄位放入中斷服 務例行程式的位址’當執行影像BIOS晶片中的程式時, 便將資料顯示在螢幕上。當完成上述之動作時’電腦的控 制權便會還給主機板上BIOS的開機程式。 同樣地,主機板上BIOS的開機程式會設定可程式晶 片(如北橋晶片16及南橋晶片20)內的各種暫存器,讓可 程式晶片得知與那些設備相連接’必須執行那些工作,當 CPU 10要與主記憶體12或週邊設備22傳輸資料時,便可 以藉由所設定的可程式晶片完成其工作。 電腦系統使用可程式晶片的優點爲:1.同一個可程式 晶片具有多種功能的選擇,以適應系統不同的要求,只需 要更新可程式晶片中的程式即可。2.可以調整可程式晶片 中各種功能的暫存器之各種參數,以適應系統不同的週邊 設備,例如南橋晶片,只需調整暫存器之參數就可外接磁 碟機或掃描器等週邊設備。 然而,當可程式晶片完成設定後,是不允許任意修 改的,亦即可程式晶片內的各種功能的暫存器所儲存的數 値是不可任意修改的。因爲修改這些暫存器所儲存的數値 會改變連接設備或工作狀態,例如:當CPU 10要與主記 憶體12或週邊設備22傳輸資料時,可能造成資料傳送錯 4 (請先閱讀背面之注意事項再填寫本頁) 裝-------訂-----i -線{ 本紙張尺度適用中國圉家標準(CNS)A4規格(210 X 297公釐) 經濟部智慧财產局貝工消f合作社印製 16 199 7 5&44twf,doc/006 A7 ~ __B7_____ ____ 五、發明說明($ ) 誤或執行工作錯誤,使得系統停滯或不穩定的情況發生。 因此,習知採用一種硬體的方式來解決上述之問題, 其方式是要修改可程式晶片中某一個暫存器的數値時’必 須先做寫入特定之暫存器的動作,而且必須重覆做寫入的 動作’其重覆的次數必須達到預定的次數後才可以修改欲 修改的暫存器。例如:要修改可程式晶片中第三個暫存器 的數値,先寫入任意的數値於第七個暫存器,而且重覆寫 入五次,然後再將修改的數値寫入第三個暫存器,如此, 才完成了修改暫存器的數値。 然而,上述之方式有其缺點,當使用者在執行應用 程式時,由於人爲的因素,如暫存器的誤用或指令的執行 錯誤等,發生寫入錯誤位址而導致可程式晶片之暫存器的 數値被修改;或者熟悉上述之方式的程式設計師撰寫病毒 程式,當病毒程式進入系統且執行此程式時,病毒程式就 會修改可程式晶片之暫存器的數値,都將造成系統的紊 亂,使得系統發生停滯或不穩定的情況。 總結上述之缺點有:(1)當執行應用程式時,由於暫 存器的誤用或執行結果錯誤而發生可程式晶片中之暫存器 的資料被修改;(2)當病毒程式被執行時,進行修改可程式 晶片中之暫存器的資料,都會造成系統停滯或不穩定。 本發明所提出之方法是應用在電腦系統中的可程式 晶片之暫存器,而採用軟體的方式來防止資料任意存入暫 存器內,以保護電腦系統。 本發明提出一種可程式晶片軟體防寫保護之方法, 5 ------I---->lL裝--------訂,! -----^一- (請先閱讀背面之注意事項再填寫本頁) 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐) 經濟部智慧財產局員工消费合作社印製 61997 5844twf . doc/ 006 A? __ B7______ 五、發明說明(f) 係應用於電腦系統,在電腦系統的基本輸入輸出系統中包 括:首先,撰寫一個中斷服務程式。以及,建立一個指標 表。 本發明提出一種可程式晶片軟體防寫保護之方法, 係應用於電腦系統中,在電腦系統中包括可程式晶片,可 程式晶片中包括指標暫存器。可程式晶片軟體防寫保護之 方法提供一個中斷服務程式,此中斷服務程式包括一個指 標表,當電腦系統將指標資料寫入可程式晶片之指標暫存 器時,電腦系統便執行中斷服務程式。此中斷服務程式包 括下列步驟:判斷指標資料是否屬於指標表,以及當屬於 該指標表時,改變指標暫存器中的値爲一個不影響的指標 資料。 當執行中斷服務程式時,在判斷指標資料是否屬於 指標表之前,先將前一個程式的工作進度之資料儲存在可 讀寫記憶單元中,在執行完中斷服務程式之後’將前一個 程式的工作進度之資料從可讀寫記憶單元中讀取出。當該 電腦系統開機後,從唯讀記憶單元讀取指標表以及對應於 中斷服務程式的中斷向量値。 本發明提出一種可程式晶片軟體防寫保護之方法’ 係應用於電腦系統中,電腦系統包括可程式晶片以及對應 於可程式晶片的指標表,此可程式晶片包括指標暫存器。 可程式晶片軟體防寫保護之方法提供中斷服務程式’當電 腦系統將指標資料寫入可程式晶片之指標暫存器時’電腦 系統執行中斷服務程式。其中,指標表所記錄的位址値包 6 ------------ί-ί 裝--------訂---- -----線~ (請先閱讀背面之注意事項再填寫本頁) 本紙張尺度適用中國國家標準(CNS)A4規格<210 X 297公釐) 經濟部智慧財產局員工消费合作社印製
.619PT 5844twf.doc/006 A7 _________B7__ 五、發明說明($ ) 括不可任意修改之暫存器的位址値、中斷向量的位址値、 中斷服務程式的起始位址値與指標表的位址値。 爲讓本發明之上述目的、特徵、.和優點能更明顯易 懂,下文特舉較佳實施例,並配合所附圖式,作詳細說明 如下: 圖式之簡單說明: 第1圖繪示習知之電腦的基本架構圖; 第2圖繪示建立指標表及中斷服務程式之流程圖; 第3圖繪示開機時讀取中斷向量値之流程圖;以及 第4圖繪示執行中斷服務程式之流程圖。 標號說明: 10 :中央處理單元(central processing unit, CPU) 12 :主記憶體(main memory) 14 :影像加速卡(accelerated video display card) 16 :北橋晶片(northbridge chip) 20 :南橋晶片(southbridge chip) 22 :週邊設備(peripheral) 實施例 依據本發明的可程式晶片軟體防寫保護之方祛,以 上述第1圖之電腦系統爲例,第2圖繪示建立指標表及中 斷服務程式之流程圖。當一部電腦在出廠前,首先,在電 腦的基本輸入輸出系統(Basic input Output System)撰寫 SMI(System Management Interrupt)服務程式(S24)以及其它系 統設定程式,例如:選定觸發SMi的I/O位址,及讀寫可 7 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) ----In----iu裝--------訂---------線 (請先閱讀背面之注意事項再填寫本頁) 46199 5844twf.doc/006 A7 B7 五、發明說明(6 ) 程式晶片指標的位址。在中斷向量表中適當的欄位放置一 個中斷向量値,這個中斷向量値是對應於SM〖服務程式的 起始位址。其次,在中斷服務程式中建立指標表(S26),這 個指標表中的指標資料是記錄可程式晶片中不可任意修改 之暫存器的位址値、中斷向量的位址値 '中斷服務程式的 位址値與此指標表的位址値。 第3圖繪示開機時讀取中斷向量値之流程圖。當電腦 開機時,電腦從BIOS的唯讀記憶體讀取資料並執行程式, 如系統的檢查、將中斷向量表載入記憶體中及各晶片的設 定等。此時,相對於SMI中斷服務程式的中斷向量値亦載 入記憶體中(S28)。舉可程式晶片的組態暫存器爲不可修改 的暫存器爲例,在系統中之可程式晶片的組態暫存器存入 數値以設定各可程式晶片的功能,所以電腦開機完成各可 程式晶片的功能設定後,各可程式晶片的組態暫存器所存 入之數値是不可以任意修改的,故建立指標表以記錄這些 不可任意修改的可程式晶片之組態暫存器的位址,讓CPU 知道指標暫存器所指的位址是否爲這些不可任意修改的可 程式晶片之組態暫存器的位址。 當電腦開機完成系統的測試及設定後’電腦依使用 者的需求執行所需之應用程式,依序完成所要之目的。若 因人爲的操作不當或病毒程式的侵入,而發生修改可程式 晶片之組態暫存器的數値’造成系統停滯或不穩定的情 況,本發明所提出之方法是可以解決這個問題。 第4圖繪示執行中斷服務程式之流程圖。當CPU執 8 本紙張尺度適用中國國家標準(CNS>A4規格(210 X 297公楚) (請先閱讀背面之注意事項再填寫本頁) -ik —訂i 經濟部智慧财產局具工消费合作社印製 4 619 9 5844twf-doc/006 A7 B7 五、發明說明(q) (請先閱讀背面之注意事項再填寫本頁) 行應用程式時,CPU讀取到寫入可程式晶片之指標暫存器 的指令,則CPU會中斷目前的指令,然後在中斷向量表找 出一個中斷向量値,這個中斷向量値是對應於SMI服務程 式的起始位址,接下來CPU開始執行SMI服務程式。 首先,CPU將目前之工作進度的資料儲存起來(S30), 接著,CPU判斷指令中寫入可程式晶片之指標暫存器的位 址是否對應於指標表中之位址(S32),即判斷寫入指標暫存 器所指的位址是否對應於可程式晶片之組態暫存器的位 址,如果判斷的結果爲否,則取回工作進度的資料,離開 SMI服務程式,繼續執行未執行完畢的指令(S36);若結果 爲是,修改指令中的數値,修改後的數値使可程式晶片之 指標暫存器所指的位址指向唯讀記憶體的位址或者不影響 系統正常運作之記憶體的位址,不再是可程式晶片之組態 暫存器的位址(S34)。當修改完畢後,取回工作進度的資料’ 離開SMI服務程式,繼續執行未執行完畢的指令(S36)。 經濟部智慧財產局貝工消f合作社印製 因此,本發明的優點係使用軟體的方式來防止可程 式晶片之組態暫存器的數値被修改,只需增加一小段程式 就可完成,不需增加額外的硬體線路’如此’就不會增加 硬體線路設計的複雜度。 綜上所述’雖然本發明已以較佳實施例揭露如上’ 然其並非用以限定本發明’任何熟習此技藝者’在不脫離 本發明之精神和範圍內,當可作各種之更動與潤飾’因此 本發明之保護範圍當視後附之申請專利範圍所界定者爲 準。 本紙張尺度適用中國國家標準(cNS)A4規格(210 x 297公釐)

Claims (1)

  1. 6 A 六 A8 ΕΪ8 5844twf.d〇c/006 C8 08 申請專利範圍 1. 一種可程式晶片軟體防寫保護之方法,係應用於一 電腦系統,在該電腦系統之一基本輸入輸出系統中包括: 撰寫一中斷服務程式;以及 建立一指標表。 2. 如申請專利範圍第1項所述之可程式晶片軟體防寫 保護之方法,其中設定一中斷向量値,以作爲該中斷服務 程式的起始位址。 3. 如申請專利範圍第1項所述之可程式晶片軟體防寫 保護之方法,其中記錄該指標表之內容包括一不可任意修 改暫存器位址値、一中斷向量位址値、一中斷服務程式起 始位址値與一指標表位址値。 4. 如申請專利範圍第1項所述之可程式晶片軟體防 寫保護之方法,其中建立該指標表於該中斷服務程式之 中。 5. —種可程式晶片軟體防寫保護之方法,係應用於一 電腦系統中,該電腦系統包括一可程式晶片,該可程式晶 片包括一指標暫存器,該可程式晶片軟體防寫保護之方法 提供一中斷服務程式,該中斷服務程式包括一指標表,當 該電腦系統將一指標資料寫入該可程式晶片之該指標暫存 器時,該電腦系統執行該中斷服務程式,該中斷服務程式 包括下列步驟: 判斷該指標資料是否屬於該指標表;以及 當屬於該指標表時,改變該指標暫存器中之値爲一 不影響指標資料。 (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 本紙張尺度適用中國國家標準(CNS)A4規格(210^ 297公釐) 1997 S 5844twf.doc/006 C8 六、申請專利範圍 6. 如申請專利範圍第5項所述之可程式晶片軟體防寫 保護之方法,當執行該中斷服務程式時,在判斷該指標資 料是否屬於該指標表之前,先將前一程式之工作進度之資 料儲存在一可讀寫記憶單元中。 7. 如申請專利範圍第5項所述之可程式晶片軟體防寫 保護之方法,當執行該中斷服務程式時,在改變該指標暫 存器中之値之後,將該程式之工作進度之資料從該可讀寫 記憶單元中讀取出,並載入該中央處理單元。 8. 如申請專利範圍第5項所述之可程式晶片軟體防寫 保護之方法,當該電腦系統開機後,從一唯讀記憶單元讀 取該指標表以及對應於該中斷服務程式之一中斷向量値。 -------.---,—f ^--------訂----------線 <請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 本紙張又度適用_國國家標準(CNS)A4規格(210 x 297公爱)
TW089110022A 2000-05-24 2000-05-24 Write protection method of programmable chipset software TW461997B (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW089110022A TW461997B (en) 2000-05-24 2000-05-24 Write protection method of programmable chipset software
US09/861,619 US20010049794A1 (en) 2000-05-24 2001-05-22 Write protection software for programmable chip

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW089110022A TW461997B (en) 2000-05-24 2000-05-24 Write protection method of programmable chipset software

Publications (1)

Publication Number Publication Date
TW461997B true TW461997B (en) 2001-11-01

Family

ID=21659840

Family Applications (1)

Application Number Title Priority Date Filing Date
TW089110022A TW461997B (en) 2000-05-24 2000-05-24 Write protection method of programmable chipset software

Country Status (2)

Country Link
US (1) US20010049794A1 (zh)
TW (1) TW461997B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7213140B2 (en) * 2003-10-30 2007-05-01 Micro-Star Int'l Co., Ltd. Method for self-starting a computer
US8656190B2 (en) * 2008-01-31 2014-02-18 Microsoft Corporation One time settable tamper resistant software repository
US8484481B2 (en) * 2009-07-14 2013-07-09 International Business Machines Corporation Chip lockout protection scheme for integrated circuit devices and insertion thereof
US10146942B2 (en) * 2015-02-24 2018-12-04 Dell Products, Lp Method to protect BIOS NVRAM from malicious code injection by encrypting NVRAM variables and system therefor
CN106372538A (zh) * 2016-08-30 2017-02-01 苏州国芯科技有限公司 一种基于SoC芯片的固件保护方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5063496A (en) * 1988-06-01 1991-11-05 International Business Machines Corporation Signaling attempted transfer to protected entry point bios routine
US5121345A (en) * 1988-11-03 1992-06-09 Lentz Stephen A System and method for protecting integrity of computer data and software
DE3901457A1 (de) * 1989-01-19 1990-08-02 Strahlen Umweltforsch Gmbh Verfahren zur adressbereichsueberwachung bei datenverarbeitungsgeraeten in echtzeit
IT1254937B (it) * 1991-05-06 1995-10-11 Aggiornamento dinamico di memoria non volatile in un sistema informatico
DE69306389T2 (de) * 1992-06-12 1997-06-26 Dow Chemical Co Intelligentes prozesssteuerverbindungssystem und verfahren.
US5359659A (en) * 1992-06-19 1994-10-25 Doren Rosenthal Method for securing software against corruption by computer viruses
US5671413A (en) * 1994-10-31 1997-09-23 Intel Corporation Method and apparatus for providing basic input/output services in a computer
US5826012A (en) * 1995-04-21 1998-10-20 Lettvin; Jonathan D. Boot-time anti-virus and maintenance facility
US5778070A (en) * 1996-06-28 1998-07-07 Intel Corporation Method and apparatus for protecting flash memory
TW452733B (en) * 1999-11-26 2001-09-01 Inventec Corp Method for preventing BIOS from viruses infection

Also Published As

Publication number Publication date
US20010049794A1 (en) 2001-12-06

Similar Documents

Publication Publication Date Title
KR100924497B1 (ko) 비-휘발성 어플리케이션 및 화일 저장 디바이스로부터부팅시키기 위한 시스템 및 방법
US9081734B2 (en) Restoring from a legacy OS environment to a UEFI pre-boot environment
JP4688862B2 (ja) 仮想マシン環境における仮想マシンのシングルステップ機能のサポートを提供すること
US6779132B2 (en) Preserving dump capability after a fault-on-fault or related type failure in a fault tolerant computer system
TW515959B (en) Method for memory data access by system management interrupt and computer system thereof
US8806474B2 (en) Computer-hardware, life-extension apparatus and method
EP0437550B1 (en) Information processing system emulation apparatus and method
US5307482A (en) Computer, non-maskable interrupt trace routine override
US6697959B2 (en) Fault handling in a data processing system utilizing a fault vector pointer table
TW461997B (en) Write protection method of programmable chipset software
WO1993001542A1 (en) Microprocessor with oem mode for power management
JP6954864B2 (ja) 半導体装置およびufsシステム
TW521212B (en) Updating program code method for embedded type micro control unit
US6687845B2 (en) Fault vector pointer table
JPH0816420A (ja) 小型情報処理装置のエラー処理方法
US20230013428A1 (en) Function execution in system management modes
JPH05233266A (ja) 情報処理装置
KR20000008628A (ko) 컴퓨터 시스템의 부팅음악 출력방법
Efimov et al. Peripheral device register support for source code boilerplate generator of QEMU development toolkit
JP3130798B2 (ja) バス転送装置
JPS60193046A (ja) 命令例外検出方式
JPH0934795A (ja) Cpuプログラムのコピープロテクト法
JP3166667B2 (ja) エミュレーション用マイクロコンピュータ
KR101064650B1 (ko) 리눅스 운영체제 기반의 시스템에서 usb 디바이스 드라이버의 커널 하드닝을 수행하는 방법 및 그 장치
JP2001209555A (ja) 入出力エミュレーション装置、入出力装置のエミュレーション方法および入出力装置エミュレーションプログラムを記録した記録媒体

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MK4A Expiration of patent term of an invention patent