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

基于OnTrac平臺逆向分析系統的設計

2008-12-31 00:00:00
電腦知識與技術 2008年23期

摘要:探討了軟件逆向工程的基本原理,基于OnTrac平臺設計了一個針對 Python源代碼的逆向分析系統,并簡要介紹ReverseUML系統以及核心模塊。

關鍵詞:逆向工程;Python;UML;類圖;序列圖

中圖分類號:TP391文獻標識碼:A文章編號:1009-3044(2008)23-969-02

Design of Reverse Analysis System Based on OnTrac Platform

WANG Qi

(Software Department , Southeast University, Nanjing 210096, China)

Abstract: This essay has introduced the basic principle of software reverse engineering, and designed a Reverse UML system based on OnTrac system. Then we describe the system, and key modules.

Key words: reverse engineering; Python; UML; class diagram; sequence diagram

逆向工程本質上是一個知識恢復、知識發現的過程。對于軟件這種復雜系統來說,逆向工程首先是發現原有系統所表達的一些信息,其次是挖掘原有系統表面下隱藏的、存在于設計人員腦中的設計知識。而源代碼逆向工程分析的對象是代碼。代碼是軟件設計最后一個階段的產物,是唯一的逆向工程工作的輸入,也是所有逆向工程的基礎,因此源代碼逆向工程顯得格外重要[1]。因此如何對現有的源代碼進行分析,以及如何以清晰、標準的方式展現原有的設計知識,是本課題研究的主要問題。

為了達到方便分析 Python 源代碼的目的,本課題在 SIEMENS 公司的 OnTrac 平臺上設計了一套管理分析Python源代碼的系統ReverseUML。通過 ReverseUML 系統,用戶可以方便的獲得服務器上 Python 源代碼的類圖以及序列圖。

1 Reverse UML系統結構

為了實現上述功能,ReverseUML系統主要分為OnTrac服務器、ReverseUML 插件、代碼跟蹤服務器,程序跟蹤執行模塊。系統結構框圖如圖1所示:

ReverseUML 系統物理結構圖

用戶可以通過兼容 IE6.0 的瀏覽器登錄 OnTrac 服務器,然后通過 OnTrac 中的 ReverseUML 插件對源代碼進行管理分析。

ReverseUML系統的物理結構如圖2所示,用戶分析代碼的服務器,OnTrac服務器和Trace服務器是通過網絡連接起來,用戶可以在任何可以訪問OnTrac服務器的地方分析Python源代碼,這種結構也符合了目前軟件網絡服務化的趨勢。

2 ReverseUML插件分析設計

通過對 ReverseUML 系統的介紹,系統需要提供基于Web頁面的分析管理模塊,分析模塊還需要和跟蹤模塊交互通訊,來達到在網絡上分析源代碼的目的,而跟蹤模塊需要可以在受控制的情況下執行源代碼[2]。因此本插件設計的模塊圖以及和外圍模塊的通信,如圖3所示。

ReverseUML 插件依賴于 OnTrac 系統對用戶的請求進行預處理。OnTrac系統會把對ReverseUML的請求分配給ReverseUML插件,然后插件對請求進行相應的處理,并將處理的結果以頁面的形式返回給客戶端。

當插件在處理用戶動態跟蹤腳本的時候,插件首先會通過OnTrac的ResquestDispatch 得到腳本的文本,然后通過工程配置里的用戶名與密碼和服務器進行連接。隨后將命令腳本逐條發給TraceServer,并返回由TraceServer的SSH Server執行后的結果。

當插件被初始化的時候會在OnTrac服務器上開啟一個新的監聽服務,隨時監聽并添加從Trace Daemon發來的動態跟蹤數據記錄。

ReverseUML插件主要分為頁面顯示模塊、分析模塊、對Trace Server進行shell命令控制的PySSH模塊以及從Trace Server獲得消息的 PyListener模塊。

