如何學好程式的靜態分析?

2025-02-11 10:50:19 字數 2522 閱讀 9877

1樓:只得忍她讓她

想要學好程式靜態分析,首先來了解它,再依據這些特點來學。

程式靜態分析指的是通過詞法分析、語法分析和控制流分析技術來掃瞄程式**、驗證碼是否符合**分析技術的規範、安全性、可靠性、可維護性等指標的方式。

它可以幫助軟體開發人員,質量保證人員尋找現有的靜態分析程式的**,多用於程式測試和正確性的驗證。

對資訊進行詞法分析和語法分析的結合,違反靜態分析工具可以檢查測試過程的程式設計標準錯誤,如大小、模組結構、註釋的術語以及各種型別的源語句的發生等。

結合語義分析,還可以完成統計,一些引用的特徵,比如函式過程識別符號交叉引用,每個語句中使用的識別符號,任何輸入/輸出語句,這些語句都是不可到達的**段,全域性變數和區域性變數的各種統計資料等等。

優點:靜態分析提供程式所有可能執**況都有效的資訊

缺點:1、因為靜態分析經常是基於近似的分析方法,其提供的資訊並不總是精確的。

2、對於程式的某些性質(比如指標運算、動態儲存分配等相關的性質),用靜態分析難以奏效。

(1)不實際執行程式。動態分析是通過在真實或模擬環境中執行程式進行分析的方法,多用於效能測試、功能測試、記憶體洩漏測試等方面。與之相反,靜態分析不執行**只是通過對**的靜態掃瞄對程式進行分析。

(2)執行速度快、效率高。目前成熟的**靜態分析工具每秒可掃瞄上萬行**,相對於動態分析,具有檢測速度快、效率高的特點。

(3)誤報率較高。**靜態分析是通過對程式掃瞄找到匹配某種規則模式的**從而發現**中存在的問題,例如可以定位strcpy()這樣可能存在漏洞的函式,因此靜態分析有時存在誤報率較高的缺陷,可結合動態分析方法進行修正。

學習靜態分析,首先你要自己找些例子練習,其次多看書多看書多看書。

2樓:風吹褲子定邦涼

在我看來,靜態分析是初學者理解和系統閱讀的一種方式。特別是,你害怕影響你的自信和耐心。我的建議不是先讀書,而是找一些與國外大學有關的好幻燈片

先再掃一遍,簡要總結一下,然後自己動手寫程式,不確定你要的細節第一,慢慢把自己的例子弄得複雜,觀察變化的方法和結果會帶來什麼,主要是在平時的經歷和平時的思維動態除錯程式的思維差異。這是關鍵,這是想象,你是一半,相信我,這個過程是不容易的。然後你可以在一些分析工具實現你的演算法的特點對你的方法的影響,如煤煙,llvm,等經過這一切,和乙個系統的閱讀後,你知道為什麼會有乙個支援靜態分析理論。

由此,我們可以提高三倍和兩倍的努力。

靜態的和熟悉的工具和開源專案的使用是非常必要的,建議由unsw corg svf使用llvm靜態指標和程式基於依存分析框架,包括程式呼叫圖創作,流敏感、上下文敏感的指標分析,資料流和基於軟體的控制流錯誤檢測,例如記憶體洩漏、空指標、檔案交換等。可高效、準確地分析大型專案,具有良好的架構設計,可擴充套件性

感覺學好政協程式類的東西,一方面離不開書本,但更多的是實踐操作,和自己後天的不懈努力。這樣才能更好的瞭解和完成「程式」這個東西。

3樓:育知同創教育

靜態分析這東西,對於初學者,你要從不懂到開始領悟,上來就係統的看書是浪費時間且收效不大的。尤其怕影響到你的信心和耐性。

我的建議是先不用看書,上網找一些好的國外大學的相關的slide,多找幾個大學的,免得思維受特定的例子和講解方法的侷限。先掃一遍,簡單總結下,然後就開始自己寫程式實現,不確定的細節先自己想,慢慢把自己的例子弄複雜,觀察方法和結果隨之帶來的變化,期間主要體會和自己平時腦子動態debug走程式的思維有何不同。這是關鍵,這個想通了,你就成一半了,相信我,這個過程不容易。

然後就可以在一些分析工具如soot, llvm等,上實現你的演算法體會程式的特性對你的方法的影響。這些都過一遍後,再系統的看書,你就知道為什麼要有這樣或那樣的理論來支撐靜態分析了。由此可舉一反三,事半功倍。

靜態**分析應該怎麼操作呢?

4樓:網友

靜態**分析是**審計的方式之一,即**審計也可以通過其他方式來審查原始碼的安全。比如,執行該原始碼,執行針對性的操作等。

靜態**分析就是在不執行軟體原始碼的情況下,從資料流、語義、結構、控制流、配置流等方面對源**進行的分析。

**中的bug往往是由於開發者忽略一些**缺陷而造成的,這些**缺陷可能是極其微小的錯誤,以至於在程式的編譯期並未給出很好的錯誤,從而導致這些**缺陷在程式的執行期以某種非正常形式呈現出來。

那麼對於開發這開說,這些微小的**缺陷,往往是很難跟蹤除錯的,因此也為修復**帶來了很大困難。xcode靜態**分析的作用即發現專案源**中的某些**缺陷,並分類進行提示,以方便開發者及時關注並加以修改,從而把**缺陷(潛在的bug)及時清除。

工作分析流程,工作分析的程式是什麼?

內容來自使用者 何娟 第一階段 部門職責 任務清單與崗位職責的確認 1.填寫工作日誌 各部門連續填寫10個正常工作日的工作日誌,以便查清每個崗位目前所從事的所有工作和工作任務構成,了解每個工作的不同職能的時間分配。具體填寫格式參見附表一 2.彙總個人工作日誌 每個人彙總自己的工作日誌,彙總要求和格式...

分析下面java程式寫出該程式執行的結果

確實主方法需要有static修飾的,沒有static的main方法並不是真的主方法沒法執行。如果是印刷錯誤,本意是public static void main的話,結果就是 what a pleasure i amtom how do you do?沒有主方法,你告訴我怎麼執行 what a pl...

實用技術經濟學中靜態分析法和動態分析法的有哪些不同點

工程經濟 可作為 bai高等 du院校土木工程 zhi工程管理 工程造價dao及相關專業的教材,也可供有關回專業技答術人員參考。全書共分十三章,主要內容為緒論 現金流量與資金的等值計算 確定性經濟效果評價 不確定性分析與風險分析 建設專案財務評價 建設專案國民經濟評價 裝置更新技術經濟分析 技術經濟...