999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于數據截獲和欺騙式注入的通用記錄重演方法

2017-06-27 08:10:42姚小強劉昌云郭相科
計算機應用 2017年4期
關鍵詞:進程方法

姚小強,劉昌云,郭相科

空軍工程大學 防空反導學院,西安 710051)(*通信作者電子郵箱icemissile@sina.com)

基于數據截獲和欺騙式注入的通用記錄重演方法

姚小強,劉昌云*,郭相科

空軍工程大學 防空反導學院,西安 710051)(*通信作者電子郵箱icemissile@sina.com)

針對傳統記錄重演方法存在同報文格式相關、需要被控程序緊密配合及數據傳輸效率低等問題,提出了一種基于數據截獲與欺騙方式實現的通用記錄重演解決方案。首先,利用Winsock2 服務提供者接口技術,實現了網絡數據的自動截獲;其次,采用內存映射文件技術解決了數據共享和高速存取問題;最后通過向用戶程序發送偽消息激發其讀數據動作,完成數據注入。實際應用表明,新方法避免了數據的網絡傳輸,無需被重演程序配合且與系統報文無關,能夠完成10倍速度的流暢重演,普適于分布式仿真與模擬訓練系統。

服務接口提供者接口;數據截獲;欺騙注入;記錄重演;內存映射文件

0 引言

數據記錄與重演技術在網絡安全、軟件自動化測試、模擬訓練等領域具有廣泛的需求[1-3]。在模擬訓練領域,記錄重演常用于分布式訓練系統,一般通過專用軟件和專用接口,在被重演系統的配合下接收和回傳網絡數據。由于其采用了集中式的數據收集方法,造成運行時通信數據量巨大,特別是當系統加速重演時,將不可避免地造成網絡丟包(使用UDP協議)或處理效率下降(使用TCP協議),從而不得不采用區分關鍵和非關鍵報文的方法進行報文篩選,以減小數據流量[1-2]。因此,傳統的數據記錄與重演解決方案,存在同報文格式相關、需要被控程序緊密配合及數據傳輸效率低等問題,造成其通用性和可移植性差。

如今,網絡報文封包攔截方法得到了廣泛研究與應用,可實現非合作應用的報文自動截獲,甚至可實現過濾、修改等操作[3-7]。網絡封包攔截實現方式分為用戶級和內核級兩類,其中內核級主要是通過傳輸驅動程序接口(Transfer Driver Interface, TDI)和網絡驅動接口規范(Network Driver Interface Specification, NDIS)中間層過濾驅動程序等實現[4-5],而用戶級主要通過復用端口、Winpcap或者WinSock2服務提供者接口(Service Provider Interface,SPI)等實現。其中內核級的方法同硬件密切相關,使得其使用范圍受限,而IP復用方法、SPI方法、Winpcap方法僅能完成數據截獲而無法實現數據干預(過濾或注入)[6-7]。

本文在SPI技術的基礎上,提出了“欺騙式”的網絡數據注入方法,通過給被控程序發送“偽消息”,迫使被控程序產生讀數據請求,從而實現了數據的注入,采用內存映射文件技術解決了數據共享和大數量的高速存取問題。與傳統方法不同,本文方法采用了分布式記錄重演解決方案,進一步提高了數據記錄和重演的效率,并對方案進行了實現,驗證了本文方法的有效性。

1 分布式記錄重演解決方案

本文設計的分布式數據記錄重演系統體系結構如圖1所示。

圖1 分布式數據記錄重演系統的體系結構

系統由一個控制端和若干個客戶端組成,控制端程序用于協調多個客戶端的統一工作,客戶端程序同用戶程序直接交互,可在無需用戶程序配合的情況下,通過截獲的方法獲取網絡數據,通過欺騙式注入的方法驅動用戶程序的重演。客戶端和控制端之間通過TCP/IP協議交互數據。

相對于傳統解決方法,本文系統具有以下明顯優勢:

1)以分布式處理代替集中式處理,減少單個客戶端處理數據量,提高了數據的處理效率;

2)將網絡數據驅動改為本地化數據驅動,避免了數據的網絡傳輸,進而避免丟包;

