導航:首頁 > 編程語言 > php靜態分析工具

php靜態分析工具

發布時間:2022-12-15 08:59:14

A. 程序靜態分析的分析技術及實踐

程序靜態分析(Program Static Analysis)可以幫助軟體開發人員、質量保證人員查找代碼中存在的結構性錯誤、安全漏洞等問題,從而保證軟體的整體質量。還可以用於幫助軟體開發人員快速理解文檔殘缺的大規模軟體系統以及系統業務邏輯抽取等系統文檔化等領域。 如開發20年以上的金融核心COBOL系統,動輒上千萬行代碼的系統規模。對於理解這樣規模的系統,基於程序靜態分析的輔助理解工具就能發揮積極作用。
本文首先對程序靜態分析的特點、常用靜態分析技術、靜態分析實現方式進行描述,然後通過一個實例講解了程序靜態分析的執行過程。 程序靜態分析是與程序動態分析相對應的代碼分析技術,它通過對代碼的自動掃描發現隱含的程序問題,主要具有以下特點:
(1)不實際執行程序。動態分析是通過在真實或模擬環境中執行程序進行分析的方法,多用於性能測試、功能測試、內存泄漏測試等方面。與之相反,靜態分析不運行代碼只是通過對代碼的靜態掃描對程序進行分析。
(2)執行速度快、效率高。目前成熟的代碼靜態分析工具每秒可掃描上萬行代碼,相對於動態分析,具有檢測速度快、效率高的特點。
(3)誤報率較高。代碼靜態分析是通過對程序掃描找到匹配某種規則模式的代碼從而發現代碼中存在的問題,例如可以定位strcpy()這樣可能存在漏洞的函數,這樣有時會造成將一些正確代碼定位為缺陷的問題,因此靜態分析有時存在誤報率較高的缺陷,可結合動態分析方法進行修正。 (1)詞法分析:從左至右一個字元一個字元的讀入源程序,對構成源程序的字元流進行掃描,通過使用正則表達式匹配方法將源代碼轉換為等價的符號(Token) 流,生成相關符號列表,Lex為常用詞法分析工具。
(2)語法分析:判斷源程序結構上是否正確,通過使用上下文無關語法將相關符號整理為語法樹, Yacc為常用工具。
(3)抽象語法樹分析:將程序組織成樹形結構,樹中相關節點代表了程序中的相關代碼,目前已有javacc/ Antlra等抽象語法樹生成工具。
(4)語義分析:對結構上正確的源程序進行上下文有關性質的審查。
(5)控制流分析:生成有向控制流圖,用節點表示基本代碼塊,節點間的有向邊代表控制流路徑,反向邊表示可能存在的循環;還可生成函數調用關系圖,表示函數間的嵌套關系。
(6)數據流分析:對控制流圖進行遍歷,記錄變數的初始化點和引用點,保存切片相關數據信息。
(7)污點分析:基於數據流圖判斷源代碼中哪些變數可能受到攻擊,是驗證程序輸入、識別代碼表達缺陷的關鍵。
(8)無效代碼分析,根據控制流圖可分析孤立的節點部分為無效代碼。
程序靜態分析是在不執行程序的情況下對其進行分析的技術,簡稱為靜態分析。而程序動態分析則是另外一種程序分析策略,需要實際執行程序。大多數情況下,靜態分析的輸入都是源程序代碼,只有極少數情況會使用目標代碼。靜態分析這一術語一般用來形容自動化工具的分析,而人工分析則往往叫做程序理解。
靜態分析越來越多地被應用到程序優化、軟體錯誤檢測和系統理解領域。Coverity Inc.的軟體質量檢測產品就是利用靜態分析技術進行錯誤檢測的成功代表。國內某軟體公司的閃蝶(BlueMropho)代碼分析平台,是利用程序靜態分析技術專注於大型機遺留系統的代碼理解領域,尤其擅長分析千萬行代碼規模級的COBOL系統。

B. 逆向需要的工具匯總(持續更新中)

一、砸殼工具

mpdecrypted: https://github.com/stefanesser/mpdecrypted

Clutch: https://github.com/KJCracks/Clutch

二、界面分析工具

Reveal: https://revealapp.com/

三、監控工具

snoop-it: https://code.google.com/archive/p/snoop-it/

introspy: https://github.com/iSECPartners/Introspy-iOS

四、靜態分析工具

IDA: https://www.hex-rays.com/procts/ida/support/download_demo.shtml

Hopper: https://www.hopperapp.com/

五、動態調試工具

lldb: http://lldb.llvm.org/

