靜態(tài)代碼分析工具匯總

靜態(tài)代碼掃描盏檐,借用一段網(wǎng)上的原文解釋一下(這里叫靜態(tài)檢查):“靜態(tài)測試包括代碼檢查蜗巧、靜態(tài)結(jié)構(gòu)分析、代碼質(zhì)量度量等奏赘。它可以由人工進行寥闪,充分發(fā)揮人的邏輯思維優(yōu)勢,也可以借助軟件工具自動進行磨淌。代碼檢查代碼檢查包括代碼走查疲憋、桌面檢查、代碼審查等梁只,主要檢查代碼和設計的一致性缚柳,代碼對標準的遵循、可讀性搪锣,代碼的邏輯表達的正確性秋忙,代碼結(jié)構(gòu)的合理性等方面;可以發(fā)現(xiàn)違背程序編寫標準的問題构舟,程序中不安全灰追、不明確和模糊的部分,找出程序中不可移植部分狗超、違背程序編程風格的問題弹澎,包括變量檢查、命名和類型審查努咐、程序邏輯審查苦蒿、程序語法檢查和程序結(jié)構(gòu)檢查等內(nèi)容∩裕”佩迟。

我看了一系列的靜態(tài)代碼掃描或者叫靜態(tài)代碼分析工具后,總結(jié)對工具的看法:靜態(tài)代碼掃描工具竿屹,和編譯器的某些功能其實是很相似的报强,他們也需要詞法分析,語法分析羔沙,語意分析...但和編譯器不一樣的是他們可以自定義各種各樣的復雜的規(guī)則去對代碼進行分析躺涝。

以下將會列出的靜態(tài)代碼掃描工具,會由于實現(xiàn)方法,算法坚嗜,分析的層次不同夯膀,功能上會差異很大。有的可以做SQL注入的檢查苍蔬,有的則不能(當然诱建,由于時間問題還沒有對規(guī)則進行研究,但要檢查復雜的代碼安全漏洞碟绑,是需要更高深分析算法的俺猿,所以有的東西應該不是設置規(guī)則庫就可以檢查到的,但在安全方面的檢查格仲,一定程度上也是可以通過設置規(guī)則進行檢查的)押袍。

.NET

  • .NET Compiler Platform(代號羅斯林) -開源編譯器框架,C#Visual Basic .NET中開發(fā)的微軟 .NET凯肋。提供用于分析和操作語法的API谊惭。
  • CodeIt.Right -結(jié)合靜態(tài)代碼分析和自動重構(gòu)最佳實踐,它允許代碼中的錯誤和違規(guī)行為自動修正; 支持C#和VB.NET侮东。
  • 的CodeRush -一個插件的Visual Studio它提醒用戶侵犯最佳做法圈盔。
  • 的FxCop -免費靜態(tài)分析微軟.NET程序編譯為CIL。獨立和集成在一些微軟的Visual Studio版本; 微軟悄雅。
  • NDepend的 -簡化了管理驱敲,通過分析和可視化代碼的依賴關系,通過定義設計規(guī)則宽闲,這樣做影響分析復雜的.NET代碼庫众眨,并通過比較不同版本的代碼。集成到Visual Studio中便锨。
  • Parasoft dotTEST -靜態(tài)分析围辙,單元測試和代碼審查的插件為Visual Studio的 ; 適用于語言的Microsoft .NET Framework和.NET Compact Framework我碟,包括C#放案,VB.NET,ASP.NET和托管C ++矫俺。
  • 了StyleCop -分析C#源代碼來執(zhí)行一組風格和一致性規(guī)則吱殉。它可以從內(nèi)部運行的Microsoft Visual Studio中或整合到MSBuild的項目。