3)通過截獲和欺騙的方式實現重演,無需被重演程序配合,減小了同用戶程序之間的耦合度,增強本系統的可移植性。

客戶端的實現是本系統的關鍵,本文基于SPI技術設計客戶端程序,完成對用戶程序的網絡狀態監控和數據截獲,基于此技術實現記錄和重演還需要解決以下關鍵技術:

1)網絡數據的受控注入。雖然SPI技術可實現網絡數據的截獲、過濾甚至篡改等操作[8],但從本質上講,SPI僅是網絡數據傳遞鏈里的一層,無法直接利用SPI技術,控制數據輸入用戶程序的時機,只有當用戶程序發起讀取請求后,才可使用SPI對其接收數據內容進行干預。因此,無法實現數據的受控注入,也就無法實現重演。

2)進程數據同步和大數據處理。SPI程序以動態鏈接庫形式存在,通過向操作系統注冊、安裝,可以在用戶程序打開網絡端口時,自動被系統WS2_32.dll調用。雖然SPI 程序在磁盤上僅存在一份,但卻被操作系統加載至不同內存空間(Win32內存管理)。因此,在監控多個進程時,實質上必須完成多個進程間的數據共享和同步。另外,在仿真系統中,經常需要記錄動輒幾GB甚至幾十GB的文件,實現數據的高速讀寫是必須解決的問題。

2 欺騙式數據注入

2.1 欺騙注入的原理

正常情況下,數據到達網卡后,由網卡產生中斷,通知操作系統,由操作系統通知相應的用戶程序數據到達,用戶程序經SPI動態鏈接庫(Dynamic Link library, DLL)獲取網絡數據。而在分布式記錄重演解決方案中,重演的數據來源為本地記錄文件且數據不經過網絡傳輸,因而用戶程序無法獲得數據到達的通知,也就無法產生讀數據動作。為刺激用戶程序響應數據,采用了欺騙式注入數據的方法,其原理如圖2所示。

欺騙式數據注入即是使用SPI控制程序代替操作系統,向用戶程序發送“偽消息”(數據到達通知),刺激用戶程序進行讀數據調用,SPI DLL則截獲該調用,并經由SPI控制程序獲取記錄文件數據,輸入至用戶程序,從而實現不經過網卡的欺騙式的數據注入。該方法可大大提高數據輸入效率,對于用戶程序而言,其從接收數據到達通知到讀消息的過程同正常接收網絡數據完全一致。

圖2 欺騙式數據注入原理

2.2 用戶程序的“偽消息”欺騙

成功欺騙用戶程序必須滿足兩個條件:

1)依據不同的網絡I/O模型,構造不同的“偽消息”;

2)滿足用戶應用的校驗。

條件1)的解決方案:Winsock IO模型可分為Select、AsyncSelect及EventSelect三種,由用戶程序在端口(Socket)開啟時進行指定,可由SPI DLL截獲該操作以進行判定;此外SPI DLL還需對其中的關鍵參數進行記錄,以正確構造相應“偽消息”。在AsyncSelect模型中,記錄的參數包括:接收消息的窗口句柄、消息號和Socket編號等,此模型所使用的“偽消息”即為Windows 系統消息,SPI控制程序獲取構成這些消息的關鍵字段后,可通過PostMessage或SendMessage函數通知用戶程序有數據到達,從而激發其數據讀取操作。

條件2)的解決方案:數據校驗是用戶程序在獲得正確消息刺激后向SPI DLL發送讀數據請求前所采取的動作,是系統驗證消息的操作,如果不能通過該驗證,用戶程序就將中斷數據讀取。由于發送“偽消息”時,對應的網絡端口很可能并不存在數據,這將導致校驗失敗。因此,滿足此驗證是數據注入的前提條件。可用SPI DLL對該驗證操作進行截獲,并強制返回用戶程序期待的結果。AsyncSelec模型中的數據校驗是通過調用API函數select實現,如下:

nReady=select(0,&fds,NULL, NULL, &timeout);

