源代碼靜態(tài)分析工具(靜態(tài)代碼檢測(cè)工具)
今天給各位分享源代碼靜態(tài)分析工具的知識(shí),其中也會(huì)對(duì)靜態(tài)代碼檢測(cè)工具進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問(wèn)題,別忘了關(guān)注本站,現(xiàn)在開(kāi)始吧!
本文目錄一覽:
- 1、當(dāng)前市面上的代碼審計(jì)工具哪個(gè)比較好?
- 2、C和C++語(yǔ)言有哪些主流開(kāi)發(fā)工具?
- 3、靜態(tài)分析是指?
- 4、程序靜態(tài)分析的著名的靜態(tài)分析工具
- 5、findbugs和pclint有什么區(qū)別
- 6、C++靜態(tài)代碼檢查工具?
當(dāng)前市面上的代碼審計(jì)工具哪個(gè)比較好?
第一類:Seay源代碼審計(jì)系統(tǒng)
這是基于C#語(yǔ)言開(kāi)發(fā)的一款針對(duì)PHP代碼安全性審計(jì)的系統(tǒng),主要運(yùn)行于Windows系統(tǒng)上。這款軟件能夠發(fā)現(xiàn)SQL注入、代碼執(zhí)行、命令執(zhí)行、文件包含、文件上傳、繞過(guò)轉(zhuǎn)義防護(hù)、拒絕服務(wù)、XSS跨站、信息泄露、任意URL跳轉(zhuǎn)等漏洞,基本上覆蓋常見(jiàn)的PHP漏洞。在功能上,它支持一鍵審計(jì)、代碼調(diào)試、函數(shù)定位、插件擴(kuò)展、自定會(huì)規(guī)則配置、代碼高亮、編碼調(diào)試轉(zhuǎn)換、數(shù)據(jù)庫(kù)執(zhí)行監(jiān)控等數(shù)十項(xiàng)強(qiáng)大功能。
第二類:Fortify SCA
Fortify
SCA是由惠普研發(fā)的一款商業(yè)軟件產(chǎn)品,針對(duì)源代碼進(jìn)行專業(yè)的白盒安全審計(jì)。當(dāng)然,它是收費(fèi)的,而且這種商業(yè)軟件一般都價(jià)格不菲。它有Windows、Linux、Unix以及Mac版本,通過(guò)內(nèi)置的五大主要分析引擎對(duì)應(yīng)用軟件的源代碼進(jìn)行靜態(tài)分析。
第三類:RIPS
RIPS是一款基于PHP開(kāi)發(fā)的針對(duì)PHP代碼安全審計(jì)的軟件。另外,它也是一款開(kāi)源軟件,由國(guó)外安全研究員開(kāi)發(fā),程序只有450KB,目前能下載到的最新版本是0.54,不過(guò)這款程序已經(jīng)停止更新了。它最大的亮點(diǎn)在于調(diào)用了PHP內(nèi)置解析器接口token_get_all,并且使用Parser做了語(yǔ)法分析,實(shí)現(xiàn)了跨文件的變量及函數(shù)追蹤,掃描結(jié)果中非常直觀地展示了漏洞形成及變量傳遞過(guò)程,誤報(bào)率非常低。RIPS能夠發(fā)現(xiàn)SQL注入、XSS跨站、文件包含、代碼執(zhí)行、文件讀取等多種漏洞,文件多種樣式的代碼高亮。
C和C++語(yǔ)言有哪些主流開(kāi)發(fā)工具?
AppCode :構(gòu)建與JetBrains’ IntelliJ IDEA 平臺(tái)上的用于Objective-C,C,C++,Java和Java開(kāi)發(fā)的集成開(kāi)發(fā)環(huán)境
CLion:來(lái)自JetBrains的跨平臺(tái)的C/C++的集成開(kāi)發(fā)環(huán)境
Code::Blocks :免費(fèi)C,C++和Fortran的集成開(kāi)發(fā)環(huán)境
CodeLite :另一個(gè)跨平臺(tái)的免費(fèi)的C/C++集成開(kāi)發(fā)環(huán)境
Dev-C++:可移植的C/C++/C++11集成開(kāi)發(fā)環(huán)境
Eclipse CDT:基于Eclipse平臺(tái)的功能齊全的C和C++集成開(kāi)發(fā)環(huán)境
Geany :輕量級(jí)的快速,跨平臺(tái)的集成開(kāi)發(fā)環(huán)境。
IBM VisualAge :來(lái)自IBM的家庭計(jì)算機(jī)集成開(kāi)發(fā)環(huán)境。
Irony-mode:由libclang驅(qū)動(dòng)的用于Emacs的C/C++微模式
KDevelop:免費(fèi)開(kāi)源集成開(kāi)發(fā)環(huán)境
Microsoft Visual Studio :來(lái)自微軟的集成開(kāi)發(fā)環(huán)境
NetBeans :主要用于Java開(kāi)發(fā)的的集成開(kāi)發(fā)環(huán)境,也支持其他語(yǔ)言,尤其是PHP,C/C++和HTML5。
Qt Creator:跨平臺(tái)的C++,Javascript和QML集成開(kāi)發(fā)環(huán)境,也是Qt SDK的一部分。
rtags:C/C++的客戶端服務(wù)器索引,用于 跟基于clang的emacs的集成
Xcode :由蘋果公司開(kāi)發(fā)
YouCompleteMe:一個(gè)用于Vim的根據(jù)你敲的代碼快速模糊搜索并進(jìn)行代碼補(bǔ)全的引擎。
構(gòu)建系統(tǒng)
Bear :用于為clang工具生成編譯數(shù)據(jù)庫(kù)的工具
Biicode:基于文件的簡(jiǎn)單依賴管理器。
CMake :跨平臺(tái)的免費(fèi)開(kāi)源軟件用于管理軟件使用獨(dú)立編譯的方法進(jìn)行構(gòu)建的過(guò)程。
CPM:基于CMake和Git的C++包管理器
FASTBuild:高性能,開(kāi)源的構(gòu)建系統(tǒng),支持高度可擴(kuò)展性的編譯,緩沖和網(wǎng)絡(luò)分布。
Ninja :專注于速度的小型構(gòu)建系統(tǒng)
Scons :使用Python scipt 配置的軟件構(gòu)建工具
tundra :高性能的代碼構(gòu)建系統(tǒng),甚至對(duì)于非常大型的軟件項(xiàng)目,也能提供最好的增量構(gòu)建次數(shù)。
tup:基于文件的構(gòu)建系統(tǒng),用于后臺(tái)監(jiān)控變化的文件。
靜態(tài)代碼分析
提高質(zhì)量,減少瑕疵的代碼分析工具列表
Cppcheck :靜態(tài)C/C++代碼分析工具
include-what-you-use :使用clang進(jìn)行代碼分析的工具,可以#include在C和C++文件中。
OCLint :用于C,C++和Objective-C的靜態(tài)源代碼分析工具,用于提高質(zhì)量,減少瑕疵。
Clang Static Analyzer:查找C,C++和Objective-C程序bug的源代碼分析工具
靜態(tài)分析是指?
經(jīng)濟(jì)領(lǐng)域概念
靜態(tài)分析是一種分析經(jīng)濟(jì)現(xiàn)象的均衡狀態(tài)以及有關(guān)的經(jīng)濟(jì)變量達(dá)到均衡狀態(tài)所需要條件的分析方法。[1]而不考慮經(jīng)濟(jì)現(xiàn)象達(dá)到均衡狀態(tài)的過(guò)程,它完全抽象掉了時(shí)間因素和具體的變化過(guò)程,是一種靜止地、孤立地考察某種經(jīng)濟(jì)事物的方法。?
百科
?
?
靜態(tài)分析
經(jīng)濟(jì)領(lǐng)域概念
靜態(tài)分析是一種分析經(jīng)濟(jì)現(xiàn)象的均衡狀態(tài)以及有關(guān)的經(jīng)濟(jì)變量達(dá)到均衡狀態(tài)所需要條件的分析方法。[1]而不考慮經(jīng)濟(jì)現(xiàn)象達(dá)到均衡狀態(tài)的過(guò)程,它完全抽象掉了時(shí)間因素和具體的變化過(guò)程,是一種靜止地、孤立地考察某種經(jīng)濟(jì)事物的方法。
中文名
靜態(tài)分析
外文名
static analysis
指標(biāo)
總量指標(biāo)、相對(duì)指標(biāo)、平均指標(biāo)、標(biāo)志變異指標(biāo)等
應(yīng)用
靜態(tài)計(jì)算機(jī)科學(xué)、經(jīng)濟(jì)學(xué)、工程、力學(xué)、機(jī)械
釋義
根據(jù)既定的外生變量值求得內(nèi)生變量的分析方法
內(nèi)涵
靜態(tài)分析法是根據(jù)既定的外生變量值求得內(nèi)生變量的分析方法,是對(duì)已發(fā)生的經(jīng)濟(jì)活動(dòng)成果,進(jìn)行綜合性的對(duì)比分析的一種分析方法。
如研究均衡價(jià)格時(shí),舍掉時(shí)間、地點(diǎn)等因素,并假定影響均衡價(jià)格的其他因素,如消費(fèi)者偏好、收入及相關(guān)商品的價(jià)格等靜止不變,單純分析該商品的供求達(dá)于均衡狀態(tài)的產(chǎn)量和價(jià)格的決定。簡(jiǎn)單地說(shuō)就是抽象了時(shí)間因素和具體變動(dòng)的過(guò)程,靜止地孤立地考察某些經(jīng)濟(jì)現(xiàn)象。它一般用于分析經(jīng)濟(jì)現(xiàn)象的均衡狀態(tài)以及有關(guān)經(jīng)濟(jì)變量達(dá)到均衡狀態(tài)所需要的條件。
常用的靜態(tài)分析法有:相對(duì)數(shù)分析法、平均數(shù)分析法、比較分析法、結(jié)構(gòu)分析法、因素替換分析法、綜合計(jì)算分析法、價(jià)值系數(shù)分析法等。
指標(biāo)
程序靜態(tài)分析的著名的靜態(tài)分析工具
Meta-Compilation(Coverity)
由Stanford大學(xué)的Dawson Engler副教授等研究開(kāi)發(fā),該靜態(tài)分析工具允許用戶使用一種稱作metal的狀態(tài)機(jī)語(yǔ)言編寫自定義的時(shí)序規(guī)則,從而實(shí)現(xiàn)了靜態(tài)分析工具的可擴(kuò)展性。MC的實(shí)際效果非常優(yōu)秀,號(hào)稱在Linux內(nèi)核中找出來(lái)數(shù)百個(gè)安全漏洞。MC目前已經(jīng)商業(yè)化,屬于Coverity Inc.2014年被Synopsys收購(gòu)。目前學(xué)術(shù)領(lǐng)域比較認(rèn)可的靜態(tài)分析工具,其技術(shù)處于領(lǐng)先地位。
mygcc 由一個(gè)法國(guó)人N. Volanschi開(kāi)發(fā),其思想來(lái)源于MC,試圖將自定義的錯(cuò)誤檢測(cè)集成到編譯時(shí)。
Klocwork
國(guó)內(nèi)用的最為廣泛的靜態(tài)分析工具,由加拿大北電于1996年研發(fā),是中國(guó)最早的能夠檢測(cè)語(yǔ)義缺陷的靜態(tài)分析工具。截止到2015年其版本號(hào)為V10,也就是大家常說(shuō)的K10
LDRA Testbed
英國(guó)的編碼規(guī)則類檢測(cè)工具,前身為L(zhǎng)iverpool大學(xué)開(kāi)發(fā),能夠支持C/C++數(shù)千種條目的規(guī)則檢測(cè),包括MISRA C/C++, GJB5369等,是最早進(jìn)入中國(guó)市場(chǎng)的靜態(tài)分析工具,在軍隊(duì)、軍工廣泛使用,但其技術(shù)僅支持風(fēng)格類檢測(cè),無(wú)法進(jìn)行語(yǔ)義缺陷分析,導(dǎo)致一些常用的運(yùn)行時(shí)缺陷無(wú)法發(fā)現(xiàn)或者較高誤漏報(bào),由此市場(chǎng)占有率逐步下降。截止到2015年其版本號(hào)為9.5
HP Fortify
美國(guó)HP公司的支持安全漏洞類的檢測(cè)工具,能夠檢測(cè)C/C++/Java/PHP/ASP/JavaScript等多種語(yǔ)言,數(shù)千種檢測(cè)項(xiàng),是國(guó)內(nèi)使用最為廣泛的靜態(tài)分析工具。但該工具整體的誤報(bào)漏報(bào)率較高,雖然支持很多種安全漏洞,但需要用戶做很多的二次開(kāi)發(fā)工作。
Cobot(庫(kù)博)
北京大學(xué)軟件工程中心研發(fā)的靜態(tài)分析工具,能夠支持編碼規(guī)則,語(yǔ)義缺陷的程序分析,能夠支持C/C++數(shù)千條規(guī)則和缺陷的檢測(cè),是我國(guó)唯一可以稱的上是靜態(tài)分析產(chǎn)品的商業(yè)化工具。由于其自主知識(shí)產(chǎn)權(quán),對(duì)國(guó)內(nèi)的操作系統(tǒng),編碼標(biāo)準(zhǔn)支持的較好,檢測(cè)精度也基本與上述工具持平,所以也得到了很多用戶的認(rèn)可。
Parasoft C++Test
美國(guó)Parasoft公司研發(fā)的支持C、C++靜態(tài)分析的工具,該工具除了可以檢測(cè)編碼規(guī)則外,還能檢測(cè)少量的語(yǔ)義缺陷,此外能夠進(jìn)行測(cè)試用例生成。
findbugs和pclint有什么區(qū)別
區(qū)別是:
findbug與pclint都是針對(duì)軟件漏洞進(jìn)行代碼檢測(cè)的工具軟件。findbug針對(duì)的是Java代碼,pclint針對(duì)的是C代碼或者C++。
Findbugs是一款Java靜態(tài)代碼分析工具,與其他靜態(tài)分析工具(如Checkstyle和PMD)不同,F(xiàn)indbugs 不注重樣式或者格式,它專注于尋找真正的缺陷或者潛在的性能問(wèn)題,它可以幫助java工程師提高代碼質(zhì)量以及排除隱含的缺陷。有了靜態(tài)分析工具,就可以在不實(shí)際運(yùn)行程序的情況對(duì)軟件進(jìn)行分析。
Findbugs運(yùn)用Apache BCEL 庫(kù)分析類文件(class文件)而不是源代碼,將字節(jié)碼與一組缺陷模式進(jìn)行對(duì)比以發(fā)現(xiàn)可能的問(wèn)題。
pclint是GIMPEL SOFTWARE 公司研發(fā)的C/C++軟件代碼靜態(tài)分析工具,他的全稱是PC-Lint/FlexeLint for C/C++。PC-Lint 能夠在Windows、MS-DOS 和OS/2 平臺(tái)上使用,以二進(jìn)制可執(zhí)行文檔的形式發(fā)布,而FlexeLint 運(yùn)行于其他平臺(tái),以源代碼的形式發(fā)布。pclint在全球擁有廣泛的客戶群,許多大型的軟件研發(fā)組織都把pclint檢查作為代碼走查的第一道工序。pclint不但能夠?qū)Τ淌竭M(jìn)行全局分析,識(shí)別沒(méi)有被適當(dāng)檢驗(yàn)的數(shù)組下標(biāo),報(bào)告未被初始化的變量,警告使用空指針連同冗余的代碼,還能夠有效地提出許多程序在空間利用、運(yùn)行效率上的改進(jìn)點(diǎn)。
C++靜態(tài)代碼檢查工具?
PC Lint被稱為C / c++的PC - Lint / FlexeLint。它是由GIMPEL軟件開(kāi)發(fā)的C / c++靜態(tài)代碼檢測(cè)工具,由許多大型軟件公司的程序員使用。
C++
我們知道,許多用戶從事開(kāi)發(fā)C / c++編程語(yǔ)言,其語(yǔ)法沒(méi)有其他語(yǔ)言的靈活性,這種靈活性使促進(jìn)代碼的效率,但由于C / c++編譯器不是強(qiáng)制性的類型檢查,不做任何邊境檢查,這就增加了代碼中存在的隱患的可能性。PC Lint,這個(gè)軟件的重點(diǎn)是對(duì)代碼的邏輯分析,它可以在潛在錯(cuò)誤的代碼中找到,比如數(shù)組訪問(wèn)跨界、內(nèi)存泄漏、使用未初始化的變量等,用于檢測(cè)編譯器無(wú)法檢測(cè)到的bug通常類型。
內(nèi)容
PC線頭是靜態(tài)代碼檢測(cè)工具,可以說(shuō),PC -線頭更嚴(yán)格的編譯器,不僅可以像普通編譯器檢查一般的語(yǔ)法錯(cuò)誤,也可以看看那些盡管語(yǔ)法要求完全,但是可能是潛在的,不容易找到錯(cuò)誤。
PC的棉絮不僅可以檢測(cè)單個(gè)文件,也可以從整個(gè)項(xiàng)目的角度檢測(cè)問(wèn)題,因?yàn)橐粋€(gè)固有的C語(yǔ)言編譯器編譯,編譯器環(huán)境中這些問(wèn)題很難發(fā)現(xiàn),線頭和PC的檢查當(dāng)前文件同時(shí)還將檢查所有相關(guān)的文檔,可想而知,它將對(duì)我們有很大的幫助。
方式
PC lint幾乎支持所有流行的編輯器和編譯器環(huán)境,例如Borland c++從1到5。xx版本,Borland c++構(gòu)建,GCC,VC,watcomC / c++,insight的來(lái)源,intelC / c++,等等,也支持16 /32/ 64平臺(tái)環(huán)境。
所示。支持Scott Meyes的經(jīng)典(有效的c++ /更有效的c++),各種提高效率和防止錯(cuò)誤的方法。
關(guān)于源代碼靜態(tài)分析工具和靜態(tài)代碼檢測(cè)工具的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
掃描二維碼推送至手機(jī)訪問(wèn)。
版權(quán)聲明:本文由飛速云SEO網(wǎng)絡(luò)優(yōu)化推廣發(fā)布,如需轉(zhuǎn)載請(qǐng)注明出處。