六、動態腳本工具

cycript: http://www.cycript.org/

frida: http://www.frida.re/

七、抓包工具

BurpSuite: https://portswigger.net/burp/download.html

Charles: https://www.charlesproxy.com/

Wireshark: https://www.wireshark.org/download.html

八、Mac工具

MachOView: https://github.com/gdbinit/MachOView

九、導出頭文件工具

class-mp: https://github.com/nygard/class-mp

十、THEOS越獄開發工具包

thoes: https://github.com/theos/theos/wiki/Installation

十一、文件管理工具

Filza ios設備查看文件系統

iFunBox/iExplorer mac設備查看ios設備的文件系統

十二、debugserver (動態調試,附加子進程)

https://www.jianshu.com/p/36dc01a37180

十三、常用Tweak.xm預處理指令

http://iphonedevwiki.net/index.php/Logos

十四、符號表恢復工具(restore-symbol)

https://github.com/tobefuturer/restore-symbol

其他工具:

iOSOpenDev: https://code.google.com/archive/p/iosopendev/downloads

insert_dylib: https://github.com/Tyilo/insert_dylib

iTerm: http://www.iterm2.com/

Alfred: https://www.alfredapp.com/

iTools: http://www.itools.cn/

更新:2018-8-16
phantomjs :提供一個瀏覽器環境的命令行介面,相當於"虛擬瀏覽器"。
PhantomJS官方地址: http://phantomjs.org/ 。
PhantomJS官方API: http://phantomjs.org/api/ 。
PhantomJS官方示例: http://phantomjs.org/examples/ 。
PhantomJS GitHub: https://github.com/ariya/phantomjs/ 。

參考文檔: http://javascript.ruanyifeng.com/tool/phantomjs.html#toc1

MonkeyDev : https://github.com/AloneMonkey/MonkeyDev
這里我就直接功能點了:
原有iOSOpenDev的升級,非越獄插件開發集成神器!

frida-ios-mp :一鍵砸殼工具,非常的好用。
https://github.com/AloneMonkey/frida-ios-mp

Hookzz :通過Hookzz可以快速找到調用的方法,理清程序調用邏輯。
源碼: https://github.com/jmpews/HookZz
文檔: https://jmpews.github.io/zzpp/getting-started/

C. 做靜態代碼分析都是用那個軟體的

本文首先介紹了靜態代碼分析的基本概念及主要技術,隨後分別介紹了現有 4 種主流 Java 靜態代碼分析工具 (Checkstyle,FindBugs,PMD,Jtest),最後從功能、特性等方面對它們進行分析和比較,希望能夠幫助 Java 軟體開發人員了解靜態代碼分析工具,並選擇合適的工具應用到軟體開發中。


引言

在 Java 軟體開發過程中,開發團隊往往要花費大量的時間和精力發現並修改代碼缺陷。Java 靜態代碼分析(static code analysis)工具能夠在代碼構建過程中幫助開發人員快速、有效的定位代碼缺陷並及時糾正這些問題,從而極大地提高軟體可靠性並節省軟體開發和測試成 本。目前市場上的 Java 靜態代碼分析工具種類繁多且各有千秋,因此本文將分別介紹現有 4 種主流 Java 靜態代碼分析工具 (Checkstyle,FindBugs,PMD,Jtest),並從功能、特性等方面對它們進行分析和比較,希望能夠幫助 Java 軟體開發人員了解靜態代碼分析工具,並選擇合適的工具應用到軟體開發中。

靜態代碼分析工具簡介

什麼是靜態代碼分析

靜態代碼分析是指無需運行被測代碼,僅通過分析或檢查源程序的語法、結構、過程、介面等來檢查程序的正確性,找出代碼隱藏的錯誤和缺陷,如參數不匹配,有歧義的嵌套語句,錯誤的遞歸,非法計算,可能出現的空指針引用等等。

在軟體開發過程中,靜態代碼分析往往先於動態測試之前進行,同時也可以作為制定動態測試用例的參考。統計證明,在整個軟體開發生命周期中,30% 至 70% 的代碼邏輯設計和編碼缺陷是可以通過靜態代碼分析來發現和修復的。

但是,由於靜態代碼分析往往要求大量的時間消耗和相關知識的積累,因此對於軟體開發團隊來說,使用靜態代碼分析工具自動化執行代碼檢查和分析,能夠極大地提高軟體可靠性並節省軟體開發和測試成本。

靜態代碼分析工具的優勢

1. 幫助程序開發人員自動執行靜態代碼分析,快速定位代碼隱藏錯誤和缺陷。