?厘托,C ++

  • Astrée -查找所有可能的運行時錯誤抽象解釋友雳,可以證明不存在運行時錯誤,并能證明功能的斷言; 針對對安全至關重要的C代碼(例如航空電子設備)铅匹。
  • BLAST - (伯克利懶惰抽象軟件驗證工具) -對C程序的基礎上慵懶抽象的開源軟件模型檢測(后續(xù)項目CPAchecker押赊。[5])。
  • Cppcheck -開源的工具來檢查幾種類型的錯誤包斑,包括使用STL流礁。
  • cpplint -一個開源的工具涕俗,它檢查是否符合谷歌的風格指南對C ++編碼。
  • Clang -一個開放源代碼編譯器神帅,它包括一個靜態(tài)分析器它包括一個靜態(tài)分析器再姑。
  • Coccinelle的 -一個開源的源代碼模式匹配和改造。
  • Cppdepend -簡化了管理找御,通過分析和可視化代碼的依賴關系元镀,通過定義設計規(guī)則,這樣做影響分析霎桅,并比較不同版本的代碼的復雜的C / C ++代碼庫栖疑。
  • ECLAIR -對于自動分析,驗證滔驶,C和C ++程序的測試和轉(zhuǎn)化的平臺蔽挠。
  • Eclipse(軟件) -一種開放源碼的IDE,包括靜態(tài)代碼分析儀(CODAN)瓜浸。
  • Fluctuat - 抽象解釋的程序數(shù)值屬性的驗證澳淑。
  • Frama-C -一個開源的靜態(tài)分析框架C.
  • Goanna -軟件分析工具,用于C / C ++插佛。
  • Klocwork的靜態(tài)代碼分析 -靜態(tài)分析工具杠巡,用于C / C ++。
  • Lint -原來的靜態(tài)代碼分析儀C.
  • LDRA Testbed -軟件分析與測試工具套件的C / C ++雇寇。
  • Parasoft C / C ++test - C / C ++工具氢拥,它的靜態(tài)分析,單元測試锨侯,代碼審查嫩海,并且運行時錯誤檢測; 可用于插件的Visual StudioEclipse的基礎的集成開發(fā)環(huán)境。
  • PC-Lint -軟件分析工具囚痴,用于C / C ++叁怪。
  • Polyspace -使用抽象解釋檢測和證明不存在的運行時間錯誤,在死代碼的源代碼以及用于檢查所有MISRA(2004深滚,2012)奕谭,規(guī)則(指令,非指令)痴荐。
  • PVS-Studio -軟件分析工具血柳,用于C,C ++生兆,C ++ 11难捌,C ++ / CX(組件擴展)。
  • PRQA QA·C與QA·C ++ -的C / C ++質(zhì)量保證和方針/編碼標準執(zhí)法與MISRA支持深度靜態(tài)分析。
  • SLAM project -一期工程微軟研究院檢查它使用的接口軟件滿足的關鍵行為屬性根吁。
  • Sparse -一個開源工具昆汹,旨在發(fā)現(xiàn)故障的Linux內(nèi)核。
  • Splint -一個開源的進化版皮棉婴栽,為C.
  • ...

Java

  • Checkstyle -除了一些靜態(tài)代碼分析满粗,它可以用來顯示侵犯一個配置編碼標準。
  • FindBugs -一個開源的靜態(tài)分析字節(jié)碼的Java(基于雅加達 BCEL馬里蘭大學)愚争。
  • IntelliJ IDEA -跨平臺的Java IDE映皆,具有自己的一套幾百代碼檢查可在即時在整個項目的編輯和批量分析分析代碼。
  • JArchitect -簡化了分析和可視化代碼的依賴關系轰枝,通過定義設計規(guī)則捅彻,這樣做影響分析,并通過比較不同版本的代碼管理復雜的Java代碼庫鞍陨。
  • Jtest -測試和靜態(tài)代碼分析產(chǎn)品通過Parasoft的步淹。
  • LDRA Testbed -軟件分析與測試工具套件的Java。
  • PMD -靜態(tài)規(guī)則集基于Java源代碼分析器诚撵,能夠識別潛在問題缭裆。
  • SemmleCode -面向?qū)ο蟮拇a查詢靜態(tài)程序分析。
  • Sonargraph(原SonarJ) -代碼為目的的架構(gòu)顯示器的一致性寿烟,也計算了廣泛的軟件度量澈驼。
  • Soot -一個語言處理和優(yōu)化框架由中間語言的Java。
  • Squale -管理軟件質(zhì)量的平臺(也可用于其他語言筛武,使用商業(yè)分析工具雖然)缝其。
  • SonarQube -對代碼質(zhì)量的持續(xù)檢查的開源平臺。
  • SourceQube -一個獨立于平臺的命令行靜態(tài)源代碼分析器用于Java徘六,C / C ++内边,RPG IV(AS / 400)和Python。
  • ThreadSafe -一個靜態(tài)分析工具待锈,用于Java的重點是尋找并發(fā)錯誤漠其。
  • ...

JavaScript

  • Google's Closure Compiler -的JavaScript優(yōu)化器重寫代碼,以更快炉擅,更小辉懒,并檢查使用本地JavaScript功能阳惹。
  • JSLint -的JavaScript 語法檢查和驗證谍失。
  • JSHint - JSLint的的社區(qū)驅(qū)動的叉。

