freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

c語言源代碼靜態(tài)檢測工具設計與實現畢業(yè)論文-閱讀頁

2024-10-28 14:48本頁面
  

【正文】 空間。 技術簡介 本系統(tǒng)主要使用 python 開發(fā)后臺程序, PyQt 庫設計界面, SQLite 作為后臺數據庫。 Python 語言簡介 Python 是一種解釋型、 面向對象 、動態(tài)數據類型的高級程序設計語言。 Python 已經成為最受歡迎的程序設計語言之一。自從 2020 年以后, python 的使用率是呈線性增長。而 Python 專用的科學計算擴展庫就更多了,例如如下 3 個十分經典的科學計算擴展庫: NumPy、 SciPy 和matplotlib,它們分別為 Python 提供了快速數組處理、數值運算以及繪圖功能。 PyQt 圖形類庫簡介 PyQt 是一個創(chuàng)建 GUI 應用程序的工具包。 Qt 庫是目前最強大的庫之 一。 PyQt 實現了一個 Python 模塊集。它是一個多平臺的工具包,可以運行在所有主要操作系統(tǒng)上,包括 UNIX, Windows 和 Mac。在此之前, GPL 的版本只能用在 Unix上,從 PyQt 的版本 4 開始, GPL 許可證可用于所有支持的平臺。它能夠支 持Windows/Linux/Unix 等等主流的操作系統(tǒng),同時能夠跟很多程序語言相結合,比如 沈陽航空航天大學畢業(yè)設計(論文) 14 Python、 C、 PHP、 Java 等,還有 ODBC 接口,同樣比起 Mysql、 PostgreSQL 這兩款開源世界著名的數據庫管理系統(tǒng)來講,它的處理速度比他們都快。 至今已經有 14 個年頭, SQLite 也迎來了一個版本 SQLite 3 已經發(fā)布。 一般情況,用戶對計算機編程的相關知識并不了解,而程序員對相關的業(yè)務領域并不了解。 以下主要從用戶需求和系統(tǒng)需求層面去分析該系統(tǒng) ,詳細分析了用戶的各項需求 。多數的軟件安全問題都是因為軟件自身存在安全漏洞。為軟件的安全留下隱患。 安全性測試不同于傳統(tǒng) 的程序測試。而安全性測試則要測試的是軟件不應當做什么。 系統(tǒng)需求 根據對市場的 充分 研究,了解用戶的總體需求后, 我們從中提煉出更加精煉細致的系統(tǒng)需求。 實現代碼靜態(tài)安全分析需求 實現代碼的靜態(tài)安全檢測,要 盡可 能 多的 檢查出各種 C 語言代碼中的 各種 安全漏洞,如緩沖區(qū)溢出漏洞,空指針漏洞。 并且方便快捷,便于操作和查看。能夠設定代碼的安全檢測模式。要能夠加載 待檢測的目標 代碼。要提供開始檢測和生成圖表的按鈕。 便于用戶直觀的選擇要檢測的對象。 根據檢測強度的不同,用戶 可以設定不同的安全檢測強度,也可以對特定的某一個檢測參數進行選擇。 圖表化顯示 安全漏洞 需求 對代碼進行檢查結束之后,可以選擇生成圖形和表格,這樣可以直觀的觀察安全漏洞的數量和分布。 技術需求 Eric5 集成開發(fā)環(huán)境 Eric5 是一個集成了項目管理功能的 Python 集成開發(fā)環(huán)境。集成單元測試等等。是一個在 Linux 操作系統(tǒng)下非常實用的集成開發(fā)環(huán)境。使用 Qt 只需一次性開發(fā)應用程序,無須重新編寫源代碼,便可跨不同桌面和嵌入式操作系統(tǒng)部署這些應 用程序。 Python 面向對象開發(fā)語言 Python 是一種 面向對象 、解釋型 計算機程序設計語言 ,由 Guido van Rossum 于沈陽航空航天大學畢業(yè)設計(論文) 17 1989 年底發(fā)明,第一個公開發(fā)行版發(fā)行于 1991 年。它常被昵稱為 膠水語言 ,它能夠很輕松的把用其他語言制作的各種模塊(尤其是 C/C++)輕松地聯結在一起 。 靜態(tài)檢測工具調研 關于 C 語言程序的靜態(tài)分析工具,目前我關注的是 splint 和 flawfinder。 splint 主要應用在分析代碼是否符合編程規(guī)范。 ( 1) flawfinder: flawfinder 是一種 python 實現的靜態(tài)代碼檢查工具,可以根據危險級別來報道代碼中的安全問題。 ( 2) Splint: splint 是一個動態(tài)檢查 C 語言程序安全弱點和編寫錯誤的程序 。 Splint 是一款 開源 靜態(tài)源代碼檢查工具,能對源代碼進行全面的分 析。 沈陽航空航天大學畢業(yè)設計(論文) 18 3 概要設計 概要設計是軟件開發(fā)過程中必不可少的一個環(huán)節(jié),主要 說明對程序系統(tǒng)的設計考慮,包括程序系統(tǒng)的基本處 、 流程、程序系統(tǒng)的組織結構、模塊劃分、功能分配等,為程序的 詳細設計 提供基礎。 總體設計目標 在該系統(tǒng) 中,主要從滿足用戶需求,優(yōu)化界面設計等方面考慮,提出了以下兩點設計目標。 不僅有代碼的安全檢查功能,同時也集成了圖表顯示功能。 用戶界面友好 本系統(tǒng)主要的需要實現的功能是能夠讓用戶更加方便的使用代碼安全檢查工具。提供更多的安全檢測參數給用戶,使其能夠方便 使用。主要分為代碼檢查功能,代碼瀏覽功能,圖表顯示功能,參數設定功能,程序列表功能,模式選擇功能。使整個系統(tǒng)模塊化。 檢測界面也是程序的主控界面,控制整個程序的流程。 控 制 界 面代碼瀏覽圖表查詢參數設定結果顯示源碼列表S p l i n t 配 置 F l a w f i n d e r 配 置 圖 界 面功能 圖 數據庫存儲 設計 SQLiteDatabase 數據庫 SQLite 是一個嵌入式數據庫引擎,針對內存等資源有限的設備(如手機、 PDA、MP3)提供的一種高效的數據庫引擎 SQLite 數據庫不像其它的數據庫(如: Oracle),它沒有服務器進程。該文件是跨平臺的可以自由拷貝。 沈陽航空航天大學畢業(yè)設計(論文) 20 因為本系統(tǒng)中使用的數據庫的部分只有圖表功能,數據庫作為一個反應數據的中間功能存在,所以對功能和效率要求并不苛刻,所以我們選擇了輕量級的 SQLite作為數據庫。該數據表主要作為一個數據的暫存空間使用,方便后期的生成圖形和表格。該數據表主要作為一個數據 的暫存空間使用,方便后期的生成圖形和表格。以下是從各個不同功能模塊詳細 介紹其實現的過程。 代碼檢測 功能 模塊 設計 代碼的靜態(tài)檢查功能 設計 與實現 代碼的靜態(tài)安全檢測功能是系統(tǒng)中的重要組成部分,根據之前的調研結果,在此我們調用了兩個開源的代碼檢查工具: Splint 和 Flawfinder 檢測工具。主控制界面中有方便用戶操作的按鈕。這一功能分別由 Python中的 getExistingDirectory 和 getOpenFileName方法實現 ,等待用戶選擇一個工程,或者單個文件 。我們 采用槽函 數進行觸發(fā),彈出相應的對話框。產生相應的檢測結果 , 存入文件中 ,再將文件中的 數據讀出,顯示在結果框中 。/tmp39。flawfinder dataonly quiet 39。 39。/39。.39。/39。.39。/tmp39。splint I ..39。 39。 39。 +skipsysheaders39。 +posixlib 39。 streamoverwrite39。 39。 39。 +messagestream 39。/39。.39。 +errorstream 39。/39。.39。 +warningstream 39。/39。.39。/39。 具體流程圖見下圖: 沈陽航空航天大學畢業(yè)設計(論文) 24 開 始打 開 載 入 目 錄打 開 工 程 目 錄選 擇 一 個 工 程選 擇 文 件開 始 檢 測生 成 圖 表 分 析 調 用 圖 表 分 析 模 塊獲 得 檢 測 結 果結 束模 式 設 置YNYN 圖 代碼檢測功 能流程圖 待檢測代碼目錄列表 設計與實現 在 Qt 庫中,用一個控件叫做 QListView,我們使用它進行待檢測文件或工程的顯示 ,我們將其命名為 DirList。 第一步:使用 QtGui 類庫中的 getExistingDirectory()方法打開一個文件選擇框。 第三步:判斷 QDir 中各個文件的后綴名如果后綴名為 .c,則使用 insertItem()方法將該文件加載到我們之前的定義好的列表框 DirList 中。39。39。 使用 槽 函 數()觸發(fā)相應的改變代碼函數。創(chuàng)造出一個左邊文件選擇改變,右側改變?yōu)樾挛募脑敿毚a。/39。39。%4s39。 39。\n39。我們在此添加了一個文本框,用來顯示被檢測的結果。檢測工具的檢測結果會以文件的形式存儲在指定的硬盤空間上。 所以代碼開始的第一步為從檢測結果文件中,將數據讀出。 主 要代碼如下: def Slot_detection(self): if == 39。: (self, Critical, 請選擇要檢測的文件! ) else: flawfinder 檢測顯示 analysisFile = (, , , ) fp = open(analysisFile, 39。) for line in fp: ((39。)) () () (, analysisFile) splint 檢測顯示 沈陽航空航天大學畢業(yè)設計(論文) 28 fileprefix=(, , , ) ErrorFile=fileprefix+39。 WarnFile=fileprefix+39。 fp=open(WarnFile, 39。) for line in fp: ((39。)) () () (, WarnFile) 模式選擇與 參數的添加功能 設計 模式選擇功能是為了方便用戶的不同需求而設計的,力求為用戶提供更加方便的操作,針對不同的檢查需要,以及不同的檢查強度為用戶提供更加方便選擇。分為簡易模式,自定義模式,命令行模式。使用我們后臺耦合進代碼中的參數進行模式設定,和參數設定。 第三步:如果用戶選擇命令行模式,則會彈出兩個命令行,分別提示配置 Splint和 Flawfinder 代碼檢查工具。 第四步:如果用戶選擇了自定義模式,則會彈出一個參數選擇對話框,首先用戶要選擇代碼檢測強度,強度分為四個等級,針對不同的等級,有不同的檢驗標準。這樣可以方便用戶的使用。39。39。我們設計了分析圖表功能,這樣可以使整個界面更加友好。 第二步:調用圖形生成模塊,根據之前的分析結果生成相應的圖形。從中提取數據,在對話框中顯示出來,我們還提供了安全漏洞的分類,用戶可以根據漏洞分類查看不同的安全漏洞檢測結果。我們使用了數據庫作為一個中間的存儲結構。 我使用了沈陽航空航天大學畢業(yè)設計(論文) 31 Qt 庫中的 QTableWidget 控件,用于顯示表格的一個控件,將其命名為 tbl。 生成安全漏洞分析圖表 調用 Python 中的 matplotlib 類 。我們 使用這個類庫生成一個條形圖,數據來源于之前檢查好的存在數據庫中的數據。 沈陽航空航天大學畢業(yè)設計(論文) 32 5 系統(tǒng)測試 軟件測試是軟件開發(fā)過 程的重要組成部分,是用來確認一個程序的品質或性能是否符合需求分析中所提出的 要求 。 代碼檢測 功能 模塊測試 代碼檢測功能模塊 測試是根據需求分析測試系統(tǒng) 是否達到預期的要求,是評估該系統(tǒng)是否完善的一個衡量標準 之一。 代碼檢查功能主界面測試 代碼檢查功能界面為本系統(tǒng)的主界面,控制連接著程序的各個模塊。其他界面均為空。 圖 功能主界面 沈陽航空航天大學畢業(yè)設計(論文) 33 待檢測本地目錄列表測試 選擇打開本地目錄,選擇一個單個文件,或者一個工程,選擇完成后將文件的名字加載在左側的列表框中,測試結果如圖所示。測試結果如圖所示。使整個系統(tǒng)更加簡單,易用。當用戶輸入命令行之后,程序就可以讀出命令行,并且按照其參數進行相應的代碼安全檢查。提示用戶進行自定義參數的 選擇,以及檢測強度的選擇。 沈陽航空航天大學畢業(yè)設計(論文) 36 圖 自定義模式 生成分析圖表功能 測試 當用戶點擊生成圖表后,系統(tǒng)會調用圖表生成模塊,在左側的圖形框中根據漏洞的數量生成相應的條形圖。用戶可以按照漏洞的分類選擇查看不同的安全漏洞以及其他信息。 沈陽航空航天大學畢業(yè)設計(論文) 37 圖 圖表分析結果 沈陽航空航天大學畢業(yè)設計(論文) 38 參考文獻 [1] 赫特蘭,司偉 . Python 基礎教程 [M]. 北京:人民郵電出版社, 2020 [2] 張若愚 . Python 科學計算 [M]. 北京:清華大學出版社, 2020 [3] 王世江 .鳥哥的 Linux 私房菜 [M]. 北 京:人民郵電出版社, 2020 [4] Richard Blum、 Christine Bresnahan. Linux 命令行與 shell腳本編程大全 (第 2 版 ) [M].北京:
點擊復制文檔內容
教學課件相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1