新四季網

基於xml中間模型以及缺陷模式匹配的靜態檢測系統的製作方法

2023-09-13 18:52:55 1

專利名稱:基於xml中間模型以及缺陷模式匹配的靜態檢測系統的製作方法
技術領域:
本發明屬於軟體檢測技術領域,涉及一種基於XML中間模型以及缺陷模式匹配的靜態檢測方法。
背景技術:
目前,檢測軟體安全漏洞的方法主要有動態測試和靜態分析。動態測試方法通過軟體的實際執行來發現軟體中的錯誤,由於只能對有限的測試用例進行檢查,所以不能保證發現軟體的所有安全漏洞。靜態分析不編譯運行程序,而是通過對程序原始碼進行分析以發現其中的錯誤, 能在早期發現30% 70%的邏輯設計和編碼缺陷引入的安全漏洞而。靜態分析技術通過對原始碼進行檢查,往往能在開發早期發現軟體隱含的安全問題,提高程序的可靠性和健壯性。儘管靜態分析方法可能產生一定的漏報(false negatives)或誤報(false positives),但仍然是當今最實用、最有效的安全漏洞檢測方法之一。在實際使用中,靜態測試能快速找到軟體安全缺陷,比動態測試更有效率。目前,軟體安全靜態分析技術主要分為模型檢測、詞法分析、類型推導、符號執行、定理證明等。其中,模型檢測是一種驗證有限狀態的並發系統的方法,基本思想是對於有限狀態的系統構造狀態機或者有向圖等抽象模型,再對模型進行遍歷以驗證系統的某一性質。模型檢測的難點在於如何避免狀態空間爆炸。為此人們提出了多種方法。其中符號化模型檢測方法是將抽象模型中的狀態轉換為邏輯公式,然後判定公式的可滿足性。還可將模型轉化成自動機,同時將需要檢查的公式轉換為一個等價的自動機,再將此自動機取補。這兩個自動機的積構成了一個新的自動機,則判定模型是否具有某一屬性的問題就轉換成檢查這個新自動機能接受的語言是否為空。