用戶獲得類圖的過程需要有兩個步驟,一個得到當前系統中存在什么類,二是選擇需要由哪些類組成類圖,因此插件需要處理用戶的兩次查詢,一次是點擊 ClassGraph 鏈接的頁面請求,查詢當前系統中的所有類名,第二次是選擇相應的類與類圖深度之后,點擊ViewClassGraph 的請求,獲得類圖圖形。處理的流程如圖4所示。

首先ReverseUML插件在初始化的時候會在OnTrac系統的Dispatch消息轉發器中注冊相應的頁面請求消息。當用戶進入ReverseUML工程頁面后所有的頁面上的鏈接被定向為由ReverseUML插件來處理。

當用戶點擊ClassGraph鏈接時,OnTrac的Dispatch將ClassGraph消息轉給已經注冊關聯上的處理函數。處理函數從數據庫里獲得當前存在的所有類,逐一填充到頁面模板上,最后由OnTrac的頁面Render解釋頁面模板生成標準的 HTML頁面,并發送回客戶的瀏覽器。處理用戶的 ViewClassGraph點擊事件的總體流程與ClassGraph類似,細節上有所不同,瀏覽器發送來的消息有用戶選擇類的列表、類圖的深度需要通過 OnTrac提供的標準API獲得,類圖生成模塊根據輸入進行計算生成類圖,類圖以 JPEG 的方式存在服務器臨時目錄中,最后將圖片的鏈接地址填充在類圖模板相應的位置里。

3 跟蹤執行模塊分析設計

跟蹤執行模塊的作用為了獲得實際跟蹤時的數據并將數據發送到OnTrac服務器。實際跟蹤時會有多個Python執行的進程同時向一臺OnTrac 服務器發送數據,如果采用簡單的連接發送的方式會因為網絡擁塞造成被跟蹤的程序等待網絡傳輸而執行非常緩慢,因此本課題采用了一個統一的數據收集轉發服務來對跟蹤數據進行有效的發送。

由于需要通過在程序執行時動態地獲取數據,因此需要對Python的解釋器進行擴展,讓Python解釋器在執行程序時將數據傳給Trace Daemon 模塊。下面將分別敘述這兩個模塊的設計。

3.1 Trace Daemon模塊設計

Trace Daemon 是在程序執行的時候運行在后臺的監控進程,用來將跟蹤數據發給OnTrac Server。Trace Daemon 的工作流程設計如圖5所示。

如圖5所示,Trace Daemon由Trace Server的shell啟動,并且傳入OnTrac Server的地址、和臨時存放數據所在目錄,程序啟動后每隔1秒從數據所在的目錄中讀取數據文件,判斷數據是否已經被填充完畢,或者記錄數據文件的線程已經結束,如果已經記錄完畢則發送給OnTrac Server,最后刪除已經發送完的數據文件。發送數據部分則由Twisted實現了一個簡單的傳輸協議。

用戶可以通過 ReverseUML 系統方便地察看源代碼以及它們的類圖和序列圖、建立分析工程來管理逆向工程的配置,添加被分析的代碼,設定目標代碼執行的環境。

3.2 代碼跟蹤腳本設置

本文提出的生成類圖與序列圖算法的核心是對動靜態分析數據的

綜合,為了獲得其中的動態數據,必須要通過一種方式讓程序運行起來。本課題的設計的方法是,通過在跟蹤服務器上運行事先編寫好的腳本,使被跟蹤的代碼運行起來,然后系統將服務器中跟蹤記錄下的數據發回。因此ReverseUML系統提供了編寫,管理這些腳本的功能模塊。

如果當用戶需要通過ReverseUML插件獲得類圖時,登錄OnTrac系統,進入ReverseUML插件,打開相關工程后單擊ClassGraph鏈接,系統會顯示當前系統中含有的類名列表。然后選擇若干需要顯示的類圖的類名稱、類圖的關系深度,最后點擊 View Class Graph按鈕,系統會返回所選擇的幾個類的類圖。

