新四季網

一種軟體探測器的軟體探測方法

2023-08-09 14:04:36

專利名稱:一種軟體探測器的軟體探測方法
技術領域:
本發明涉及一種軟體探測技術和軟體探測裝置和軟體探測的網絡系統,具體是一種對軟體運行中流程信息進行探測的軟體探測方法和應用該方法的軟體探測器及軟體探測系統。
背景技術:
計算機系統和網絡的大量普及使用使全球跨入了信息化時代。但是,正由於現代社會中幾乎一切都在「計算機化」,如經濟活動(生產、流通、交換、消費)過程中的管理都已完全基於計算機系統在運行,而計算機系統的核心是「軟體」,也就是說都是基於「軟體(程序)」在運行,所以從技術層面來看,如果對這些軟體的運行不能進行有效地檢測和監控,那麼監管就會「缺失」,給國家或全球的金融和社會安全造成隱患。在國內,重要的法制監管領域有十幾個,如金融(銀監、證監、保監),國資,稅務,
財政,審計,安監、電監、環境......等。如果對這些法制監管領域的軟體運行不能有效地
檢測、監控,後果不堪設想。在質檢計量系統中,與人民群眾生活密切相關的加油機、計價秤、計程車計價器等法制計量產品作弊事件頻頻發生。一方面,由於受到軟體技術手段的制約,質量技術監督行政執法人員無法有效獲取相關作弊證據,對不法商販和經營者的處罰缺少依據,在一定程度上損害了廣大消費者的利益;另一方面,由於不法製造商可以通過對軟體進行惡意修改或在軟體中留有「後門」來擴大市場銷路,嚴重違反了公平競爭的原則。法制計量監管網絡的目標是監管使用過程中面上的作弊的情況,主要是要突破和掌握軟體作弊探測(或稱「軟體探頭」或「軟體探測傳感器」)的核心技術。所以,它是從廣度來進行的實時監控和動態監管,好比是現在已經在道路交通、治安防範方面普遍使用的視頻攝像探測監控系統,使得程序的運行由不可見、不可控變成可見又可控。因此在法制計量監管領域,如何探測電子衡器軟體中的「後門程序」和「作弊口令」等特定目標,是本領域的技術難題。在「軟體測試」領域,國內外現有的軟體自動化測試工具,一般都是在程序內部進行故障跟蹤和檢測,沒有將跟蹤、檢測的信息對外傳輸和發送。在「無線傳感網」領域,現有的傳感器往往只能感知常規的「物理量」或「化學量」,不能感知計算機中軟體運行的信息。因此,監管部門無法對軟體進行實時監視。法制計量軟體探測器開發的特點和要求有
I、要能採集並發送計量器具軟體標識信息和傳感器節點標識信息計量器具軟體標識信息,相當於計價秤軟體的電子身份信息(ID-O);軟體探測傳感器節點標識信息也就是標誌軟體傳感器本身的電子身份信息(ID-I)。通過比對可以識別計量器具軟體和軟體探測傳感器節點本身的真偽。
2、要跟蹤並發送計量器具使用時的作弊信息,包括+作弊的時間及數量作弊時間包括年、月、日、時、分、秒;作弊數量、超差比例、等;+作弊的金額包括每次作弊的金額和累計作弊的金額。為執法提供依據;+作弊的口令通過跟蹤分析可以鎖定作弊的密碼;+作弊的責任人包括監控對象的空間坐標點(省、市、區、場所)、身份(組織機構代碼、身份證號),等;+作弊的歷史記錄作弊信息可以全部記錄在案;+實時在線監控如果計量器具脫機(停機、關機、移機,等)、更換晶片或主板,都能立即跟蹤檢測到,並留下記錄。3、要具有計量監控傳感網軟體探測傳感器節點自身的管理、保護和安全功能。