發明內容
本發明提供了一種基於XML中間模型以及缺陷模式匹配的原始碼靜態檢測方法, 通過構造基於關係存儲模式的關係語法樹,以及基於XML的中間數據存儲模型,將原始碼安全屬性信息提取並存儲到XML中間模型中,以供規則檢測器進行規則匹配和缺陷檢測。本發明的技術方案如下1、靜態檢測系統的整體架構建立本發明整體架構包括系統前端靜態信息提取和系統後端漏洞檢測兩個功能模塊。系統前端靜態信息提取模塊由預處理模塊和原始碼解析模塊組成,負責對待檢測代碼源文件進行預處理和語法制導的解析,提取所需靜態信息(即安全編程規則所涉及的所有代碼信息),構建關係語法樹,並根據制定的XML中間模型生成XML文件;具體如下1)預處理模塊完成對原始碼文件的宏替換功能,該功能的實現借用G++的預處理器輔助完成。預處理後將生成.i文件。G++預處理將執行原始碼中的所有預處理指令。由於原始碼中的所有預處理指令均是規則檢測的對象,所以我們需要將所有的預處理指令重新恢復到原始碼文件中。同時,由於文件包含指令的執行,使原始碼文件中被引入了大量的代碼,尤其是引入了大量的C++ 標準庫文件,但這是標準庫文件中的代碼並不是我們檢測的對象,需要從將其刪除。預處理模塊首先將原始碼文件讀入內存,對源文件中的特殊區域添加標記,標記添加的原則是標記只分為兩種,BEGIN與END ;BEGIN與END之間的內容是需要從後續的.i 中恢復的內容;標記之外的內容是原始碼中的所有預處理指令。系統通過調用G++-E-C對添加了標記的代碼文件進行預處理,生成含有標記信息的.i文件。通過分別從添入標記的原始碼文件和帶有標記的.i文件中分別提取相應信息, 即可獲得符合規定的預處理後的文件。其中,從添入標記的原始碼文件中提取出所有預處理指令及它們在原始碼文件中的各自的行號,從帶有標記信息的.i文件中提取兩個標記之間的所有代碼。2)原始碼解析模塊主要完成對原始碼文件的轉換,即將原始碼文件轉換成為 XML文件。原始碼解析模塊按照功能可劃分為詞法分析模塊、語法分析模塊和XML生成模塊。代碼解析器以LEX、YACC描述腳本構造詞法分析器和語法分析器,對通過GCC編譯生成的.i文件進行解析,從中識別出代碼類型、文本、行號以及變量、函數聲明等數據信息。這些信息被存儲在系統內部臨時「數據池」中,經XML生成模塊的處理,依據設計的XML中間模型的結構,將解析出的數據信息存儲在XML文件中。系統後端漏洞檢測模塊負責對系統前端生成的特定格式的XML文件執行規則檢測。安全規則庫中存儲著安全規則,針對已經轉換為XML中間文件的檢測對象,規則以適宜檢測XML文件的一種形式存儲在安全規則庫中。規則配置文件中存儲每次規則檢測時用戶進行的一些系統配置信息。系統後端通過讀入XML中間文件、規則配置文件以及安全知識庫,輸出檢測結果。2、基於關係存儲模式的關係語法樹的構建鑑於GCC編譯產生的AST文本中含有大量的靜態檢測價值極低的冗餘信息,因此需要利用Lex、^cc對原始碼進行解析,對產生冗餘信息的語句進行特殊處理。例如對於原始碼文件中的文件包含預處理指令,在關係語法樹模型中,該指令對應一個普通節點。節點只記錄該語句的文本內容和在原始碼文件中出現的位置信息,摒棄其對應的頭文件的內容。通過類似的處理,去除絕大多數的冗餘信息,繼而降低後續信息提取的難度並提高信息檢索的精度。編譯器以源程序的過程為單位生成抽象語法樹,語法樹構造算法為過程中每一種語句構造定義相應的運算符,並以運算符作為樹的內部節點。對於以關鍵字開頭的構造,使用這個關鍵字作為對應的運算符。加減乘除等數學算法作為數學子表達式的運算符。關係存儲模式根據終結符之間的依存關係建模,內部節點去除數學運算符,增加表達式、標識符等運算符。對於以關鍵字開頭的構造,仍然使用這個關鍵字作為對應的運算符。表達式語句不以某個關鍵字開頭,故定義一個新運算符expression表示表達式語句, 用葉子節點null表示一個空語句序列。標識符的運算符分為variable、function等。樹的節點之間存在父子或兄弟關係,使用相關指針進行連結。根據靜態檢查需要,分別生成ID 樹與STMT樹。ID樹存放詞法單元的屬性集,STMT樹存放各類語句的語法結構信息。語法樹構造算法的基本思想如下給定文法G和Matement (語句)流s,記s = S1S2. · · sn (其中 Si e VT, i = 1,2... η), Si = tnt2i. · · tmi (其中 tki e VT, k = 1,2…m);識別器自左向右掃描s,每掃過一個tki,執行一個狀態集Pi (Pi e P),其中每個狀態形如 ,A — α ·β 表示 α 為已分析部分,Treeid (ti; d)表示ID樹當前最後加入節點為Treecode(Sj, h)表示STMT樹當前最後加入的節點為 Sj,d等於ID樹節點當前深度,h值指示STMT樹語句塊的當前嵌套層次,d-h彡1。其中,VT為非空終結符集合,VN為非終結符的非空集合,VNDVT = 0,廠/為運算符集合,vt」為非運算符集合,Vt』。VT,Vt、VT-,V U Vt」 = VT,CFG (上下文無關文法)G =(VN, VT, S,P),S e VN,是文法G的開始符號,P是產生式集合P = {A — α |A e VN,α e (VNUVT)*} (1)設VN中所有的非終結符A都可定義一個CFG GA = (VN, VT, A,P),其中A稱為開始符號,GA產生一個上下文無關語言L(GX) JUL(GX)中的每個句子w對應一棵派生樹,派生樹也稱生成樹、分析樹、語法樹。設有CFG G = (VN, VT, P,S),G的語法樹是滿足如下條件的有序樹樹的每個節點有一個標記X,且X e VN U VT U { ε },ε表示空;樹根的標記為S,S e Vt』 ;如果一個非葉子節點ν標記為Α,ν的子節點從左到右依次為Vl,v2,. . .,vn,並且它們分別被標記為X1, X2, ... Xn,則A — X1X2... Xn e P ;如果χ是一個非葉子節點的標記,則X e Vt』 ;如果一個節點ν標記為ε,則ν是該樹的葉子,並且ν是其父節點的唯一子節點。3、XML中間模型的建立將關係語法樹以XML格式存儲,構造XML中間模型。XML中間模型的設計包括以下幾方面1)XML文件模型XML模型需具備良好結構,且XML模型中各節點和屬性項的含義均具有確定性和唯一性。通過對C++安全規則中所提取的具有檢測價值的靜態屬性進行分析,使用XML Schema構建如附圖3的XML文件模型的結構。每個關係語法樹在XML中間模型中均對應一個S0URCEFILE節點,S0URCEFILE節點是XML模型的頂層節點,具有兩個屬性文件路徑(FILEPATH)和文件類型(FILETYPE)。XML文件模型下引出四個子模型頭文件引入模型(FILEINCLUDE)、注釋信息模型 (COMMENTS)、語句結構模型(C0DELINES)、標識符信息模型(INDENTIFIERS)。頭文件引入模型存儲關係語法樹中文件包含語句的信息,包含文件可能是用戶自定義文件或系統文件,通過設定FILEINCLUDE的屬性節點TYPE來區分包含文件的不同類型。注釋信息模型以語句為單位集中記錄所有注釋內容,原始碼中每行注釋都映射為一個C0DELINE子節點。語句結構模型以語句為單位結構化地描述代碼組織形式,原始碼中每條語句映射為一個C0DELINE子節點,使用SUBLINE標籤劃分嵌套子語句。標識符信息模型記錄文件中定義的標識符信息,包括所有變量、函數名、類名及標號等,每個標識符生成一個相應的ID子節點。2)語句結構模型語句結構信息以C++語言語句為單位,能夠體現原始碼中每一行代碼的具體含義及其所在行的上下文環境信息。原始碼中每一條語句在XML中間模型中都對應一個C0DELINE節點。每一個語句信息單元需要包含語句類型、行號、語句文本及可選的子語句信息。語句結構模型用WSDL表示如附圖4所示。所有語句在XML中間模型中均映射為一個C0DELINE節點,包含屬性節點C0DETYPE 和LINENUMBER,以及節點C0DETEXT和可選節點SUBLINES。複合語句以SUBLINES為父節點進行擴展,內部嵌套的多條語句統一置於子節點SUBLINES下。語句結構模型的XML Schema 結構具體設計如下A.語句類型C0DETYPEXML中間模型將C++語句類型劃分為76類,使C++語言中的所有語句均有一個唯一的名稱。B.行號LINENUMBER系統在檢測出違反安全規則的軟體缺陷後,需要向用戶提供原始碼中違反規則的缺陷所在行號。C.語句文本C0DETEXT某些規則的實現需要通過正則表達式分析語句文本,例如規則中禁止使用二合字母詞,所以XML中間模型用專門節點標記語句文本。D.子語句SUBLINESSUBLINES通常含有大量C0DELINE子節點,代表複合語句中的子語句。3)標識符信息模型標識符信息模型描述原始碼中標識符的屬性集和作用域信息。XML中間模型中,原始碼定義的每個標識符都映射到IDENTIFERS節點下的一個ID子節點,ID節點的每個屬性節點和子節點記錄了對應標識符的名字、類型、存儲類型等信息。標識符信息模型用WSDL 表示如附圖5所示。標識符信息模型詳細設計如下A.標識符類型IDTYPE在原始碼中,標識符可能是變量名、函數名或者是自定義類型等,通過設定屬性節點IDTYPE區分不同標識符。IDTYPE可取值包括、量、函數定義、類、類模板等35種類型。B.行號LINENUMBERID的屬性節點,記錄標識符第一次出現的位置。ID含有許多子節點,均作為可選項,是否使用由IDTYPE以及標識符在原始碼中的上下文環境而定。C.名字NAME記錄標識符的名稱。D.類型TYPE可選子節點TYPE根據IDTYPE的取值不同具有不同的含義,可以使變量聲明的數據類型、函數返回類型或結構類型等。E.存儲類型標識ST0RETYPE該節點只應用在變量和函數中,用於記錄變量和函數在聲明時的存儲類別。F.賦值記錄 ASSIGNMENT記錄變量初始化值以及初始化後的再賦值,記錄項之間使用分號隔開。G.常量CONST
用於記錄類的成員函數是否是被const修飾的常量成員函數,寫在函數的最後來修飾。XML中間模型中,CONST節點不用於指示普通常量。H.訪問標號ACCESS記錄類、結構體和聯合體成員的訪問標號。ACCESS有private、public、protected
三個取值。I.所屬結構OWNER記錄類、結構體、聯合體和命名空間成員的所在類、結構體、聯合體或命名空間的名稱。J.虛函數標記VIRTUAL用於指示類成員函數是否是虛函數。K.運算符重載OPERATE用於記錄C++中可重載的42種重載操作符。L.參數PARAMETER記錄函數定義和聲明的參數信息。函數參數列表的每個參數項都被映射為 PARAMETER節點下的一個ID子節點,按參數順序存放。M.域FIELD複合語句中定義的變量是局部變量,XML中間模型中使用FIELD記錄這些變量,變量的可見域不超過所屬FIELD塊的作用域。N.基類PARENT記錄派生類繼承自哪些基類。PARENT節點有一個用於記錄類派生列表中派生類對每個基類的繼承權限的屬性節點。0.模板TEMPLATE記錄模板定義和聲明的模板參數信息。模板參數列表的每個參數項都被映射為 TEMPLATE節點下的一個ID子節點,按參數順序存放。本發明的有益效果是(1)高效性在遵守XML中間模型定義的前提下,可實現系統前端靜態信息提取和後端漏洞檢測模塊的並行開發。(2)面向對象語言的可擴展性由於XML中間模型與檢測語言和開發平臺無關,在檢測由其他程式語言開發的軟體時,只需更換與開發語言適應的系統前端解析器,即可實現特定語言的原始碼靜態檢測,具有多語言可拓展性。(3)支持《MISRA C++2008))安全編程規範本發明對軟體安全缺陷檢測的實現建立在《MISRA C++2008))安全子集的基礎上,適合用於安全苛刻性系統,如航空航天軟體系統、醫療系統、汽車電子系統和核工業系統等,對《MISRA C++2008))具有良好支持性。