2. 幫助代碼設計人員更專注於分析和解決代碼設計缺陷。

3. 顯著減少在代碼逐行檢查上花費的時間,提高軟體可靠性並節省軟體開發和測試成本。


Java 靜態代碼分析理論基礎和主要技術

D. PHP開發通常使用什麼工具(IDE)


貼近PHP開發的IDE列舉如下:


1.Zend Studio

Zend Studio 來自 Zend —— PHP 幕後的精英團隊

2.NetBeans PHP
NetBeans IDE作為後起之秀,是一款開源集成開發環境,可跨平台使用。且支持PHP、Ruby、JavaScript、Ajax、Groovy、Grails和C/C++等開發語言

3.PhpStorm
PhpStorm是一款由JetBrains公司開發推出的商業PHP 集成開發工具,被譽為最好用的PHP IDE!PhpStorm是一個輕量級且便捷的PHP IDE,其旨在提供用戶效率,可深刻理解用戶的編碼,提供智能代碼補全,快速導航以及即時錯誤檢查

4.Eclipse
在 Eclipse 開發平台中有兩個插件支持 PHP。第一個 PHP IDE 項目是 Eclipse Foundation 項目,這意味著它在 Eclipse 許可范圍內發布,並使用 Eclipse Foundation 工具和方法開發。

5.PHPEclipse

它是獨立開發的。因為使用 Eclipse,所以這兩個插件都可以在三大操作系統中運行:Windows、linux 和 Mac
OS X。您可以只下載這兩個插件(如果已經使用 Eclipse),或者下載包含所需要的全部內容的 PRe-fab 版本

E. php開發工具有哪些

總結了幾款常用PHP開發工具,希望對你有所幫助。

1、EditPlus
一套功能強大,可取代記事本的文字編輯器,擁有無限制的Undo/Redo、英文拼字檢查、自動換行、列數標記、搜尋取代、同時編輯多文件、全屏幕瀏覽功能。而它還有一個好用的功能,就是它有監視剪貼簿的功能,能夠同步於剪貼簿自動將文字貼進EditPlus的編輯窗口中,讓你省去做貼上的步驟。另外它也是一個好用的HTML編輯器,除了可以顏色標記HTML Tag (同時支持C/C++、Perl、Java)外,還內建完整的HTML和CSS1指令功能,對於習慣用記事本編輯網頁的朋友,它可幫你節省一半以上的網頁製作時間,若你有安裝IE 3.0以上版本,它還會結合IE瀏覽器於EditPlus窗口中,讓你可以直接預覽編輯好的網頁(若沒安裝IE,也可指定瀏覽器路徑)。

2、Zend Studio

Zend Studio 是專業開發人員在使用PHP整個開發周期中唯一的集成開發環境 (IDE),它包括了PHP所有必須的開發部件。通過一整套編輯、調試、分析、優化和資料庫工具,Zend Studio 加速開發周期,並簡化復雜的應用方案。

3、Norepad++
Notepad++是一款非常有特色的編輯器,是開源軟體,可以免費使用。
功能有:
①、內置支持多達27種語法高亮度顯示(囊括各種常見的源代碼、腳本,值得一提的是,完美支持.nfo文件查看),也支持自定義語言;
②、可自動檢測文件類型,根據關鍵字顯示節點,節點可自由折疊/打開,代碼顯示得非常有層次感!這是此軟體最具特色的體現之一;
③、可打開雙窗口,在分窗口中又可打開多個子窗口,允許快捷切換全屏顯示模式(F11),支持滑鼠滾輪改變文檔顯示比例,等等;
④、提供數個特色東東,如鄰行互換位置、宏功能,等等…現在網上有很多文件編輯器,這個卻是不可多得的一款,不論是日常使用還是手寫編程代碼,都能讓你體會到它獨有的優勢和方便。

4、PDT(Eclipse PHP Development Tools)

Eclipse這個集成開發環境只要有插件就可以實現相應功能。PDT這個項目很早就開始進行了。Zend Studio for Eclipse就是基於這個插件的,再加上自己的調試器。大家也可以在Eclipse上使用這個插件,然後自己再去選擇調試器來配置自己的開發壞境。至於怎麼配置,網上有人寫出了自己的配置方法,大家可以自己查閱,這里只是介紹工具,這個暫且按下不表。這里我介紹的一個配置完整的包。這個也是Zend開發的,因為是免費的,所以在使用時自然不能和Zend Studio相比。

F. 有什麼工具可以對php程序作靜態代碼檢查