該函數中可對準備好的端口數nReady和數據超時信息timeout進行校驗,當實際存在網絡數據時nReady應大于或等于1,timeout應小于一定的預設值。采用“偽消息”欺騙時,若不對該過程進行干預,nReady通常情況將返回0,這將導致校驗失敗,用戶程序就會將“偽消息”作為一個錯誤信息丟棄,并不啟用實際的數據讀取過程。由SPI的原理可知,select函數將觸發SPI函數WSPSelect,因此可通過WSPSelect函數截獲該驗證,并返回用戶程序的期待值。本例中,設置nReady為1,timeout為0即可。滿足該校驗后,用戶程序即進入數據獲取流程。可通過SPI DLL中截獲WSPRecv或者WSPRecvFrom兩個函數,完成欺騙式的數據注入。

2.3 欺騙式數據注入的控制

在實現用戶程序“偽消息”欺騙的基礎上,為了使數據能以嚴格的邏輯輸入用戶程序,需要進行如下操作:

1)建立閉環的注入控制網絡。

建立閉環的注入控制網絡,即使SPI控制程序能夠獲得當前報文被成功輸入用戶程序的標志,從而使得用戶程序能夠準確可靠地輸入后續報文。該標志可以通過SPI DLL截獲用戶程序對Receive或ReceiveFrom兩個函數調用實現。待函數執行成功后,SPI DLL將讀取成功標志反饋給SPI控制程序,SPI控制程序收到該標志后,再輸入下一條報文;否則報文輸入速度可能超出用戶程序的實際處理能力,導致用戶程序直接丟棄該報文或卡頓,造成輸入邏輯的混亂。建立閉環注入控制網絡同時還可以保證必要情況下以盡可能高的速率將數據輸入用戶程序,從而實現“極速”重演。

2)操作系統網絡數據到達通知的阻斷。

重演狀態下,正常網絡數據依然能夠不受影響地到達網卡,從而刺激操作系統向用戶程序發送正常數據到達通知,這將擾亂欺騙式注入的過程,因此,需設法阻斷用戶程序接收該通知消息。在重演開始時,由SPI控制程序向用戶程序發送“偽消息”,刺激其對SPI DLL進行調用, SPI DLL截獲該調用,并在對應端口的消息訂閱中取消FD_READ消息,這樣正常網絡數據到達時,操作系統將不再通知用戶程序。取消該通知后,用戶程序僅能接收到 “偽消息”,從而實現報文和偽消息的一一對應,正常的網絡數據被SPI DLL丟棄。當切換至記錄狀態時,采用同樣的方法,重新對FD_READ進行訂閱,用戶程序即可正常接收網絡數據。

3 進程數據同步和大數據處理

3.1 進程數據同步實現

由于SPI DLL可能被多個用戶進程加載,因此客戶端實際運行于n+1個進程空間(n為用戶進程數量,1為SPI控制程序所在進程)。及時高效的進程數據共享和大數據量條件下的快速訪問是必須解決的問題,而使用內存映射文件是解決以上兩個問題的最有效方法[9-12]。

本文設計了基于內存映射文件技術實現的數據交互系統如圖3所示。

圖3 進程數據交互架構

系統圍繞SPI DLL核心模塊,設置了3個內存映射文件。分別是主存儲內存映射文件、數據信息內存映射文件和交互信息內存映射文件。

主內存映射文件同磁盤文件關聯,用來完成大文件的讀寫控制;數據信息內存映射文件為順序存儲結構以文件頭、節點、數據的格式存儲進程收到的報文,不關心具體的報文格式,為多個用戶程序共享;交互信息內存映射文件是SPI DLL和記錄重演主進程間交換信息的通道,存儲除數據信息以外的其他所有交互信息,主要包括用戶程序的進行信息、報文讀取狀態信息和向SPI DLL發送的指令信息三類。

記錄狀態下SPI DLL截獲網絡數據,寫入數據信息內存映射文件,并實時更新寫入狀態至交互信息內存映射文件,由記錄重演主進程讀取該狀態標志,并完成由數據信息內存映射文件向主存儲內存映射文件的數據搬移,最終將數據輸出磁盤文件。