發明內容
本發明所要解決的技術問題是提供一種用於對電子衡器軟體或金融監管軟體中的「後門程序」和「作弊口令」等特定目標進行探測、並將探測得的信息對外傳輸和發送,以使監管部門能實時監視的軟體探測方法和應用該方法的軟體探測器及軟體探測系統。為解決上述技術問題,本發明的軟體探測方法,包括如下步驟A、啟動代碼插裝步驟,該步驟包括虛擬執行被測軟體,即對被測軟體的程序原始碼進行詞法分析和語法分析,以識別出特徵代碼,該特徵代碼包括變量、函數、子程序和面向對象的類;然後對所述程序原始碼的程序流程按數據塊進行劃分,以得到表述所述被測軟體的程序結構和靜態流程的劃分數據並存入一靜態資料庫中,同時該靜態資料庫預存有根據被測軟體的功能說明書得到的正常程序結構和靜態流程;然後在所述程序原始碼中插入對應於所述特徵代碼的探測代碼;最後把插入了所述探測代碼的程序原始碼編譯連結成可執行程序;所述探測代碼為一段代碼或函數,用於收集所述可執行程序運行時生成的動態數據;該動態數據包括函數、子程序的調用記錄,面向對象的類的消息傳遞,以及由所述函數、子程序的調用記錄和面向對象的類的消息傳遞構成的所述被測軟體運行時的程序結構和控制流程;B、執行模式識別步驟,該步驟用於對所述可執行程序執行模型檢測,即將所述靜態資料庫中預存的正常程序結構和靜態流程與所述探測代碼獲取的被測軟體運行時的程序結構和控制流程進行比較;若二者一致,則判斷所述可執行程序正常;否則,則判斷所述可執行程序中存在「特殊的結構」或「漏洞」;所述「特殊的結構」是指與被測軟體的功能說明書不相關的變量、函數、子程序或類的消息傳遞;所述「漏洞」是指根據被測軟體的功能說明書被測軟體中缺少應有的變量、函數、子程序或類的消息傳遞;C、當發現存在「特殊的結構」或「漏洞」後,執行模式分析步驟,該步驟用於分析所述可執行程序的控制流程,以找出並上報引起「特殊的結構」或「漏洞」的代碼執行軌跡;該代碼執行軌跡是由引起執行「特殊的結構」或「漏洞」的一系列代碼的集合所構成的程序流程;D、執行數據處理與傳輸步驟,該步驟用於根據所述代碼執行軌跡,得出被測軟體存在「特殊的結構」和/或「漏洞」的信息、及其運行的時間信息和運行次數,然後通過無線、或有線的方式,傳輸到監管節點和/或監管網絡。所述探測代碼用於程序模塊的結構化分析;故障跟蹤和錯誤處理;多線程分析(例如判斷死鎖和共享衝突等);程序執行效率分析(例如瓶頸分析等);初始化節點、構造鍊表,形成被測程序運行所需要的數據結構。所述控制流程是指虛擬執行被測軟體,即對被測軟體的程序原始碼進行詞法分析和語法分析,識別出特徵代碼,然後對所述程序原始碼的控制流按塊進行劃分,得到所述被測軟體的程序劃分數據的流程。所述靜態流程是指把插入了所述探測代碼的程序原始碼編譯連結成可執行程序;運行該可執行程序得到的被測軟體運行時的程序流程。 所述程序流程也即靜態流程。為解決上述技術問題,本發明的應用上述軟體探測方法的軟體探測器,包括與用於執行所述可執行程序的處理器相連的探測控制器、與探測控制器相連的無線數據收發器和/或有線數據收發器;當所述探測控制器發現存在「特殊的結構」和/或「漏洞」後,執行所述模式分析步驟,然後將被測軟體存在「特殊的結構」和/或「漏洞」的信息、及該「特殊的結構」和/或「漏洞」運行的時間信息和運行次數經所述無線數據收發器和/或有線數據收發器傳送至所述監管節點和/或監管網絡。為解決上述技術問題,本發明的應用上述軟體探測器的軟體探測系統,包括作為所述監管節點的上位機、與分布於不同地域的多個所述上位機相連的監管伺服器系統;所述上位機用於與同地域內的多個所述軟體探測器通過無線和/或有線的方式通信連接。為解決上述技術問題,本發明的軟體探測系統的軟體平臺總體設計採用層次模型,把軟體系統分層,從而限制系統變化帶來的影響。每一層可以單獨的設計,單獨的演進、升級。這就大大提高了系統的靈活和穩定性,可以應付廣泛的需求變化。層次模型最基本的是三層模型,包含展示層、邏輯層和數據層。展示層是一個消息通道,邏輯層提供的應該是一個現實映像,數據層提供現實系統的測量。應用系統的邏輯模型同樣體現這樣的特點,它包含了展示、數據和應用邏輯的大的層次。一般而言,典型的軟體系統的分層自下向上依次是數據層、數據維護層、數據語義層、通信層、應用邏輯層、展示邏輯層、展示層。這樣的系統體現了層次模型的靈活性和穩定性。數據層可以使用各種格式的數據;數據維護層則需要對每一種數據的邏輯存儲形式進行維護,保證數據的質量;數據語義層則非常的靈活,可以從多個數據源進行數據的抽取,拼合和處理,來共同完成語義的要求。通信層通信控制模塊控制應用對於數據的訪問,也支持對於其他應用模塊的訪問。這裡包括了權限檢查、資源調度、事件機制等等;應用邏輯層通過通信控制模塊得到語義層提供的符合語義要求的信息。在語義層以下,系統處理的都是數據,而過了語義層就成為了信息。全部的信息都被應用層所使用,在這裡保存全部的處理邏輯和應用邏輯;展示邏輯層這裡決定對於某類訪問,應該使用什麼方式進行展示,哪些信息需要展示;
展示層真正的和客戶或者客戶系統進行交互。從應用邏輯層以上,邏輯信息變成了交互信息,在這裡可以發生編碼、解碼、加密、解密等處理。同時,會依據客戶的展示邏輯,加載模板和交互信息進行合併處理等等,最終以適當的方式在展示層顯示給客戶。軟體探測系統的軟體平臺總體架構與一般的多層架構的軟體系統相比較,特點主要在底層,即數據層。與現有技術相比,本發明具有以下優點(I)本發明的軟體探測方法實現了對應用軟體在運行中的程序流程信息的實時探測,在對被測軟體進行代碼插裝後,通過模型檢測,判斷是否存在「特殊的結構」或「漏洞」,並找出代碼執行軌跡,然後將所述程序流程信息進行處理,最後採用無線或有線方式將此信息傳送到監管節點或監管網絡。 (2)本發明在法制監管領域可以對計算機系統內部運行的軟體進行實時監控,可以快速檢測到真實的數據和信息。如,可以組成法制計量監控網絡對計量器具使用中的「後門程序」和「作弊口令」等特定目標進行探測和實時監視,為執法打假快速反應提供服務和支撐;能對法制監管領域的軟體運行進行探測、並將探測得的信息對外傳輸和發送,以使監管部門能進行實時監控和監管。(3)本發明的軟體探測系統綜合了軟體探測技術、嵌入式計算技術、現代網絡及無線通信技術、分布式信息處理技術等,能夠探測軟體運行的信息,通過嵌入式系統對信息進行處理,並通過通信網絡將探測的軟體運行信息傳送到監管層或監管中心。(4)軟體探測器採用的無線數據收發器,是基於TD或GSM的數據傳輸模塊,它由射頻天線、內部快閃記憶體、TD或GSM基帶處理器、匹配電源和Zip插座組成。其中TD或GSM基帶處理器是核心部件,用來處理外部系統通過串口發送過來的AT指令。它的外部集成了標準RS232接口、電源接口、模擬音頻輸入輸出接口和SM卡,只要將其串口與PC或單片機的串口相連,就可以用AT命令對它進行設置,其通信速率為9600bps。目前移動通信的信號幾乎實現了無縫覆蓋,因此,利用其完備的網絡進行數據傳輸就成為應用的熱點。採用AT指令進行單片機與手機模塊間的通信設置,選擇以數據、文本等格式的短消息通信方式,這樣可隨時進行可靠的通信,並可以節省無線傳輸的成本和網絡維護開支。也可以採用其他無線數據收發方式,例如調頻、脈衝信號等。