Objective-C, Objective-C++

  • Clang -免費鏘項目包括靜態(tài)分析莹汤。作為版本3.2快鱼,該分析儀包括在Xcode中 。[6]

Perl

  • Perl::Critic -一個工具來幫助實施通用Perl的最佳實踐。大多數(shù)的最佳做法是基于達米安康威Perl的最佳實踐的書抹竹。
  • PerlTidy -程序作為一個語法檢查和測試儀/實施者在Perl的編碼實踐线罕。
  • Padre- Perl的一個IDE,它也提供了靜態(tài)代碼分析檢查常見的初學者的錯誤窃判。

Python的[ 編輯]

  • pylint -靜態(tài)代碼分析钞楼。很嚴格的; 包括許多文體警告也是如此。
  • PyCharm -跨平臺的Python IDE袄琳,具有代碼檢查可在即時在整個項目的編輯和批量分析分析代碼询件。

Fortify:

http://www.fortify.com/

ASPECT:

http://www.aspectsecurity.com/

OWASP:

http://www.owasp.org/index.php/Main_Page

securitycompass:

http://www.securitycompass.com/resources.shtml

參考資料:

  1. http://www.dwheeler.com/flawfinder/
  2. http://www.java2s.com/Product/Java/Byte-Source-Code/Source-Analysis-Diagram.htm
  3. http://www.softwarelist.cn/?fsid=53&cid=530&cpath=ABAN
  4. http://www.hacker.com.cn/article/view_14804.html
  5. http://www.cs.cmu.edu/~aldrich/courses/654/tools/

注:以上鏈接列舉了大量相關工具

原文鏈接:https://blog.csdn.net/dongwuming/article/details/49423909

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市唆樊,隨后出現(xiàn)的幾起案子宛琅,更是在濱河造成了極大的恐慌,老刑警劉巖逗旁,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件嘿辟,死亡現(xiàn)場離奇詭異,居然都是意外死亡片效,警方通過查閱死者的電腦和手機红伦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來淀衣,“玉大人色建,你說我怎么就攤上這事∩噻停” “怎么了箕戳?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長国撵。 經(jīng)常有香客問我陵吸,道長,這世上最難降的妖魔是什么介牙? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任壮虫,我火速辦了婚禮,結(jié)果婚禮上环础,老公的妹妹穿的比我還像新娘囚似。我一直安慰自己,他們只是感情好线得,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布饶唤。 她就那樣靜靜地躺著,像睡著了一般贯钩。 火紅的嫁衣襯著肌膚如雪募狂。 梳的紋絲不亂的頭發(fā)上办素,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音祸穷,去河邊找鬼性穿。 笑死,一個胖子當著我的面吹牛雷滚,可吹牛的內(nèi)容都是我干的需曾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼祈远,長吁一口氣:“原來是場噩夢啊……” “哼胯舷!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起绊含,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤桑嘶,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后躬充,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逃顶,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年充甚,在試婚紗的時候發(fā)現(xiàn)自己被綠了以政。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡伴找,死狀恐怖盈蛮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情技矮,我是刑警寧澤抖誉,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站衰倦,受9級特大地震影響袒炉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜樊零,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一我磁、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧驻襟,春花似錦夺艰、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至厢蒜,卻和暖如春霞势,著一層夾襖步出監(jiān)牢的瞬間烹植,已是汗流浹背斑鸦。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工愕贡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人巷屿。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓固以,卻偏偏與公主長得像,于是被迫代替她去往敵國和親嘱巾。 傳聞我的和親對象是個殘疾皇子憨琳,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_X自主閱讀 15,980評論 3 119
  • (文章中的他代指周平王) 他,在一番命運的波折之后问拘,終于成為了天下的共主遍略。 他,原本就是這個座位的主人骤坐。 他绪杏,...
    桃殳閱讀 171評論 0 1
  • 2017-2020年 將是中國現(xiàn)代農(nóng)業(yè)發(fā)展的“井噴期” 中國農(nóng)業(yè)發(fā)展從2014年開始拌夏,迎來黃金十年僧著。2014年農(nóng)業(yè)...
    沃麥加閱讀 205評論 0 0
  • 前言:嘗試黑白調(diào)+偏藍色系 時間:2016年9月 地點:揚州大學揚子津校區(qū) 雨天是藍色的濾鏡。 我只是覺得我什么都...
    修一云閱讀 203評論 0 0
  • 我在羚城之巔 伊槿 迷迷糊糊的從睡夢中醒來障簿,粗魯?shù)南匆话涯樑住N覀儾幌衿渌呐?..
    伊槿仙子閱讀 254評論 0 1