用戶可以通過ReverseUML系統獲得所需的序列圖。用戶進入相關工程后單擊SequenceGraph鏈接,系統會顯示當前系統中含有的函數入口列表。然后用戶選擇序列圖的一個入口,制定序列圖的嵌套層次以及涉及類的模塊數,系統會返回此入口在數據庫里的若干次調用。隨后用戶選擇其中某一次調用所在的時間戳,點擊View Sequence Graph鏈接,系統將返回相應的序列圖。

4 結束語

本課題首先介紹了逆向工程的一些基本原理,而逆向工程則是對遺留軟件工程進行知識恢復的一個很重要,也很可行的方法。而本課題在SIEMENS公司OnTrac系統的基礎上,設計開發了ReverseUML系統,通過該系統可以對Python語言設計的軟件進行逆向分析,可以通過UML類圖與序列圖清晰地展現面向對象軟件底層的設計思想。

參考文獻:

[1] Rumbaugh J. 面向對象建模與設[M].影印版.北京:中國電力出版社,2003.

[2] Hondt k.Aproach to Architectural Recovery in Evolving Object-Oriented Systems[D]. Brussel:Ph Dthesis of Vrije Universiteit Brussel,1998.

主站蜘蛛池模板: 国产精品开放后亚洲| 欧美一区二区福利视频| 日韩天堂网| 国产女人18水真多毛片18精品| 国产香蕉在线| 99国产在线视频| 一级成人a做片免费| 亚洲精品无码久久久久苍井空| 91亚洲免费视频| 国产白浆一区二区三区视频在线| 国产成人亚洲精品无码电影| 国产在线精品人成导航| 亚洲欧美另类中文字幕| 国产交换配偶在线视频| 91探花在线观看国产最新| 丁香六月综合网| 拍国产真实乱人偷精品| 亚洲人成网站在线观看播放不卡| 成人精品视频一区二区在线| 无码内射中文字幕岛国片| 一级毛片免费观看不卡视频| 狠狠操夜夜爽| 久久狠狠色噜噜狠狠狠狠97视色 | 欧洲精品视频在线观看| 亚洲专区一区二区在线观看| 手机在线国产精品| 色屁屁一区二区三区视频国产| 日韩高清成人| 日本黄网在线观看| AV无码无在线观看免费| 国产成人1024精品下载| 国产成人久视频免费| 久久亚洲国产一区二区| 国产亚洲视频播放9000| 国产极品美女在线| 国产免费观看av大片的网站| 国产黑丝一区| 久久久久人妻精品一区三寸蜜桃| 激情综合五月网| 98精品全国免费观看视频| 国产成人精品无码一区二| 九九热在线视频| 国产欧美日韩另类| 狠狠色噜噜狠狠狠狠色综合久| 乱码国产乱码精品精在线播放| 国产精品乱偷免费视频| 国产大片黄在线观看| 毛片久久网站小视频| 欧美怡红院视频一区二区三区| 欧美日韩在线成人| 熟妇无码人妻| 在线欧美国产| 久久综合五月婷婷| 国产成人高清精品免费| 国产高清免费午夜在线视频| 在线观看亚洲成人| 米奇精品一区二区三区| 久久99精品久久久大学生| 亚欧乱色视频网站大全| 国产爽妇精品| 成人国产精品网站在线看| 亚洲国产成人自拍| 国产噜噜在线视频观看| 国产亚洲精品yxsp| 1769国产精品视频免费观看| 99热精品久久| 亚洲人成网站日本片| 亚洲av色吊丝无码| 亚洲色无码专线精品观看| 日本黄色不卡视频| 97在线免费视频| 久久久久久午夜精品| 国产精品播放| 网友自拍视频精品区| 色亚洲激情综合精品无码视频 | 999国内精品视频免费| 久久婷婷五月综合色一区二区| 人妻21p大胆| 欧美日韩在线亚洲国产人| 真人免费一级毛片一区二区| 亚洲 欧美 中文 AⅤ在线视频| 国产美女在线免费观看|