圖I為實施例中的軟體探測器的示例性結構圖;圖2為實施例中的代碼插裝子系統的示例性結構圖;圖3為實施例中的軟體探測器的結構原理圖;圖4為實施例中的軟體探測系統的硬體平臺總體架構圖;圖5為實施例中的軟體探測系統的軟體平臺邏輯層次架構圖; 圖6為實施例中的在執行SUM-PRO. exe之前,代碼跟蹤次數為0的程序執行示意圖;圖7為實施例中的跟蹤數據被自動地更新的程序執行示意圖。
具體實施方式
下面結合圖1-5對本發明作進一步說明。(實施例I)本發明的軟體探測方法,包括如下步驟A、啟動代碼插裝步驟,該步驟包括虛擬執行被測軟體,即對被測軟體的程序原始碼進行詞法分析和語法分析,以識別出特徵代碼,該特徵代碼包括變量、函數、子程序和面向對象的類;然後對所述程序原始碼的程序流程按數據塊進行劃分,以得到表述所述被測軟體的程序結構和靜態流程的劃分數據並存入一靜態資料庫中,同時該靜態資料庫預存有根據被測軟體的功能說明書得到的正常程序結構和靜態流程;然後在所述程序原始碼中插入對應於所述特徵代碼的探測代碼;最後把插入了所述探測代碼的程序原始碼編譯連結成可執行程序;所述探測代碼為一段代碼或函數,用於收集所述可執行程序運行時生成的動態數據;該動態數據包括函數、子程序的調用記錄,面向對象的類的消息傳遞,以及由所述函數、子程序的調用記錄和面向對象的類的消息傳遞構成的所述被測軟體運行時的程序結構和控制流程;B、執行模式識別步驟,該步驟用於對所述可執行程序執行模型檢測,即比較所述靜態資料庫中預存的正常程序結構和靜態流程與所述探測代碼獲取的被測軟體運行時的程序結構和控制流程是否一致;若二者一致,則判斷所述可執行程序正常;否則,則判斷所述可執行程序中存在「特殊的結構」或「漏洞」;所述「特殊的結構」是指與被測軟體的功能說明書不相關的變量、函數、子程序或類的消息傳遞;所述「漏洞」是指根據被測軟體的功能說明書被測軟體中缺少應有的變量、函數、子程序或類的消息傳遞;C、當發現存在「特殊的結構」或「漏洞」後,執行模式分析步驟,該步驟用於分析所述可執行程序的控制流程,以找出並上報引起「特殊的結構」或「漏洞」的代碼執行軌跡;該代碼執行軌跡是由引起執行「特殊的結構」或「漏洞」的一系列代碼的集合所構成的程序流程;D、執行數據處理與傳輸步驟,該步驟用於根據所述代碼執行軌跡,得出被測軟體存在「特殊的結構」和/或「漏洞」的信息、及其運行的時間信息和運行次數,然後通過無線或有線的方式,傳輸到監管節點和/或監管網絡。所述的代碼插裝步驟還包括建立在進行所述語法分析時生成的用於記錄並保存在所述可執行程序運行時產生的所述動態數據的動態資料庫文件,包括DD文件,用於記錄在所述可執行程序運行時各記錄點即所述特徵代碼的累計運行次數、最後一次運行次數、以及運行時間信息;DDC文件,用於記錄在所述可執行程序運行時各判斷、條件曾經為真或者為假的數據;DDH文件,用於記錄在所述可執行程序運行時各個記錄點對應的程序語句是否運行過的歷史數據。所述在進行詞法分析時,讀入需要插裝的原始碼文件,識別出終結符(Token)和語義動作所需要的信息(如行號、Token的偏移量等),並傳給語法分析器。同時,詞法分析器還將終結符存入符號表;Hash方法是一種在查表、填表兩方面都能高速進行的技術。因此,通常採用Hash技術來組織的符號表為Hash符號表;語法分析器識別分析的源程序的語法,在定義的插裝點上插入代碼,並生成各種動態資料庫文件DD文件、DDH文件和DDC文、件。在動態運行過程中,源程序的運行情況就記錄在這些文件中。下面以C語言為例,對源程序的代碼插裝子系統100進行描述(I)分析C代碼工程文件(* mak),獲得所有的C源文件;(2)對於每一個C源程序文件>分析源程序結構,生成DD文件、DDH文件和DDC文件;>分析源程序結構,生成插裝信息鍊表InstrChain ;>根據插裝信息鍊表插裝源程序+插裝源程序文件頭部+插裝函數頭部+插裝條件表達式+插裝流程控制語句+插裝標號語句>統計標號後代碼的執行次數,統計數據將保存到DD文件裡。>添加公用模塊_hua. bas,用於聲明全局變量和對DLL中函數引用。>修改工程文件,將_hua. bas添加到工程文件中。(3)以對條件表達式a I |b && c的插裝為例,該條件表達式即為特徵代碼,其在插裝前為a| |b && c插裝後 (((a) (—HUA_local_>con
I =Oxcc注 I,I):(—HUA_local->con
| = 0x3注 2,0)) | | ((b) (—HUA_local_>con[l] I =Oxcc注 3,I):(—HUA_local_>con[l] I = 0x3注 4,0))&&((c)) (—HUA_local_>con[2] I =Oxcc注 5,I):(—HUA_local_>con[2] I = 0x3注 6,0)) (—HUA_local_>con[3] I =Oxcc注 7,I):(—HUA_local_>con[3] I = 0x3注 8,0)注Ia曾為true。注2a曾為false。注3b曾為true。注4b曾為false。注5c曾為true。注6c曾為false。注7整個aI I b&&c曾為true。注8整個aI I b&&c曾為false。所述代碼插裝步驟中,在識別出特徵代碼時,同時生成插裝信息鍊表;然後根據該插裝信息鍊表在所述程序原始碼中插入對應於所述特徵代碼的探測代碼;所述根據插裝信息鍊表插裝源程序的位置包括插裝源程序文件頭部、插裝函數頭部、插裝條件表達式、插裝流程控制語句和插裝標號語句。下面以VB語言為例,對模式分析步驟中識別出特徵代碼時生成的插裝信息鍊表進行描述(I)主要功能C++語言的模式分析子系統是用靜態庫程序實現的。靜態庫程序的作用是處理有關對文件的操作,包括檢查文件的存在與否、將內存中的統計數據寫入文件等。由於VB語言調用動態連結庫相對比較方便,VB語言的模式分析子系統是用動態連結庫實現的。動態連結庫程序的作用是初始化節點、構造鍊表,形成被分析程序運行所需要的數據結構。首次調用動態連結庫時,掛上被分析程序退出時要執行的函數。 檢查用來保存統計數據的文件存在與否。將內存中的統計數據寫入文件。(2)動態連結庫的進入和退出在Windows作業系統中,調用動態連結庫有一個特性可以利用,這就是在調用動態連結庫的程序或線程退出運行時,會釋放對動態連結庫的引用,在動態連結庫中可以獲知這一事件,進行退出時用戶指定的操作。對插裝程序來說,在程序退出時,應進行的操作是調用庫函數將內存中的數據寫入文件中。另外一種獲知被分析程序退出、進行退出時用戶指定的操作的方法是象C++語言那樣,將退出時要執行的函數掛在退出執行的函數鏈上,不過這個操作是被分析程序首次調用動態連結庫函數時(Process attach),由動態連結庫完成的,具體做法如下
BOOL APIENTRY DlIMain (HANDLE hModule,DWORDul_reason-for_calI, LPYOID IpReserved)
{
switch(ul-reason_for_calI)
{
case DLL-PROCESS.ATTACH:
{//將函數UpDateRunResult掛在退出執行的函數鏈上 static int HasHooked = 0; if (!HasHooked) atexi t (UpdateRunRusul t);
};
case DLL-THREAD-ATTACH: case DLL-THREAD-DETACH: case DLL-PROCESS.DETACH:
}
return TRUE;
}
(3)輸出函數介紹RegistLocalNode 註冊本地節點,主要操作為分配一個節點的內存,根據傳入的參數分配文件路徑名的內存,分配覆蓋探測數組和條件探測數組的內存,將節點鏈在探測數據節點鏈上,返回分配的節點的內存地址。函數聲明如下HUADLL_API struct _03HUA_record*_stdcalI RegistLocalNode(
char*src_file, char氺ddfile, char氺confile,int rp_no, unsigned int con_num, unsigned int deci_rp_num)SetCurrentDD 告訴動態連結庫當前運行的源程序文件,參數—HUA_local為註冊時返回的節點地址。函數聲明為HUADLL_API void _stdcalI SetCurrentDD(struct__03HUA_record*__HUA_local);CountRP 累計覆蓋探測點,參數pNode為覆蓋探測數組所在節點地址,No為探測點的編號,即數組元素的編號。函數聲明為HUADLL_API void _stdcall CountRP(struct —03HUA_record*pNode, unsignedint No);Count CP 統計條件探測點,參數pNode為條件探測數組所在節點地址,No為探測點的編號,即數組元素的編號,Cond為條件。函數聲明為HUADLL_API void_stdcall CountCP(struct —03HUA_record*pNode, unsigned int No, bool Cond);所述模式識別類型分析包括正常類型的模式識別和特定類型的模式識別。所述正常類型的模式識別用於對所述可執行程序執行模型檢測,即將所述靜態資料庫中預存的正常程序結構和靜態流程與所述探測代碼獲取的被測軟體運行時的程序結構和控制流程進行比較,以判斷所述可執行程序中存在程序結構和控制流程是否正常。所述特殊類型的模式識別用於對所述可執行程序執行模型檢測,即將所述靜態資料庫中預存的正常程序結構和靜態流程與所述探測代碼獲取的被測軟體運行時的程序結構和控制流程進行比較,以判斷所述可執行程序中是否存在「特殊的結構」和「漏洞」。所述「特殊的結構」是指與被測軟體的功能說明書不相關的變量、函數、子程序或類的消息傳遞;所述「漏洞」是指根據被測軟體的功能說明書被測軟體中缺少應有的變量、函數、子程序或類的消息傳遞。在插裝的代碼中就包含有插入代碼的特徵信息的編碼,讀取該編碼並進行解碼就可以還原插裝代碼的特徵信息。所述模式識別的步驟包括程序節點探測模式分析和程序段探測模式分析,用於對所述程序原始碼的程序流程按數據塊進行分析,然後劃分出所述數據塊。所述程序節點探測模式分析包括判斷的入口點和出口點、if. . . else語句中的else的入口點和出口點、連接的入口點和出口點、以及程序單元的入口點和出口點;
所述程序段探測模式分析是指兩個連續的程序分支點間的程序語句序列;所述程序分支點包括程序節點、以及無條件轉移語句與下一條語句之間的位置;所謂無條件轉移語句,以C++語言為例,就是goto語句、return語句、break語句和continue語句等這類語句。在模式識別時,在內存中一個程序的每一個包含函數的源程序文件均對應了一個節點,節點的數據結構為
s truct--03HUA_record {
char *src_fHe; //被插裝的源程序文件的名稱和完全路徑 char *ddf He; //對應於被插裝的源程序文件的dd文件名和路徑 char *conf He; //對應於被插裝的源程序文件的ddc文件名和路徑 int *rp_covlist; //指向被插裝的源程序的覆蓋探測點統計數組 int rp—no;//被插裝的源程序的覆蓋探測點個數(對應一個源文件) unsigned char *con;//指向被插裝源程序條件探測點運行統計數組 unsigned int con—num;//被插裝源程序條件探測點的個數(對應一個 源文件)
unsigned int deci—num ;//被插裝的源程序的條件的個數(對應一個源文件)
int f ile-used.mark; //被插裝的源程序所在源文件曾經運行的標誌 int pc;//被插裝的源程序的邏輯計數器
struct --03HUA_record *next;//指向下一個源文件節點地址 };以下通過插入探測代碼探測if語句為例一、在沒有插裝探測代碼前的if語句原始碼程序如下
權利要求
1.一種軟體探測方法,其特徵在於包括如下步驟 A、啟動代碼插裝步驟,該步驟包括虛擬執行被測軟體,即對被測軟體的程序原始碼進行詞法分析和語法分析,以識別出特徵代碼,該特徵代碼包括變量、函數、子程序和面向對象的類;然後對所述程序原始碼的程序流程按數據塊進行劃分,以得到表述所述被測軟體的程序結構和靜態流程的劃分數據並存入一靜態資料庫中,同時該靜態資料庫預存有根據被測軟體的功能說明書得到的正常程序結構和靜態流程;然後在所述程序原始碼中插入對應於所述特徵代碼的探測代碼;最後把插入了所述探測代碼的程序原始碼編譯連結成可執行程序;所述探測代碼用於收集所述可執行程序運行時生成的動態數據;該動態數據包括函數、子程序的調用記錄 ,面向對象的類的消息傳遞,以及由所述函數、子程序的調用記錄和面向對象的類的消息傳遞構成的所述被測軟體運行時的程序結構和控制流程; B、執行模式識別步驟,該步驟用於對所述可執行程序執行模型檢測,即將所述靜態資料庫中預存的正常程序結構和靜態流程與所述探測代碼獲取的被測軟體運行時的程序結構和控制流程進行比較;若二者一致,則判斷所述可執行程序正常;否則,則判斷所述可執行程序中存在「特殊的結構」或「漏洞」;所述「特殊的結構」是指與被測軟體的功能說明書不相關的變量、函數、子程序或類的消息傳遞;所述「漏洞」是指根據被測軟體的功能說明書被測軟體中缺少應有的變量、函數、子程序或類的消息傳遞; C、當發現存在「特殊的結構」或「漏洞」後,執行模式分析步驟,該步驟用於分析所述可執行程序的控制流程,以找出並上報引起「特殊的結構」或「漏洞」的代碼執行軌跡;該代碼執行軌跡是由引起執行「特殊的結構」或「漏洞」的一系列代碼的集合所構成的程序流程; D、執行數據處理與傳輸步驟,該步驟用於根據所述代碼執行軌跡,得出被測軟體存在「特殊的結構」和/或「漏洞」的信息、及其運行的時間信息和運行次數,然後通過無線或有線的方式,傳輸到監管節點和/或監管網絡; 所述控制流程是指虛擬執行被測軟體,即對被測軟體的程序原始碼進行詞法分析和語法分析,識別出特徵代碼,然後對所述程序原始碼的控制流按塊進行劃分,得到所述被測軟體的程序劃分數據的流程; 所述靜態流程是指把插入了所述探測代碼的程序原始碼編譯連結成可執行程序;運行該可執行程序得到的被測軟體運行時的程序流程; 所述代碼插裝步驟中,在識別出特徵代碼時,同時生成插裝信息鍊表;然後根據該插裝信息鍊表在所述程序原始碼中插入對應於所述特徵代碼的探測代碼;所述根據插裝信息鍊表插裝源程序的位置包括插裝源程序文件頭部、插裝函數頭部、插裝條件表達式、插裝流程控制語句和插裝標號語句; 程序節點探測模式分析和程序段探測模式分析,用於對所述程序原始碼的程序流程按數據塊進行分析,然後劃分出所述數據塊; 所述程序節點探測模式分析包括判斷的入口點和出口點、if*「else語句中的else的A口點和出口點、連結的入口點和出口點、以及程序單元的入口點和出口點; 所述程序段探測模式分析是指兩個連續的程序分支點間的程序語句序列;所述程序分支點包括程序節點、以及無條件轉移語句與下一條語句之間的位置。
2.一種應用上述權利要求I所述的軟體探測方法的軟體探測器的工作方法,其特徵在於軟體探測器包括與用於執行所述可執行程序的處理器相連的探測控制器、與探測控制器相連的無線數據收發器和/或有線數據收發器; 當所述處理器發現存在「特殊的結構」和/或「漏洞」後,執行所述模式分析步驟,然後將被測軟體存在「特殊的結構」和/或「漏洞」的信息、及該「特殊的結構」和/或「漏洞」運行的時間信息和運行次數傳送至所述探測控制器,探測控制器通過所述無線數據收發器和/或有線數據收發器將所述被測軟體存在「特殊的結構」和/或「漏洞」的信息、及其運行的時間信息和運行次數傳送至所述監管節點和/或監管網絡。
3.一種應用上述權利要求2所述的軟體探測器的軟體探測系統,其特徵在於包括作為所述監管節點的上位機、與分布於不同地域的多個所述上位機相連的監管伺服器系統;所述上位機用於與同地域內的多個所述軟體探測器通過無線和/或有線的方式通信連接。
全文摘要
本發明涉及一種軟體探測方法和應用該方法的軟體探測器及軟體探測系統。所述軟體探測方法用於對應用軟體在運行中的程序流程信息的實時探測,在對被測軟體進行代碼插裝後,通過模型檢測判斷是否存在「特殊的結構」或「漏洞」,並找出代碼執行軌跡,然後將程序流程信息採用無線或有線方式將此信息傳送到監管節點或監管網絡。本發明在法制監管領域可以對計算機系統內部運行的軟體進行實時監控。本發明的軟體探測系統構成法制計量監控網絡,對計量器具的使用進行監控,為執法打假快速反應提供服務和支撐。能對電子衡器軟體或金融監管軟體中的「後門程序」和「作弊口令」等特定目標進行探測、並將探測得的信息對外傳輸,以使監管部門實時監視。
文檔編號G06F11/36GK102646068SQ201210054220
公開日2012年8月22日 申請日期2010年4月13日 優先權日2010年4月13日
發明者吳華芳, 張克東, 張溟 申請人:常州雲博軟體工程技術有限公司

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