TWI509453B - 非法模式改變處置 - Google Patents
非法模式改變處置 Download PDFInfo
- Publication number
- TWI509453B TWI509453B TW100128204A TW100128204A TWI509453B TW I509453 B TWI509453 B TW I509453B TW 100128204 A TW100128204 A TW 100128204A TW 100128204 A TW100128204 A TW 100128204A TW I509453 B TWI509453 B TW I509453B
- Authority
- TW
- Taiwan
- Prior art keywords
- illegal
- instruction
- mode
- change
- program
- Prior art date
Links
- 230000008859 change Effects 0.000 title claims description 127
- 238000000034 method Methods 0.000 claims description 28
- 230000004044 response Effects 0.000 claims description 22
- 238000001514 detection method Methods 0.000 claims description 19
- 230000000903 blocking effect Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims 1
- 230000007246 mechanism Effects 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 230000009118 appropriate response Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000008094 contradictory effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 208000011580 syndromic disease Diseases 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30196—Instruction operation extension or modification using decoder, e.g. decoder per instruction set, adaptable or programmable decoders
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
- Storage Device Security (AREA)
Description
本發明關於資料處理系統之領域。更特別言之,本發明關於具有多模式操作及該等模式之間的改變之管理的資料處理系統。
提供具有多模式操作之資料處理系統係為人已知。此等模式可(例如)對應於特權之不同位準,使用此等不同特權位準具有對於一系統資源的不同存取權利。該等特權位準可係硬體特權位準,使得當系統在具有一高特權的一模式中時能存取記憶體位址空間的區域,該等記憶體位址空間的區域當在具有一低特權的一模式中操作時不可存取。模式亦可對應於在例外位準處置的一系統內的不同例外位準。具有多模式操作之此等資料處理系統之實例係由英國劍橋的ARM Limited公司所設計的處理器。
在具有多模式操作之此等資料處理系統內,會出現一些模式改變係非法(即不被允許)。作為一實例,如一安全性措施,應該不可能執行一軟體指令,此舉將模式改變成特權的一更高位準從而獲得對系統資源的更多存取。此等改變較佳是藉由使用一例外機制造成藉以例外處置碼可處理至特權之更高位準的進入且保持系統的安全性。以防止此等非法模式改變的硬體機構提供予資料處理系統係為人已知。然而,當已防止此一模式改變時系統的行為可隨著實施方案而異,以及取決於已被防止的非法改變的類型而異。
本發明之一態樣提供一種用於處理資料之設備,該設備包含:處理電路,該處理電路回應於程式指令以施行資料處理操作,該處理電路具有複數個模式;及非法改變偵測電路,該非法改變偵測電路回應於由一非法程式指令指定之該處理電路的模式之一非法改變的一嘗試以進行下列各項:
(i)阻止模式之該非法改變;及
(ii)將一非法改變位元設定至指示該非法程式指令嘗試施行該非法改變之一預定值;其中
當該非法改變位元具有該預定值時,該處理電路回應於另外程式指令作為未定義的指令。
本技術提供對於模式的一非法改變之偵測的一致回應,該技術可一致地應用且該技術本身藉由需要一資料相依以觸發非法改變回應而不引入明顯的實施困難。一資料相依可出現於當被改變之模式係從記憶體或從一暫存器轉移時,資料本身後續可在執行管道中程式化。當非法改變位元已設定至預定值時,將非法改變位元重設定至預定值連同將後續程式指令作為未定義指令,容許對於非法改變之回應有效地延緩且處理以作為對於現在未定義後續指令之一回應。此舉使在偵測非法模式改變中的資料相依問題減輕。
儘管非法改變位元能儲存在設備內的許多不同處,但在一些具體實施例中,非法改變位元形成一目前程式狀態暫存器的部分,該目前程式狀態暫存器儲存定義設備之一目前狀態的資料。指示該等指令應被視為未定義指令之非法改變位元係適當地視為系統之目前狀態的部分及因此適當地儲存在目前程式狀態暫存器內。
非法程式指令可具有許多不同形式。在一形式中,若模式指令指定一模式改變不被允許(如對於特權之一更高位準的改變),則模式指令的之一明顯改變可構成非法程式指令。非法程式指令的另一形式將係從指定一新程式計數器值的例外指令及不被允許的一新模式的一返回,例如對於特權的一更高位準的返回。
從例外指令的返回本身可有不同形式。一實例中,形成新程式計數器值及新模式可在系統內儲存的各別暫存器中指定。在形成從例外指令返回之另一實例中,新程式計數器值及新模式可在記憶體中指定。
如先前提及,模式的非法改變可採取許多不同形式。一實例係至特權的一更高位準之一改變。另一實例係對於至抵觸設備內儲存的其他狀態資料的一模式之一改變,該資料指示模式狀態應係何狀態,例如指示一不同指令集待與此抵觸儲存於系統內的其他資料連用的模式之一改變,該系統指示應使用一不同指令集。
為了使系統可保持對於操作期間發生之例外的回應性而無關非法改變位元的設定,在一些具體實施例中,該處理電路回應於一例外事件,以將非法改變位元的一目前值儲存作為一經儲存位元及將非法改變位元設定至不同於預定值的一值,使得關聯該例外之例外處置程式指令即使例外已發生亦可執行。因此,當設定非法改變位元時將後續指令視為未定義指令,可在發生儲存非法改變位元之一例外事件時阻止,從而允許執行例外處置程式指令的執行。
為了不失去對於非法模式改變之偵測適當的行為,一些具體實施例經組態以使得當從例外處置程式指令之執行返回時,非法改變位元經設定以匹配該經儲存位元,以致一非法模式改變的先前發生接收其適當回應。
為了協助處置非法模式改變,一些具體實施例包括一信種(syndrome)暫存器,該暫存器經組態以儲存指示一類型的非法程式指令之信種值,該指令嘗試模式的合法改變。可用此一信種暫存器內之資料來觸發對於非法模式改變嘗試的一適當回應,該非法模式改變嘗試匹配引起彼合法嘗試之該指令類型。
對於未定義指令的一回應類型係觸發一未定義指令例外事件。用於回應於未定義指令的機制經常已存在於資料處理系統中,且此等機制可再利用以處理嘗試造成一非法模式改變的效應。可使此未定義例外處置回應於信種暫存器,使得未定義例外回應可經修整至例外的原因。
如以前提及,可變化複數個模式(該等模式間可造成改變)。一實例係對於系統資源具有不同存取位準的特權之不同位準。另一實例係利用複數個不同指令集模式的系統,各模式對應於將來自一不同指令集之程式指令的一執行解碼。存在不同操作模式(在不同操作模式間一些改變可能係非法)的另外實例。
本發明之另一態樣提供一種用於處理資料之設備,該設備包含:處理構件,該處理構件用於回應於程式指令以施行資料處理操作,該處理構件具有複數個模式;及非法改變偵測構件,該非法改變偵測構件用於偵測由一非法程式指令指定之該處理電路的一非法模式改變的一嘗試且回應於該嘗試而用於下列各項:
(i)阻止模式之該非法改變;及
(ii)將一非法改變位元設定至指示該非法程式指令嘗試施行該非法改變之一預定值;其中
當該非法改變位元具有該預定值時,該處理構件回應於另外程式指令作為未定義指令。
本發明之另一態樣提供一種處理資料之方法,該方法包含以下步驟:使用處理電路回應於程式指令以施行資料處理操作,該處理電路具有複數個模式;回應以偵測由一非法程式指令指定之該處理電路的模式之一非法改變的一嘗試以進行下列各項;
(i)阻止模式之該非法改變;及
(ii)將一非法改變位元設定至指示該非法程式指令嘗試施行該非法改變之一預定值;及
當該非法改變位元具有該預定值時,回應於另外程式指令作為未定義的指令。
應進一步瞭解本技術的一實施方案可依一虛擬機器之形式,該虛擬機器包含一通用電腦,該電腦經程式化以為程式碼提供一執行環境,該執行環境與上述設備及方法匹配並且包括用於回應於如以前討論之模式的非法改變的機制。
本發明之以上及其他目的、特徵與優點將會自以下參考附圖讀取之詳細實施方式瞭解。
第1圖概要地圖示依一處理器核心形式的一資料處理設備2。該處理器核心包括一資料路徑,該資料路徑包括一通用暫存器排4、一乘法器6、一移位器8及一加法器10。一指令解碼器12用一指令管道14回應於程式指令,以根據正執行之程式指令產生控制信號,該等控制信號用於控制資料路徑4、6、8、10及處理器核心的其他部分。程式指令係沿一指令路徑從一記憶體提取。待由資料路徑4、6、8、10操縱的資料值亦從記憶體提取。應瞭解,資料處理設備2通常含有許多另外的電路元件,且為了清楚起見,此等元件已從第1圖省略。
資料處理系統2更包括一程式計數器暫存器16,程式計數器暫存器16用以儲存一記憶體位址值,該記憶體位址值對應於一目前執行中程式指令的記憶體位址。一目前程式狀態暫存器18及一經儲存程式狀態暫存器20亦提供儲存狀態變數,該等變數指示資料處理系統2之一目前狀態以及當一模式改變發生時使用之資料處理系統2的一儲存狀態,且需要記錄先前狀態變數。此項技術領域人士(如熟習由英國劍橋的ARM Limited公司所設計的處理器之人士)將會熟習此種類型的目前程式狀態暫存器18及經儲存程式狀態暫存器20。
另外包括在資料處理系統2的係非法改變偵測電路22。此非法改變偵測電路22耦合至目前程式狀態暫存器18且用以偵測資料處理系統2的操作模式中之非法改變。作為一實例,非法改變偵測電路22可偵測一非法改變,該非法改變對應於至特權的一更高位準之切換,該切換之發生作為對於一模式改變指令之執行或依一未被允許之方式的一例外返回的回應。可由非法改變偵測電路22偵測的一非法改變之另一實例係一改變以執行來自一不同指令集(資料處理系統2及指令解碼器12可支援多個不同指令集)的指令,該指令集抵觸保持在系統內指示使用中的指令集應為何的其他狀態資料。應瞭解到,定義目前操作模式之資料通常係儲存在目前程式狀態暫存器18內,且因此非法改變偵測電路22耦合至目前程式狀態暫存器18,且非法改變偵測電路22可在嘗試將模式改變寫進入目前程式狀態暫存器18內之點處偵測到此等改變。此等寫入可能後續發生在一相關聯非法程式指令之執行中(當此等指令可能具有控制改變係合法或非法的資料相依)。因此,當將非法程式指令解碼時嘗試識別此等非法程式指令係困難且在資料處理系統2的設計方面引入不符需求的微架構約束。
當非法改變偵測電路22偵測一非法模式改變時,電路22將在目前程式狀態暫存器18內之一非法改變位元24設定至一預定值(如將此非法改變位元CPSR.IL設定至值「1」)。若將儲存在目前程式狀態暫存器18之狀態變數儲存時(如當採取一例外時),則變數是儲存在經儲存程式狀態暫存器20內。此舉包括將非法改變位元24之一複本儲存成為經儲存程式狀態暫存器20內之一對應經儲存非法改變位元26。
在偵測到一非法模式改變後將非法改變位元24設定至預定值之同時,非法改變偵測電路22亦將指示嘗試非法改變的該類型之非法程式指令的資料寫進入至一信種暫存器28中。因此,信種暫存器28可含有指示非法程式指令係一非法模式改變指令或係不同類型的一非法例外返回指令的資料。儲存在信種暫存器28內的資料可在關聯對於視為未定義指令之非法指令的諸指令的後續回應之例外處置期間分析。
當設定非法改變位元24時,指令解碼器回應於此位元以將後續接收到的程式指令視為未定義指令。因此,非法改變位元CPSR.IL作為一輸入而供應至指令解碼器12。指令解碼器12將把接收用於解碼的所有程式指令視為未定義指令,而指令解碼器12接收到之非法改變位元CPSR.IL的值匹配預定值(如,設定成值1)。
指令解碼器12可回應於一嘗試,以藉由觸發一待由未定義指令例外處置碼處理的未定義指令例外將一未定義程式指令解碼(如可藉由非法例外位元指示)。此項技術領域人士將會熟習此等未定義例外,儘管此等未定義例外通常不藉由非法改變偵測的此機制產生。
第2圖圖示一例外返回指令的一實例。在此實例中,一例外返回指令觸發將一新程式計數器值自暫存器排4的該等暫存器中之一儲存進入程式計數器暫存器16內。同樣地,一新模式值從經儲存程式狀態暫存器20寫入至目前程式狀態暫存器18內。觸發第2圖中所示的回應之許多不同形式的例外返回指令可由指令解碼器12識別。
第3圖圖示一例外返回指令的另一實例。在此實例中,待儲存在程式計數器暫存器16及目前程式狀態暫存器18內之新程式計數器值及新模式值是從在一記憶體位址(Rn)處之一記憶體30讀取,該記憶體位址由關聯自例外指令(RFE[Rn])返回的一暫存器指定。
第4圖概要地圖示對於一經嘗試的非法模式改變之發生及回應。如同由線32圖示,系統係在一例外位準EL1的處理程式指令。在點34處造成一嘗試以執行係指定非法模式改變的一例外返回指令,如先前討論。此非法模式改變係藉由非法改變偵測電路22偵測。非法改變偵測電路22將非法改變位元CPSR.IL設定至預定值,使得CPSR.IL=1。當指令解碼器12回應於具有預定值的非法改變位元CPSR.IL時,如在點36指示所執行的後續指令由指令解碼器12視為未定義指令。
第5圖圖示對於之後為一正常中斷之模式之一非法改變的一嘗試之一回應。在處理38期間,非法指令係藉由非法改變偵測電路22偵測。非法改變位元係設定成預定值。緊接著非法程式指令的執行後,一中斷40產生,中斷40之產生造成一例外回應,該回應包括至一更高例外位準EL2的改變。作為此例外回應的部分,目前程式狀態暫存器18將其內容複製至經儲存程式狀態暫存器20且目前程式狀態暫存器18內之非法改變位元24被改變以與預定值不同。此具有在處理42期間執行之超管理器程式的例外處置程式指令不被視為未定義指令之一結果,且可正常地執行以如預期地處置中斷事件40。在從例外事件44返回時,經儲存程式狀態暫存器20的內容(包括具有預定值的非法改變位元)係儲存進入至目前程式狀態暫存器18內。因此,當在處理46處重新開始原始程式序列之執行時,程式指令被視為未定義及可藉由觸發一相關聯未定義例外回應(未顯示)來回應,該回應將會再次觸發至特權一更高位準及造成非法改變位元從預定值改變,使得未定義例外回應可執行該回應之碼。
第6圖係圖示非法改變偵測電路22之操作的一流程圖。在步驟48處,處理等待直至有改變操作模式之一嘗試。步驟50決定此改變是否係非法,即匹配對應於非法改變之預定特性。若改變係非法,則步驟52阻止該改變,步驟54將一值寫至信種暫存器28,該值指示非法程式指令嘗試該改變且步驟56將非法改變位元CPSR.IL設定至預定值。若步驟50處的決定係改變為合法,則步驟58允許由相關程式指令指定的模式改變。
第7圖係概要地圖示指令解碼器12的操作之流程圖。在步驟60處,指令解碼器12等待一程式指令來解碼。在步驟62處,決定非法改變位元CPSR.IL是否具有指示一先前嘗試以進行一非法模式改變的預定值。若非法改變位元具有預定值,則處理前進至步驟64,在該處引動未定義指令處置,例如觸發與未定義指令例外對應的一例外事件。若步驟62處的決定係未設定非法改變位元,則處理前進至步驟66,在該處以正常方式將指令解碼。應瞭解到,步驟66處的解碼能事實上導致決定所涉及的指令係依獨立於任何先前嘗試的模式之非法改變的方式的一未定義指令,諸如單純誤形成的指令。
第8圖圖示可使用之一虛擬機器實施方案。雖然先前描述具體實施例的實施方案針對用於操作支援所涉及技術之特定處理硬體的設備及方法,亦可能提供所謂的硬體裝置的虛擬機器實施方案。此等虛擬機器實施方案在一主處理器530上執行,該主處理器530執行支援一虛擬機器程式510的一主作業系統520。通常,要求大型強力處理器以提供以一合理速率執行的虛擬機器實施方案,但可在某些環境中證明此一方法,例如當有一需求以為了相容性或再使用原因而執行另一處理器特有的碼。虛擬機器程式510提供對一應用程式500之一應用程式介面,該介面係與將會由真實硬體提供之應用程式介面相同,真實硬體係由虛擬機器程式510模擬的裝置。因此,程式指令(包括上述記憶體存取的控制)可從使用虛擬機器程式510之應用程式500內執行,以模擬應用程式500與虛擬機器硬體的相互作用。
雖然已在此參考附圖詳細描述本發明的說明性具體實施例,但應理解本發明不受限於該等精確具體實施例,且各種改變及修改可藉由熟習此項技術者實現而不脫離由隨附申請專利範圍界定之本發明範疇及精神。
2...資料處理設備
4...通用暫存器排
6...乘法器
8...移位器
10...加法器
12...指令解碼器
14...指令管道
16...程式計數器暫存器
18...目前程式狀態暫存器
20...經儲存程式狀態暫存器
22...非法改變偵測電路
24...非法改變位元
26...非法改變位元
28...信種暫存器
30...記憶體
32...線
34...點
36...點
40...中斷
42...處理
44...例外事件
46...處理
48...步驟
50...步驟
52...步驟
54...步驟
56...步驟
58...步驟
60...步驟
62...步驟
64...步驟
66...步驟
500...應用程式
510...虛擬機器程式
520...主作業系統
530...主處理器
第1圖概要地圖示一資料處理系統,該資料處理系統支援多模式操作及包括一非法模式改變偵測器;
第2圖概要地圖示由一例外返回回應形成之一實例;
第3圖概要地圖示由一例外返回回應形成之另一實例;
第4圖概要地圖示一非法模式改變之偵測及對偵測之回應;
第5圖概要地圖示一非法模式改變之偵測之後的一不相關中斷事件;
第6圖係概要地圖示一非法模式改變之偵測的一流程圖;
第7圖係概要地圖示根據非法改變位元的指令之解碼的一流程圖;及
第8圖係概要地圖示本技術之一虛擬機器實施方案的一圖式。
48...步驟
50...步驟
52...步驟
54...步驟
56...步驟
58...步驟
Claims (24)
- 一種用於處理資料之設備,該設備包含:處理電路,該處理電路回應於程式指令以施行資料處理操作,該處理電路具有複數個模式,該複數個模式包含複數個不同指令集模式之至少一個,每個指令集模式對應至來自一不同指令集之程式指令之解碼及執行;及非法改變偵測電路,該非法改變偵測電路回應於由一非法程式指令指定之該處理電路的模式之一非法改變的一嘗試,以進行下列各項:(i)阻止模式之該非法改變;及(ii)將一非法改變位元設定至指示該非法程式指令嘗試施行該非法改變之一預定值;其中當該非法改變位元具有該預定值時,該處理電路回應於作為未定義的指令之另外程式指令。
- 如請求項1之設備,該設備包含一目前程式狀態暫存器,該目前程式狀態暫存器經組態以儲存定義該設備之一目前狀態的資料,該資料包括該處理電路之一目前模式及該非法改變位元。
- 如請求項1之設備,其中該非法程式指令係以下各項之一:(i)指定模式之一改變係不被允許之模式指令之一明顯改變;及 (ii)自指定一新程式計數器值的例外指令及不被允許的一新模式的一返回。
- 如請求項3之設備,其中自例外指令的該返回從各別暫存器擷取該新程式計數器值及該新模式。
- 如請求項3之設備,其中自例外指令的該返回從一記憶體擷取該新程式計數器值及該新模式。
- 如請求項1之設備,其中模式之該非法改變係以下各項之一:(i)至一具有特權之一更高位準的一模式之改變;及(ii)至一抵觸由該設備儲存而指示該模式為何的其他狀態資料的一模式之改變。
- 如請求項1之設備,其中該處理電路經組態以回應於一例外事件,以將該非法改變位元的一目前值儲存為一經儲存位元及將該非法改變位元設定至不同於該預定值的一值,以致執行關聯於該例外事件之例外處置程式指令。
- 如請求項7之設備,其中該處理電路經組態以使得當從該等例外處置程式指令之執行的一返回時,該非法改變位元經設定以匹配該經儲存位元。
- 如請求項1之設備,該設備包含一信種暫存器,該信種暫存器經組態以儲存指示嘗試模式之該非法改變之一類型之該非法程式指令之一信種值。
- 如請求項1之設備,其中該處理電路回應於一嘗試以 藉由觸發一未定義指令例外事件而執行一未定義指令。
- 如請求項1之設備,其中該複數個模式包括以下各項:複數個特權的不同位準,該等位準具有對於該設備之資源的不同存取位準。
- 一種用於處理資料之設備,該設備包含:處理構件,該處理構件用於回應於程式指令以施行資料處理操作,該處理構件具有複數個模式,該複數個模式包含複數個不同指令集模式之至少一個,每個指令集模式對應至來自一不同指令集之程式指令之解碼及執行;及非法改變偵測構件,該非法改變偵測構件用於偵測由一非法程式指令所指定之該處理構件之模式之一非法改變之一嘗試,且回應於該嘗試而進行下列各項:(i)阻止模式之該非法改變;及(ii)將一非法改變位元設定至指示該非法程式指令嘗試施行該非法改變之一預定值;其中當該非法改變位元具有該預定值時,該處理構件回應於作為未定義指令之另外程式指令。
- 一種處理資料之方法,該方法包含以下步驟:使用處理電路以回應於程式指令以施行資料處理操作,該處理電路具有複數個模式,該複數個模式包含複數個不同指令集模式之至少一個,每個指令集模 式對應至來自一不同指令集之程式指令之解碼及執行;回應偵測由一非法程式指令所指定之該處理電路的模式之一非法改變的一嘗試,以進行下列各項:(i)阻止模式之該非法改變;及(ii)將一非法改變位元設定至指示該非法程式指令嘗試施行該非法改變之一預定值;及當該非法改變位元具有該預定值時,回應於作為未定義的指令之另外程式指令。
- 如請求項13之方法,包含將資料儲存於一目前程式狀態暫存器中之步驟,該資料包括該處理電路之一目前模式及該非法改變位元。
- 如請求項13之方法,其中該非法程式指令係以下各項之一:(i)指定模式之一改變係不被允許之模式指令之一明顯改變;及(ii)自指定一新程式計數器值的例外指令及不被允許的一新模式的一返回。
- 如請求項15之方法,其中自例外指令的該返回從各別暫存器擷取該新程式計數器值及該新模式。
- 如請求項15之方法,其中自例外指令的該返回從一記憶體擷取該新程式計數器值及該新模式。
- 如請求項13之方法,其中模式之該非法改變係以下各項之一: (i)至一具有特權之一更高位準的一模式之改變;及(ii)至一抵觸指示該模式為何的其他儲存狀態資料的一模式之改變。
- 如請求項13之方法,該方法包含回應於一例外事件,將該非法改變位元的一目前值儲存為一經儲存位元及將該非法改變位元設定至不同於該預定值的一值,以致執行關聯於該例外事件之例外處置程式指令。
- 如請求項19之方法,其中當從該等例外處置程式指令之執行的一返回時,該非法改變位元經設定以匹配該經儲存位元。
- 如請求項13之方法,該方法包含於一信種暫存器儲存一信種值,該信種值指示嘗試模式之該非法改變之一類型之該非法程式指令。
- 如請求項13之方法,該方法包含回應於一嘗試以執行一未定義指令,而觸發一未定義指令例外事件。
- 如請求項13之方法,其中該複數個模式包括以下各項:複數個特權的不同位準,該等位準具有對於資源的不同存取位準。
- 一種虛擬機器,該虛擬機器包括一儲存於一非暫態電腦可讀取儲存媒體上之電腦程式以控制一電腦執行如請求項13之方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1013467.4A GB2482701C (en) | 2010-08-11 | 2010-08-11 | Illegal mode change handling |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201229809A TW201229809A (en) | 2012-07-16 |
TWI509453B true TWI509453B (zh) | 2015-11-21 |
Family
ID=42931474
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW100128204A TWI509453B (zh) | 2010-08-11 | 2011-08-08 | 非法模式改變處置 |
Country Status (10)
Country | Link |
---|---|
US (1) | US8959318B2 (zh) |
EP (1) | EP2572274B1 (zh) |
JP (1) | JP5699213B2 (zh) |
KR (1) | KR101740224B1 (zh) |
CN (1) | CN103052941B (zh) |
GB (1) | GB2482701C (zh) |
IL (1) | IL223265A0 (zh) |
MY (1) | MY160351A (zh) |
TW (1) | TWI509453B (zh) |
WO (1) | WO2012020238A1 (zh) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9213828B2 (en) | 2012-02-08 | 2015-12-15 | Arm Limited | Data processing apparatus and method for protecting secure data and program code from non-secure access when switching between secure and less secure domains |
GB201217531D0 (en) * | 2012-10-01 | 2012-11-14 | Advanced Risc Mach Ltd | ARMv7-M Asset Protection Proposal |
US10210349B2 (en) | 2012-02-08 | 2019-02-19 | Arm Limited | Data processing apparatus and method using secure domain and less secure domain |
US9116711B2 (en) | 2012-02-08 | 2015-08-25 | Arm Limited | Exception handling in a data processing apparatus having a secure domain and a less secure domain |
US9477834B2 (en) | 2012-02-08 | 2016-10-25 | Arm Limited | Maintaining secure data isolated from non-secure access when switching between domains |
GB2499287A (en) * | 2012-02-08 | 2013-08-14 | Advanced Risc Mach Ltd | Exception handling in data processing with different security domains |
JP5591883B2 (ja) * | 2012-07-23 | 2014-09-17 | 株式会社東芝 | 情報処理装置、プログラム |
GB2517494B (en) * | 2013-08-23 | 2021-02-24 | Advanced Risc Mach Ltd | Handling time intensive instructions |
GB2530050B (en) * | 2014-09-10 | 2021-07-21 | Advanced Risc Mach Ltd | Debugging in a data processing apparatus |
GB2538091B (en) * | 2015-05-07 | 2018-03-14 | Advanced Risc Mach Ltd | Verifying correct code execution context |
US20170185400A1 (en) * | 2015-12-23 | 2017-06-29 | Intel Corporation | Mode-specific endbranch for control flow termination |
US9785800B2 (en) | 2015-12-23 | 2017-10-10 | Intel Corporation | Non-tracked control transfers within control transfer enforcement |
GB2549774B (en) * | 2016-04-28 | 2019-04-10 | Imagination Tech Ltd | Method for handling exceptions in exception-driven system |
US10360353B2 (en) * | 2017-02-08 | 2019-07-23 | International Business Machines Corporation | Execution control of computer software instructions |
GB2563580B (en) * | 2017-06-15 | 2019-09-25 | Advanced Risc Mach Ltd | An apparatus and method for controlling a change in instruction set |
GB2563884B (en) * | 2017-06-28 | 2020-01-08 | Advanced Risc Mach Ltd | Exception return instruction |
GB2563887B (en) * | 2017-06-28 | 2019-12-25 | Advanced Risc Mach Ltd | Masking of architectural state associated with a realm |
US10956157B1 (en) * | 2018-03-06 | 2021-03-23 | Advanced Micro Devices, Inc. | Taint protection during speculative execution |
CN110853751B (zh) * | 2019-11-25 | 2023-04-14 | 安徽名流健康管理有限公司 | 多普勒超声诊断实时显示系统 |
US11556346B2 (en) * | 2020-06-10 | 2023-01-17 | Qualcomm Incorporated | Security enhancement in hierarchical protection domains |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040019773A1 (en) * | 2002-07-25 | 2004-01-29 | Fujitsu Limited | Illegal instruction processing method and processor |
US20040168047A1 (en) * | 2003-02-24 | 2004-08-26 | Matsushita Electric Industrial Co., Ltd. | Processor and compiler for creating program for the processor |
TW200530921A (en) * | 2003-10-29 | 2005-09-16 | Qualcomm Inc | System for providing transitions between operating modes of a device |
US20070150730A1 (en) * | 2005-12-23 | 2007-06-28 | Texas Instruments Incorporated | Method and system for preventing unauthorized processor mode switches |
US7647589B1 (en) * | 2005-02-07 | 2010-01-12 | Parallels Software International, Inc. | Methods and systems for safe execution of guest code in virtual machine context |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3157242B2 (ja) * | 1992-01-14 | 2001-04-16 | 株式会社ピーエフユー | マイクロ・プログラム制御におけるエラー処理方法 |
EP0649091A1 (en) * | 1993-10-13 | 1995-04-19 | International Business Machines Corporation | Correction and modification of microprocessor chip operations |
KR100315347B1 (ko) * | 1999-11-18 | 2001-11-26 | 윤종용 | 반도체 메모리 장치의 동작모드 세팅회로 및 방법 |
US6886112B2 (en) * | 2002-06-28 | 2005-04-26 | Microsoft Corporation | Recovering from device failure |
AU2003278342A1 (en) * | 2002-11-18 | 2004-06-15 | Arm Limited | Security mode switching via an exception vector |
JP2004280801A (ja) * | 2003-02-24 | 2004-10-07 | Matsushita Electric Ind Co Ltd | プロセッサおよびこのプロセッサ用のプログラムを生成するコンパイラ装置 |
US7281271B1 (en) * | 2003-09-25 | 2007-10-09 | Symantec Corporation | Exception handling validation system and method |
KR100586500B1 (ko) * | 2004-03-18 | 2006-06-07 | 학교법인고려중앙학원 | 버퍼 오버플로우 공격들을 감지하고 복구하는 방법 및 그장치 |
US20070050848A1 (en) * | 2005-08-31 | 2007-03-01 | Microsoft Corporation | Preventing malware from accessing operating system services |
US20070067826A1 (en) * | 2005-09-19 | 2007-03-22 | Texas Instruments Incorporated | Method and system for preventing unsecure memory accesses |
WO2007040228A1 (ja) * | 2005-10-04 | 2007-04-12 | Nec Corporation | 情報処理装置、情報処理方法およびプログラム |
EP2013809B1 (en) * | 2006-05-01 | 2018-11-21 | MediaTek Inc. | Method and apparatus for secure context switching in a system including a processor and cached virtual memory |
US8352713B2 (en) * | 2006-08-09 | 2013-01-08 | Qualcomm Incorporated | Debug circuit comparing processor instruction set operating mode |
JP5245237B2 (ja) * | 2006-09-29 | 2013-07-24 | 富士通セミコンダクター株式会社 | エラー処理方法 |
US7689817B2 (en) * | 2006-11-16 | 2010-03-30 | Intel Corporation | Methods and apparatus for defeating malware |
JP2008250387A (ja) * | 2007-03-29 | 2008-10-16 | Toshiba Corp | 情報処理装置 |
DE102007015507B4 (de) * | 2007-03-30 | 2010-09-02 | Advanced Micro Devices, Inc., Sunnyvale | Prozessor mit einem ersten und einem zweiten Betriebsmodus und Verfahren zu seinem Betrieb |
GB2448149B (en) * | 2007-04-03 | 2011-05-18 | Advanced Risc Mach Ltd | Protected function calling |
US20090070565A1 (en) * | 2007-09-11 | 2009-03-12 | Tellabs Reston Inc. | Methods, systems, computer programs and apparatus for changing a processor state |
US8150950B2 (en) * | 2008-05-13 | 2012-04-03 | Schneider Electric USA, Inc. | Automated discovery of devices in large utility monitoring systems |
-
2010
- 2010-08-11 GB GB1013467.4A patent/GB2482701C/en active Active
-
2011
- 2011-06-13 EP EP11733693.3A patent/EP2572274B1/en active Active
- 2011-06-13 WO PCT/GB2011/051095 patent/WO2012020238A1/en active Application Filing
- 2011-06-13 KR KR1020137003612A patent/KR101740224B1/ko active IP Right Grant
- 2011-06-13 CN CN201180038092.7A patent/CN103052941B/zh active Active
- 2011-06-13 JP JP2013523663A patent/JP5699213B2/ja active Active
- 2011-06-13 MY MYPI2012701039A patent/MY160351A/en unknown
- 2011-06-28 US US13/067,808 patent/US8959318B2/en active Active
- 2011-08-08 TW TW100128204A patent/TWI509453B/zh active
-
2012
- 2012-11-26 IL IL223265A patent/IL223265A0/en active IP Right Grant
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040019773A1 (en) * | 2002-07-25 | 2004-01-29 | Fujitsu Limited | Illegal instruction processing method and processor |
US20040168047A1 (en) * | 2003-02-24 | 2004-08-26 | Matsushita Electric Industrial Co., Ltd. | Processor and compiler for creating program for the processor |
TW200530921A (en) * | 2003-10-29 | 2005-09-16 | Qualcomm Inc | System for providing transitions between operating modes of a device |
US7647589B1 (en) * | 2005-02-07 | 2010-01-12 | Parallels Software International, Inc. | Methods and systems for safe execution of guest code in virtual machine context |
US20070150730A1 (en) * | 2005-12-23 | 2007-06-28 | Texas Instruments Incorporated | Method and system for preventing unauthorized processor mode switches |
Also Published As
Publication number | Publication date |
---|---|
IL223265A0 (en) | 2013-02-03 |
EP2572274B1 (en) | 2014-11-19 |
JP5699213B2 (ja) | 2015-04-08 |
CN103052941B (zh) | 2016-03-09 |
KR101740224B1 (ko) | 2017-05-26 |
GB201013467D0 (en) | 2010-09-22 |
GB2482701B (en) | 2017-01-11 |
MY160351A (en) | 2017-02-28 |
CN103052941A (zh) | 2013-04-17 |
GB2482701A (en) | 2012-02-15 |
GB2482701C (en) | 2018-12-26 |
EP2572274A1 (en) | 2013-03-27 |
US20120042154A1 (en) | 2012-02-16 |
JP2013539574A (ja) | 2013-10-24 |
KR20130137591A (ko) | 2013-12-17 |
US8959318B2 (en) | 2015-02-17 |
TW201229809A (en) | 2012-07-16 |
WO2012020238A1 (en) | 2012-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI509453B (zh) | 非法模式改變處置 | |
RU2513909C1 (ru) | Ограничение областей памяти для считывания команд в зависимости от аппаратного режима и флага безопасности | |
US20160210069A1 (en) | Systems and Methods For Overriding Memory Access Permissions In A Virtual Machine | |
CN112639778A (zh) | 指针认证及指针认证方案之间的动态切换 | |
JP7432586B2 (ja) | スタック・ポインタを検証すること | |
JP5703378B2 (ja) | アラインメント制御 | |
TW201137660A (en) | Method and system for protecting an operating system against unauthorized modification | |
US9753870B2 (en) | Hardware monitor with context switching and selection based on a data memory access and for raising an interrupt when a memory access address is outside of an address range of the selected context | |
CN114902178A (zh) | 域转换禁用配置参数 | |
TWI710956B (zh) | 用於處理資料之設備及方法和電腦程式 | |
TW201939272A (zh) | 帶鏈結分支指令的分支目標變體 | |
KR102613643B1 (ko) | 예외 처리 | |
KR102584506B1 (ko) | 가상 기계들을 위한 상태 정보 보호 | |
JP2023547969A (ja) | 応用プログラムの実行流れ変更を通じた非実行ファイルの悪性探知方法及び装置 | |
CN109388948B (zh) | 一种基于虚拟化技术的潜在恶意软件分析方法及相关装置 | |
CN111949376B (zh) | 虚拟机系统和用于虚拟机系统的方法 | |
WO2015052831A1 (ja) | 情報処理装置、方法およびプログラム | |
JP2009271597A (ja) | プロセッサ | |
WO2015052829A1 (ja) | 情報処理装置、方法およびプログラム | |
JP7444610B2 (ja) | コンテキスト・データ管理 | |
TW202418067A (zh) | 堆疊指標切換有效性檢查 | |
WO2024028565A1 (en) | No-operation-compatible instruction | |
CN114902180A (zh) | 模间调用分支指令 | |
JPH03233650A (ja) | 計算機システム |