重演狀態下,記錄重演主進程首先指示SPI DLL阻斷用戶程序其他報文,而后由主內存映射文件讀入磁盤文件,依據數據內節點信息區分進程,在發送“偽消息”進行欺騙的同時將數據搬移至數據信息內存映射文件,用戶程序在數據讀取完畢后,將狀態信息寫入交互信息內存映射文件,記錄重演主進程讀取該標志,進入下個節點數據處理。所有數據處理完畢后解除阻斷。

3.2 大數據處理方法

內存映射文件實現大數據處理,實質上是使用Win32的內存管理機制,由操作系統按照“頁管理”的模式進行內存和磁盤數據的布局和更新,從而盡可能地提高數據存取效率。本文中大數據處理由主內存映射文件完成,主要執行以下操作:

1)用CreateFileMapping()函數創建或打開一個文件內核對象,該對象用于標志用作內存映射文件的磁盤文件,該函數返回一個文件映射句柄供后面的操作用;

2)用OpenFileMapping()打開一個內存映射文件對象;

3)用MapViewOfFile()或者MapV iewOfFileEx()將文件映射對象的全部或一部分映射到進程地址空間中。

記錄重演主程序根據系統數據調度,負責映射段管理,文件映射后即可通過指針方式訪問具體數據。內存映射文件使用完畢后,通過以下操作斷開映射:

1)用UnmapViewOfFile()在進程的地址空間中撤銷文件映射內核對象的映射;

2)FlushViewOfFile(),關閉文件映射內核對象;

3)CloseHandle(),關閉文件內核對象。

3.3 讀取效率仿真分析

通過截獲某模擬訓練中的仿真數據,對傳統I/O方法和基于內存映射文件方法的數據讀取效率進行了對比。由于該仿真系統的數據量大小和空中模擬目標數量成正比,因此通過設置不同的空情復雜度,對讀取時間進行測試,如圖4所示。由圖4可見,相對于傳統I/O方法,采用內存映射文件處理方法的數據讀取效率提高了5倍以上,且由于其使用分段映射的方法,使得執行效率和目標數量之間保持了較好的線性關系。

4 通用分布式記錄重演實例

基于本文方法,使用Visual Studio 2005為開發工具,分別設計了客戶端和控制端程序,軟件界面如圖5~6所示。

本系統中客戶端程序安裝于需要記錄重演的多臺計算機,可實現多進程、多端口的監控。

控制端通過TCP/IP協議,完成多個客戶端的統一協調控制,具備工作模式切換、重演速度控制和記錄文件管理等多種功能。

利用該系統對某訓練仿真裝備中的記錄重演模塊進行了升級,測試了本文方法的正確性,實現了10倍速的快速重演,大大提高了記錄重演系統的工作效率。

圖4 讀取效率對比

圖5 控制端程序主界面

圖6 客戶端程序主界面

5 結語

以實現通用性好、可移植性強的數據記錄重演為目的,本文提出并實現了基于數據截獲和欺騙式注入的記錄重演方法,該方法有效解決了大數量條件下的數據同步和高速數據存取以及非合作應用的重演問題。以本文方法為核心構建的分布式記錄重演解決方案,現已成功應用于多型仿真和模擬訓練系統,取得了較好的效果。

References)

[1] 姚軍. 重演技術在某系統中的實現[J]. 火炮發射與控制學報, 2014, 35(2):88-91.(YAO J. Realization of reply technology in the system [J]. Journal of Gun Launch & Control, 2014, 35(2):88-91.)

[2] 楊咚, 鐘藝, 呂衛平.一種以太網數據記錄微機及其應用技術[J]. 艦船電子工程, 2015, 24(2):106-110.(YANG D, ZHONG Y, LYU W P. A sort of Ethernet data recorded microcomputer and its applications technology [J]. Ship Electronic Engineering, 2015, 24(2):106-110.)

[3] 劉詩俊, 羅藝. 基于WinCap的UDP協議數據重發方法[J]. 計算機與數字工程, 2009, 37(8):196-204.(LIU S J, LUO Y. A method of UDP data retransmition based on WinCap[J]. Computer & Digital Engineering 2009, 37(8):196-204.)

