代碼靜態分析采用的技術有以下這些:
詞法分析技術:從左至右一個字符一個字符地讀入源程序,對構成源程序的字符流進行掃描,通過使用正則表達式匹配方法將源代碼轉換為等價的符號(Token)流,生成相關符號列表。
語法分析技術:判斷源程序結構上是否正確,通過使用上下文無關語法將相關符號整理為語法樹。
抽象語法樹分析技術:將程序組織成樹形結構,樹中的相關結點代表了程序中的相關代碼。
語義分析技術:對結構上正確的源程序進行上下文有關性質的審查。
控制流分析技術:生成有向控制流圖,用結點表示基本代碼塊,結點間的有向邊代表控制流路徑,反向邊表示可能存在的循環;還可生成函數調用關系圖,表示函數間的嵌套關系。
數據流分析技術:對控制流圖進行遍歷,記錄變量的初始化點和引用點,保存相關數據信息。通過靜態模擬應用程序的執行路徑,幫助用戶找到運行時才能暴露的一些嚴重錯誤,如資源泄漏、空指針異常、SQL注入及其他的安全性漏洞等潛在的運行時錯誤。
污點分析技術:“污點”是指所有來自不可靠數據源的數據,如用戶輸入、網絡等。基于數據流圖判斷源代碼中哪些變量可能受到攻擊,是驗證程序輸入、識別代碼表達缺陷的關鍵。
程序切片技術:將一個程序中用戶感興趣的代碼都抽取出來組成一個新的程序,這個新的程序就是源程序的切片,根據切片規則的不同,生成的切片也各不相同。
回答所涉及的環境:聯想天逸510S、Windows 10。
代碼靜態分析采用的技術有以下這些:
詞法分析技術:從左至右一個字符一個字符地讀入源程序,對構成源程序的字符流進行掃描,通過使用正則表達式匹配方法將源代碼轉換為等價的符號(Token)流,生成相關符號列表。
語法分析技術:判斷源程序結構上是否正確,通過使用上下文無關語法將相關符號整理為語法樹。
抽象語法樹分析技術:將程序組織成樹形結構,樹中的相關結點代表了程序中的相關代碼。
語義分析技術:對結構上正確的源程序進行上下文有關性質的審查。
控制流分析技術:生成有向控制流圖,用結點表示基本代碼塊,結點間的有向邊代表控制流路徑,反向邊表示可能存在的循環;還可生成函數調用關系圖,表示函數間的嵌套關系。
數據流分析技術:對控制流圖進行遍歷,記錄變量的初始化點和引用點,保存相關數據信息。通過靜態模擬應用程序的執行路徑,幫助用戶找到運行時才能暴露的一些嚴重錯誤,如資源泄漏、空指針異常、SQL注入及其他的安全性漏洞等潛在的運行時錯誤。
污點分析技術:“污點”是指所有來自不可靠數據源的數據,如用戶輸入、網絡等。基于數據流圖判斷源代碼中哪些變量可能受到攻擊,是驗證程序輸入、識別代碼表達缺陷的關鍵。
程序切片技術:將一個程序中用戶感興趣的代碼都抽取出來組成一個新的程序,這個新的程序就是源程序的切片,根據切片規則的不同,生成的切片也各不相同。
回答所涉及的環境:聯想天逸510S、Windows 10。