一,PHP腳本與動態頁面。 PHP腳本是一種伺服器端腳本程序,可通過嵌入等方法與HTML文件混合,也可以類,函數封裝等形式,以模板的方式對用戶請求進行處理。

G. 程序靜態分析的著名的靜態分析工具

Meta-Compilation(Coverity)
由Stanford大學的Dawson Engler副教授等研究開發,該靜態分析工具允許用戶使用一種稱作metal的狀態機語言編寫自定義的時序規則,從而實現了靜態分析工具的可擴展性。MC的實際效果非常優秀,號稱在Linux內核中找出來數百個安全漏洞。MC目前已經商業化,屬於Coverity Inc.2014年被Synopsys收購。目前學術領域比較認可的靜態分析工具,其技術處於領先地位。
mygcc 由一個法國人N. Volanschi開發,其思想來源於MC,試圖將自定義的錯誤檢測集成到編譯時。
Klocwork
國內用的最為廣泛的靜態分析工具,由加拿大北電於1996年研發,是中國最早的能夠檢測語義缺陷的靜態分析工具。截止到2015年其版本號為V10,也就是大家常說的K10
LDRA Testbed
英國的編碼規則類檢測工具,前身為Liverpool大學開發,能夠支持C/C++數千種條目的規則檢測,包括MISRA C/C++, GJB5369等,是最早進入中國市場的靜態分析工具,在軍隊、軍工廣泛使用,但其技術僅支持風格類檢測,無法進行語義缺陷分析,導致一些常用的運行時缺陷無法發現或者較高誤漏報,由此市場佔有率逐步下降。截止到2015年其版本號為9.5
HP Fortify
美國HP公司的支持安全漏洞類的檢測工具,能夠檢測C/C++/Java/PHP/ASP/JavaScript等多種語言,數千種檢測項,是國內使用最為廣泛的靜態分析工具。但該工具整體的誤報漏報率較高,雖然支持很多種安全漏洞,但需要用戶做很多的二次開發工作。
Cobot(庫博)
北京大學軟體工程中心研發的靜態分析工具,能夠支持編碼規則,語義缺陷的程序分析,能夠支持C/C++數千條規則和缺陷的檢測,是我國唯一可以稱的上是靜態分析產品的商業化工具。由於其自主知識產權,對國內的操作系統,編碼標准支持的較好,檢測精度也基本與上述工具持平,所以也得到了很多用戶的認可。
Parasoft C++Test
美國Parasoft公司研發的支持C、C++靜態分析的工具,該工具除了可以檢測編碼規則外,還能檢測少量的語義缺陷,此外能夠進行測試用例生成。

H. 比較常用的幾個PHP開發工具

1、瀏覽器擴展組件工具(Firefox擴展)--

FirePHP FirePHP是一款基於Firebug的擴展,phpLangEditor 一款PHP函數庫解釋工具。 PHP Lookup :是一個內置的搜索欄,以幫助您快速查找引用的PHP語法。 PHP ManualSearch :一個方便的搜索欄,從您的Web瀏覽器中搜索官方PHP文檔。

2、PHP代碼調試工具--

Webgrind Webgrind完美支持PHP 5,安裝迅速簡便,可以跨越多個平台運行。 Xdebug Xdebug是使用極為廣泛的PHP代碼調試工具,它提供大量的工具幫助你找出程序中潛在的BUG,並且它得到了很多PHP開發工具的支持,以做為專門的測試工具繼承在這些開發工具中,比如PHPEclipse、phpDesigner等。

3、PHP框架支持--

Dwoo :PHP5 的模板引擎。CodeIgniter 用於敏捷軟體開發的PHP框架。 YII Framework :一個高性能的基於組件的PHP框架。 NetBeans :強大的PHP擴展框架支持集,擁有完善的GUI界面,獨自成為一款強大的PHP開發工具。 Solar symfony :一個開源的PHP Web框架,加速Web應用程序開發的創建與維護。

4、PHP代碼測試、優化工具--

PHPUnit :一款基於PHP 5的JUnit組件測試工具。 SimpleTest SimpleTest是一款高度集成的PHP代碼測試工具。 Selenium :一款專業全自動WEB站點PHP代碼測試工具,比較側重的UI輸入輸出數據測試。PHP_CodeSniffer dBug 一款專注於測試類、對象、數組以及XML文件的PHP工具。 PHP Profile Class

5、PHP擴展、工具集、類庫支持--