圖1是本發明的系統架構圖。圖2是預處理模塊的執行流程圖。圖3是XML文件模型的結構示意圖。圖4是語句結構模型用WSDL表示結構示意圖。
圖5是標識符信息模型用WSDL表示結構示意圖。圖6是ID樹結構示意圖。
具體實施例方式以下結合技術方案和附圖,詳細敘述本發明的具體實施方式
。下面的算法1描述了語法樹的產生過程。算法1.輸入CFGG = (VN, Vt, S, P)和語句流 ^atements = S1S2. sn,其中 Si =
しIi ^21' tIlli'輸出Treeid和 Treestmt過程RSTree(G,s)1 begin2 P0 = {0,0) }3 procedure CreateStmt {構造 Stmt 樹}4 for i = 1 to n do5 procedure CreateId {構造 Id 樹}6 for j = 1 to m do7 begin/ begin of CreateId*/8 on current state Pk: = く A — a X3 , Treeid(ty, d), Treestmt (Sh, h) >9 gettoken ;10 if d ^ h then11 d = h ;12 if X G Vn then13 goto Ph(Ph G P, h ^ k) : = 14 else if X G V/ and X = t。then15 createldLeaf (Treeid(ty, d), X);16 set Treeid (tij; d);17 else if X = t^. and X G VT' or X G VT,,,and X = 『 { 『then18 d = d+1 ;19 else if X G VT and X ニ『}『20 d = d-1 ;21 else if X^ = e then22 break ;23 j = j-1 ;24 end/*end of CreateId*/25 begin/*begin of CreateStmt'/26 CreateId ;27 createStmtLeaf (Treestmt (S^1, h), Si);28 ifh ^ d then
29 h = d ;30 i = i-1 ;31 end/*end of CreateStmt*/32 end/*end ofRSTree*/給定如下所示的輸入語句流s s0 :static int findMax(int arr[30])si {s2 :int max = arr
;s3 :for(int i = 1 ;i max) ? arr [i] :max ;s5 :return max ;s6 }s經過語法樹構造算法1的運算後,分別生成了附圖6(a)所示的STMT樹和附圖 6圖(b)所示的ID樹。分析可知,關係語法樹擁有節點11個,包括兩個頭指針節點Tree_ Stmt和Tree_Id。但若將輸入s使用G++生成傳統抽象語法樹,分析其語法樹文本GXL,可發現語法樹的節點數達到了 20萬多個。可見,基於關係存儲模式的關係語法樹有效簡化了傳統語法樹的規模。根據技術方案要點3所述的XML中間模型結構,輸入語句流s的關係語法樹以XML 格式存儲,經XML生成模塊的處理,最終轉換為如下的XML文件
static int findMax(int arr[30]) 〈SUBLINES〉
{

int max=arr


for(inti=l;i30;i++) 〈SUBLINES〉

max=(arrHmax) anli]:max; 〈/SUBLINES〉