[4] 杜曄, 黎妹紅, 李潔原. 基于NDIS中間層驅動的對等網絡流量監管機制[J]. 北京交通大學學報, 2013, 37(5):29-33.(DU Y, LI M H, LI J Y. Supervision system for P2P traffic based on NDIS intermediate driver [J]. Journal of Beijing Jiaotong University, 2013, 37(5):29-33.)

[5] 鄢明, 陸幼麗, 解海濤.基于NDIS中間層驅動的隱蔽通信研究與實現[J]. 通信技術, 2014, 47(6):679:685.(YAN M, LU Y L, XIE H T. Research on implementation of the cover communication based on the NIDS middle layer driver [J]. Communication Technology, 2014, 47(6):679:685.)

[6] 魏艷娜, 徐雅斌, 于慧敏. 基于Windows架構SPI技術的防火墻設計與實現[J]. 北華航天工業學院學報, 2015 25(3):18-20.(WEI Y N, XU Y B, YU H M. Design and implementation of Windows personal firewall based on SPI[J]. Journal of North China Institute of Aerospace Engineering, 2015 25(3):18-20.)

[7] 甘利杰, 丁明勇, 楊永斌. 基于WinSock SPI技術的包過濾研究[J]. 計算機科學, 2007, 34(8): 112-113.(GAN L J, DING M Y, YANG Y B. Research on packet-filter based on Winsock SPI technology [J]. Computer Science, 2007, 34(8): 112-113.)

[8] JONES A, OHLUND J. Windows網絡編程技術[M]. 京京工作室, 譯.北京: 機械工業出版社, 2000:363-371.(JONES A, OHLUND J. Network Programming for Microsoft Windows[M]. Jingjing Studio, translated. Beijing: China Machine Press, 2000: 363-371.)

[9] 姜三義, 代真真, 李陽, 等.基于內存映射文件的進化算法數據存儲引擎[J]. 計算機工程與應用, 2015, 51(1):49-53.(JIANG S Y, DAI Z Z, LI Y, et al. Data storage engine based on memory-mapped file for evolutionary algorithms[J]. Computer Engineering and Applications, 2015, 51(1):49-53.)

[10] 楊寧學, 李艷萍, 田懷文.內存映射文件及其在廣義舒適度仿真中的應用[J]. 電子測試, 2013(13):112-115.(YANG N X, LI Y P, TIAN H W. Memory-mapped files and its application on generalized comfort simulation on train[J]. Electronic Test, 2013(13):112-115.)

[11] 彭國金. 基于內存映射的試飛iNET 數據快視分析技術[J]. 現代電子技術, 2016, 39(4):44-47.(PENG G J. Memory mapping based quick view analysis technology of flight test iNET data [J]. Modern Electronics Technique, 2016, 39(4):44-47.)

[12] 孫文慶, 劉秉權, 肖鏡輝.基于內存映射文件的數據共享技術研究與應用[J]. 微計算機應用, 2005, 26(2):49-53.(SUN W Q, LIU B Q, XIAO J H. Research on data sharing technology based on memory mapping file and its application [J]. Microcomputer Applications, 2005, 26(2):49-53.)

YAO Xiaoqiang, born in 1985, M. S., lecturer. His research interests include intelligent information processing, simulated training and simulation.

LIU Changyun, born in 1973,Ph. D., associate professor. His research interests include intelligent information processing, radar signal processing.

GUO Xiangke, born in 1980,Ph. D. candidate, lecturer. His research interests include target tracking, intelligent information processing.

Generalrecord-replaymethodbasedondatainterceptionandcheatinginjection

YAOXiaoqiang,LIUChangyun*,GUOXiangke

(AirandMissileDefenseCollege,AirForceEngineeringUniversity,Xi’anShaanxi710051,China)