SimplePie 此工具可用於PHP RSS解析。 HTML Purifier :此工具可以用來移除所有惡意代碼(XSS),而且還能確保你的頁面遵循W3C的標准規范。 TCPDF :一個可以用於快速生成PDF文件的PHP5函數包。 htmlSQL :一組可以使你方便的對HTML和XML內容方便的使用類似SQL語句進行檢索的PHP類集。

6、PHP集成開發環境(IDE)、編輯器--

PHPEclipse 一個強大的Eclipse環境下開發PHP的插件,包括的主要功能有:PHP語法分析,調試,代碼格式化,大綱視圖,代碼模板定製等。 PhpED 一套Windows環境下的PHP集成開發環境。phpDesigner 一款輕量級的PHP集成開發工具,代碼編輯器功能特別強大,支持在線預覽。 ZendStudio 一 款Eclipse下優秀的PHP開發環境,適用於開發包含豐富介面的RIAs應用程序。

7、PHP在線工具及資源--

Minify:該工具使用 PHP5 開發,用於合並壓縮js/css 文件的應用程序,合並壓縮之後的結果可通過 HTTP gzip/deflate 及一些相關頭,優化客戶端緩存。 HTTP_StaticMerger:CSS和java script文件自動"合並"。 PHP Object Generator 一款PHP代碼生成器,它能夠為你的PHP4/PHP5應用程序生成簡潔和可測試的面向對象代碼。

I. web開發工具都有哪些

Web開發也可以理解為B/S(Brouser/Server)開發,是一種基於瀏覽器載體的框架,包含前端、後端和資料庫三個大的方向,各個方向的技術都不一樣,對應的開發工具也是不一樣的。下面鏈出可以供參考web開發工具的一些介紹

web開發工具

Web前端開發技術包括三個要素:HTML、CSS和JavaScript,當然還有很多高級的前端框架,比如bootstrap、Jquery等,前端開發也是比較的復雜,如果找到規律,開發起來也比較的快。

Web後端技術也有很多,比如.Net、JAVA、PHP等,各大語言都有其開發架構,像.NET的MVC架構,一般web後端技術的知識面是很廣的,設計模式、需求分析、性能優化等都要懂。

資料庫現在有三種主流的資料庫:MysqlSQLserverOracle,還有Nosql資料庫:Redis、Mogodb等。

上述技術對應的開發工具如圖所示:

J. 靜態分析是指

經濟領域概念
靜態分析是一種分析經濟現象的均衡狀態以及有關的經濟變數達到均衡狀態所需要條件的分析方法。[1]而不考慮經濟現象達到均衡狀態的過程,它完全抽象掉了時間因素和具體的變化過程,是一種靜止地、孤立地考察某種經濟事物的方法。
網路


靜態分析
經濟領域概念
靜態分析是一種分析經濟現象的均衡狀態以及有關的經濟變數達到均衡狀態所需要條件的分析方法。[1]而不考慮經濟現象達到均衡狀態的過程,它完全抽象掉了時間因素和具體的變化過程,是一種靜止地、孤立地考察某種經濟事物的方法。

中文名
靜態分析
外文名
static analysis
指標
總量指標、相對指標、平均指標、標志變異指標等
應用
靜態計算機科學、經濟學、工程、力學、機械
釋義
根據既定的外生變數值求得內生變數的分析方法
內涵
靜態分析法是根據既定的外生變數值求得內生變數的分析方法,是對已發生的經濟活動成果,進行綜合性的對比分析的一種分析方法。

如研究均衡價格時,舍掉時間、地點等因素,並假定影響均衡價格的其他因素,如消費者偏好、收入及相關商品的價格等靜止不變,單純分析該商品的供求達於均衡狀態的產量和價格的決定。簡單地說就是抽象了時間因素和具體變動的過程,靜止地孤立地考察某些經濟現象。它一般用於分析經濟現象的均衡狀態以及有關經濟變數達到均衡狀態所需要的條件。

常用的靜態分析法有:相對數分析法、平均數分析法、比較分析法、結構分析法、因素替換分析法、綜合計算分析法、價值系數分析法等。

指標

閱讀全文

與php靜態分析工具相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:758
蘋果郵件無法連接伺服器地址 瀏覽:963
phpffmpeg轉碼 瀏覽:672
長沙好玩的解壓項目 瀏覽:145
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:737
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:302
PDF分析 瀏覽:486
h3c光纖全工半全工設置命令 瀏覽:143
公司法pdf下載 瀏覽:383
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:350
風翼app為什麼進不去了 瀏覽:779
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:151
伊克塞爾文檔怎麼進行加密 瀏覽:893
app轉賬是什麼 瀏覽:163