return max;

} 〈/SUBLINES〉 〈IDENTIFIERS〉
findMax int static
arr [30]$int 〈/PARAMETER〉
max int
arr

FOR
i int 1
權利要求
1. 一種基於XML中間模型以及缺陷模式匹配的靜態檢測方法,其特徵在於包括以下步驟(1)靜態檢測系統的整體架構建立本發明整體架構包括系統前端靜態信息提取和系統後端漏洞檢測兩個功能模塊;系統前端靜態信息提取模塊由預處理模塊和原始碼解析模塊組成,具體如下1)預處理模塊預處理模塊首先將原始碼文件讀入內存,對源文件中的特殊區域添加標記,標記添加的原則是標記只分為兩種,BEGIN與END ;BEGIN與END之間的內容是需要從後續的.i中恢復的內容;標記之外的內容是原始碼中的所有預處理指令;系統通過調用G++-E-C對添加了標記的代碼文件進行預處理,生成含有標記信息的.i 文件;通過分別從添入標記的原始碼文件和帶有標記的.i文件中分別提取相應信息,即可獲得符合規定的預處理後的文件;其中,從添入標記的原始碼文件中提取出所有預處理指令及它們在原始碼文件中的各自的行號,從帶有標記信息的.i文件中提取兩個標記之間的所有代碼;2)原始碼解析模塊原始碼解析模塊按照功能可劃分為詞法分析模塊、語法分析模塊和XML生成模塊;代碼解析器以LEX、YACC描述腳本構造詞法分析器和語法分析器,對通過 GCC編譯生成的.i文件進行解析,從中識別出代碼類型、文本、行號以及變量、函數聲明;這些信息被存儲在系統內部臨時「數據池」中,經XML生成模塊的處理,依據設計的XML中間模型的結構,將解析出的數據信息存儲在XML文件中;系統後端漏洞檢測模塊負責對系統前端生成的特定格式的XML文件執行規則檢測; 安全規則庫中存儲著安全規則,針對已經轉換為XML中間文件的檢測對象,規則以適宜檢測XML文件的一種形式存儲在安全規則庫中;規則配置文件中存儲每次規則檢測時用戶進行的一些系統配置信息;系統後端通過讀入XML中間文件、規則配置文件以及安全知識庫, 輸出檢測結果;(2)基於關係存儲模式的關係語法樹的構建語法樹構造算法如下給定文法G和Matement (語句)流s,記s = S1S2. . . Sn(其中 Si e VT, i = 1,2. ..n), Si = tnt2i. · · tmi (其中 tki e VT, k = 1,2. ..m);識別器自左向右掃描s,每掃過一個tki,執行一個狀態集PJPi e P),其中每個狀態形如,A— α · β 表示 α 為已分析部分,Treeid (ti; d)表示 ID 樹當前最後加入節點為tyTree。-( h)表示STMT樹當前最後加入的節點為~,d等於ID 樹節點當前深度,h值指示STMT樹語句塊的當前嵌套層次,d-h ^ 1 ;其中,VT為非空終結符集合,VN為非終結符的非空集合,PWHFT = 0,廠/為運算符集合,Vt」為非運算符集合, Vt'^ VT,Vt"^ VT-, V U V,= VT, CFG (上下文無關文法)G = (VN, VT, S,P),S e VN,是文法G的開始符號,P是產生式集合P = {A — α |A e VN,α e (VNUVT)*}(1)設VN中所有的非終結符A都可定義一個CFG GA= (VN,VT,A,P),其中A稱為開始符號,GA產生一個上下文無關語言L(GX) JUL(GX)中的每個句子w對應一棵派生樹,派生樹也稱生成樹、分析樹、語法樹;設有CFG G = (VN, VT, P,S),G的語法樹是滿足如下條件的有序樹樹的每個節點有一個標記X,且X e VN U VT U { ε },ε表示空;樹根的標記為S,S e Vt';如果一個非葉子節點ν標記為Α,ν的子節點從左到右依次為Vl,v2,...,vn,並且它們分別被標記為X1, X2, ... Xn,則A — X1X2... Xn e P ;如果χ是一個非葉子節點的標記,則X e Vt』 ;如果一個節點ν標記為ε,則ν是該樹的葉子,並且ν是其父節點的唯一子節點;(3) XML中間模型的建立DXML文件模型每個關係語法樹在XML中間模型中均對應一個S0URCEFILE節點,S0URCEFILE節點是 XML模型的頂層節點,具有兩個屬性文件路徑(FILEPATH)和文件類型(FILETYPE);XML文件模型下引出四個子模型頭文件引入模型(FILEINCLUDE)、注釋信息模型 (COMMENTS)、語句結構模型(C0DELINES)、標識符信息模型(INDENTIFIERS);頭文件引入模型存儲關係語法樹中文件包含語句的信息,包含文件可能是用戶自定義文件或系統文件,通過設定FILEINCLUDE的屬性節點TYPE來區分包含文件的不同類型;注釋信息模型以語句為單位集中記錄所有注釋內容,原始碼中每行注釋都映射為一個 C0DELINE子節點;語句結構模型以語句為單位結構化地描述代碼組織形式,原始碼中每條語句映射為一個C0DELINE子節點,使用SUBLINE標籤劃分嵌套子語句;標識符信息模型記錄文件中定義的標識符信息,包括所有變量、函數名、類名及標號, 每個標識符生成一個相應的ID子節點;2)語句結構模型的XMLSchema結構如下A.語句類型(CODETYPE):XML中間模型將C++語句類型劃分為76類,使C++語言中的所有語句均有一個唯一的名稱;B.行號(LINENUMBER):系統在檢測出違反安全規則的軟體缺陷後,需要向用戶提供原始碼中違反規則的缺陷所在行號;C.語句文本(C0DETEXT)某些規則的實現需要通過正則表達式分析語句文本,XML中間模型用專門節點標記語句文本;D.子語句(SUBLINES):SUBLINES通常含有大量C0DELINE子節點,代表複合語句中的子語句;3)標識符信息模型用WSDL表示如下A.標識符類型(IDTYPE)可取值包括、量、函數定義、類、類模板共35種類型;B.行號(LINENUMBER):ID的屬性節點,記錄標識符第一次出現的位置;ID含有許多子節點,均作為可選項,是否使用由IDTYPE以及標識符在原始碼中的上下文環境而定;C.名字(NAME)記錄標識符的名稱;D.類型(TYPE)可選子節點TYPE根據IDTYPE的取值不同具有不同的含義,可以使變量聲明的數據類型、函數返回類型或結構類型等;E.存儲類型標識(ST0RETYPE)該節點只應用在變量和函數中,用於記錄變量和函數在聲明時的存儲類別;F.賦值記錄(ASSIGNMENT)記錄變量初始化值以及初始化後的再賦值,記錄項之間使用分號隔開;G.常量(CONST)用於記錄類的成員函數是否是被const修飾的常量成員函數,寫在函數的最後來修飾;XML中間模型中,CONST節點不用於指示普通常量;H.訪問標號(ACCESQ記錄類、結構體和聯合體成員的訪問標號;ACCESS有private、 public、protected 三個取值;I.所屬結構(OWNER):記錄類、結構體、聯合體和命名空間成員的所在類、結構體、聯合體或命名空間的名稱;J.虛函數標記(VIRTUAL)用於指示類成員函數是否是虛函數; K.運算符重載(OPERATE)用於記錄C++中可重載的42種重載操作符; L.參數(PARAMETER)記錄函數定義和聲明的參數信息;函數參數列表的每個參數項都被映射為PARAMETER節點下的一個ID子節點,按參數順序存放;M.域(FIELD)複合語句中定義的變量是局部變量,XML中間模型中使用FIELD記錄這些變量,變量的可見域不超過所屬FIELD塊的作用域;N.基類(PARENT):記錄派生類繼承自哪些基類;PARENT節點有一個用於記錄類派生列表中派生類對每個基類的繼承權限的屬性節點;·0.模板(TEMPLATE)記錄模板定義和聲明的模板參數信息;模板參數列表的每個參數項都被映射為TEMPLATE節點下的一個ID子節點,按參數順序存放。
全文摘要
本發明屬於軟體安全技術領域,涉及一種基於XML中間模型以及缺陷模式匹配的軟體靜態檢測方法。其特徵在於構造基於關係存儲模式的關係語法樹,以及基於XML格式的中間數據存儲模型,經過預處理、詞法分析、語法分析模塊對待檢測的原始碼文件進行解析,提取出程序代碼的所有安全關鍵屬性信息,利用XML生成模塊存儲在XML中間文件中,由漏洞檢測模塊根據規則配置文件,提取規則庫中相應規則,對前端生成的XML中間文件執行規則檢測。
文檔編號G06F11/36GK102339252SQ201110208958
公開日2012年2月1日 申請日期2011年7月25日 優先權日2011年7月25日
發明者周寬久, 湯樂敏, 王喆, 王潔, 袁柱, 賴曉晨, 閆旭 申請人:大連理工大學

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