For the problems of the traditional method of data record-replay, such as packet format association, close corporation with the controlled application, and low transmission efficiency, a new record-replay method based on data interception and cheating injection was proposed. Firstly, the network data packet was automatically intercepted through the service provider interface technique of Winsock 2. Secondly, the problem of the data sharing and high speed data access was solved by using the memory-mapped file technique. Finally, the saved data packet was intercepted into the user program by the data read operation motivated by the fake messages. The practical application shows that the new method is suitable for the distributed simulation and simulated training system for its merits such as the avoidance of network packet transmission, no necessity for corporation with the controlled application, irrelevance of the packet format, smooth recurrence with ten times the speed.

Service Provider Interface (SPI); data interception; cheating injection; record-replay; memory-mapped file

2016- 09- 13;

2016- 12- 27。

姚小強(1985—),男,河南宜陽人,講師,碩士,主要研究方向:智能信息處理、模擬訓練與仿真; 劉昌云(1973—),男,四川瀘州人,副教授,博士,主要研究方向:智能信息處理、雷達信號處理; 郭相科(1980—),男,河南泌陽人,講師,博士研究生,主要研究方向:目標跟蹤、智能信息處理。

1001- 9081(2017)04- 1153- 04

10.11772/j.issn.1001- 9081.2017.04.1153

TP

A

猜你喜歡
進程方法
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
學習方法
用對方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
賺錢方法
捕魚
我國高等教育改革進程與反思
教育與職業(2014年7期)2014-01-21 02:35:04
Linux僵死進程的產生與避免
男女平等進程中出現的新矛盾和新問題
俄羅斯現代化進程的阻礙
主站蜘蛛池模板: 亚洲最黄视频| 伊人久久福利中文字幕| 欧美一级在线| 美女啪啪无遮挡| 国产人成乱码视频免费观看| 91精品啪在线观看国产| 欧美性天天| 亚洲最新地址| 呦女亚洲一区精品| 四虎国产永久在线观看| 日韩经典精品无码一区二区| 国产h视频在线观看视频| 99精品福利视频| 国产精品分类视频分类一区| 国产1区2区在线观看| 一级成人a做片免费| 成人久久精品一区二区三区| 国产在线精品99一区不卡| 国产午夜无码专区喷水| 亚洲精品第一在线观看视频| 一本大道香蕉高清久久| 中文国产成人久久精品小说| 久久精品国产亚洲AV忘忧草18| 国产伦精品一区二区三区视频优播 | 国产亚洲日韩av在线| 白浆免费视频国产精品视频| 国产三级视频网站| 激情六月丁香婷婷四房播| 久久精品丝袜高跟鞋| 久久人妻系列无码一区| 国产成人精品第一区二区| 美女视频黄又黄又免费高清| 无码久看视频| 日韩毛片免费| 亚洲区一区| 一级毛片在线直接观看| 在线国产91| 免费A级毛片无码无遮挡| h视频在线观看网站| 成人国产精品一级毛片天堂| 国产一区二区三区免费| 青青青伊人色综合久久| 久久久亚洲色| 亚洲视频影院| 波多野结衣久久高清免费| 午夜激情婷婷| 97人妻精品专区久久久久| 青青草原偷拍视频| 国产va免费精品观看| 亚洲成人在线网| 国内精品视频| 精品一区二区久久久久网站| 亚洲无码精彩视频在线观看 | 国产网站免费观看| 国产精欧美一区二区三区| 高清色本在线www| 久久青草精品一区二区三区| 久久香蕉国产线看观看亚洲片| 亚洲国产日韩视频观看| 无码'专区第一页| 先锋资源久久| 欧美日韩在线国产| 国产毛片片精品天天看视频| 色综合天天娱乐综合网| 亚洲日韩精品欧美中文字幕| 香蕉久久国产超碰青草| 91久久偷偷做嫩草影院免费看| 真实国产乱子伦高清| 日韩免费毛片| 亚洲第一视频网| 国产精品成人免费视频99| 99久久精品免费看国产免费软件| 无套av在线| 国内精品自在欧美一区| Jizz国产色系免费| 亚洲男人的天堂久久精品| 国产福利大秀91| 亚洲中文精品人人永久免费| 美女高潮全身流白浆福利区| 91美女视频在线| 免费看美女自慰的网站| 国产美女视频黄a视频全免费网站|