工具集
本章將為您提供有關Wireshark開發所需的各種工具的信息。運行Wireshark不需要本章中提到的任何工具。他們只需要建造它。
這些工具大多數都起源于UNIX或類似UNIX的平臺(例如Linux),但是Windows端口也可用。
以下各節對特定工具的功能,在Wireshark項目中如何使用以及如何安裝和測試進行了非常簡要的描述。
這些工具的文檔不在本文檔范圍內。如果您需要有關使用特定工具的更多信息,則應該在網絡上找到許多有用的信息,因為這些工具是常用的。您也可以通過**toolname** --help或手冊頁獲得有關基于UNIX的工具的幫助。man **toolname**
Chocolatey
Chocolatey是Windows軟件包管理器,可用于安裝(和更新)Wireshark開發所需的許多軟件包。可以從網站或命令提示符處獲取Chocolatey:
C:>@powershell -NoProfile -ExecutionPolicy unrestricted -Command “iex ((new-object net.webclient).DownloadString(https://chocolatey.org/install.ps1))” && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin
或Powershell提示:
PS:>iex ((new-object net.webclient).DownloadString(https://chocolatey.org/install.ps1))
Chocolatey有時會將軟件包安裝在意想不到的位置。Python是一個著名的例子。雖然通常將其安裝在頂級目錄(例如C:\ Python37或%PROGRAMFILES%)(例如C:\ Program Files \ Python37)中,但Chocolatey傾向于將其安裝在 C:\ ProgramData \ chocolatey或C:\ Tools下。如果要避免這種行為,您可能會希望使用python.org中的軟件包安裝Python。
CMake
可以在各種類似UNIX的平臺(包括Linux,macOS和* BSD)以及Windows上使用CMake配置Wireshark的構建環境。CMake旨在支持樹外構建-如此之多,以至于樹內構建在所有情況下均無法正常工作。除了跨平臺之外,CMake還支持許多構建工具和環境,包括傳統的make,Ninja和MSBuild。我們的Buildbot在Ubuntu,Win32,Win64和macOS上運行CMake步驟。特別是,macOS和Windows軟件包是使用CMake構建的。
使用CMake進行構建通常包括創建構建目錄并指定生成器(也稱為構建工具)。例如,要使用wireshark-ninja目錄中的Ninja來構建Wireshark,您可以運行以下命令:
# Starting from your Wireshark source directory, create a build directory
# alongside it.
$ cd ..
$ mkdir wireshark-ninja
$ cd wireshark-ninja
# Assumes your source directory is named “wireshark”.
$ cmake -G Ninja ../wireshark
$ ninja (or cmake –build .)
除了使用-G標志指定生成器之外,還可以使用-D標志設置變量。有用的變量和生成器包括以下內容:
-DBUILD_wireshark=OFF
不要構建Wireshark GUI應用程序。每個命令行實用程序也都有其自己的BUILD_xxx標志。例如,可以使用-DBUILD_mmdbresolve = OFF禁用mmdbresolve。
-DENABLE_CAP=OFF
禁用POSIX功能檢查
-DCMAKE_BUILD_TYPE=Debug
啟用調試符號
-DCARES_INCLUDE_DIR=/your/custom/cares/include, -DCARES_LIBRARY=/your/custom/cares/lib/libcares.so
讓您將路徑設置為c-ares的本地編譯版本。大多數可選庫具有xxx_INCLUDE_DIR和xxx_LIB標志,可用于控制它們的發現。
-DCMAKE_OSX_DEPLOYMENT_TARGET=10.12
為Wireshark和每個命令行實用程序指定最低macOS版本。請注意,這不會影響第三方庫的最低目標。
-DENABLE_APPLICATION_BUNDLE=OFF
禁用在macOS上構建應用程序捆綁包(Wireshark.app)
您可以通過運行列出所有構建變量cmake -LH [options] ../<Name_of_WS_source_dir>。這列出了cmake運行后構建變量的緩存。要僅查看當前緩存,請添加option -N。
運行cmake之后,您始終可以運行make help以查看所有可能的make目標的列表。
請注意,到目前為止,CMake尊重用戶umask用于創建目錄。您應在運行install目標之前顯式設置umask 。
CMake鏈接:
CMake項目的主頁:https : //cmake.org/
官方文檔:https://cmake.org/documentation/
關于CMake的一般知識以及為什么KDE4使用它:https : //lwn.net/Articles/188693/
有用的變量:https : //gitlab.kitware.com/cmake/community/wikis/doc/cmake/Useful-Variables
常見問題解答:https : //gitlab.kitware.com/cmake/community/wikis/FAQ
GNU Compiler Toolchain (UNIX And UNIX-like Platforms)
gcc(GNU Compiler Collection)
GCC C編譯器可用于大多數UNIX和類似UNIX的操作系統。
如果尚未安裝GCC或將其作為平臺的軟件包提供,則可以從以下位置獲取:GCC.https: //gcc.gnu.org/。
正確安裝后,在bash命令行提示符下鍵入:
$ gcc –version
結果:
gcc (Ubuntu 4.9.1-16ubuntu6) 4.9.1
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
gdb(GNU項目調試器)
GDB是GCC編譯器的調試器。它可用于許多(如果不是全部)類似UNIX的平臺。
如果您不喜歡使用命令行進行調試,則可以使用許多 GUI前端,包括Qt Creator,CLion和Eclipse。
如果尚未為您的平臺安裝gdb或將其作為軟件包提供,則可以從以下網址獲取gdb:https: //www.gnu.org/software/gdb/gdb.html。
正確安裝后:
$ gdb –version
結果:
GNU gdb (GDB) 8.3
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
make (GNU Make)
Windows也不支持GNU make
GNU Make可用于大多數類似UNIX的平臺。
如果尚未為您的平臺安裝GNU Make或將其作為軟件包提供,則可以從以下網址獲取它:https : //www.gnu.org/software/make/。
正確安裝后:
$ make –version
結果:
GNU Make 4.0
Built for x86_64-pc-linux-gnu
Copyright (C) 1988-2013 Free Software Foundation, Inc.
Licence GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Ninja
Ninja是替代產品,可用于許多類似UNIX的平臺。它比build更快地運行構建。
它的設計目的是通過諸如CMake之類的工具生成其生成文件。要為Ninja生成構建文件,請使用-G Ninja標記運行CMake 。
如果尚未安裝Ninja,請訪問以下網址查看有關Ninja軟件包的建議列表:https : //github.com/ninja-build/ninja/wiki/Pre-built-Ninja-packages。
如果尚未安裝Ninja,也無法將其作為平臺軟件包使用,則可以從以下網址獲取:https : //ninja-build.org。您可以下載Linux,macOS和Windows的源代碼或二進制文件(我們尚未在Windows上測試Ninja)。
Microsoft compiler toolchain (Windows native)
要使用Microsoft C / C ++編譯器在Windows上編譯Wireshark,您需要:
- C compiler (cl.exe)
- Assembler (ml.exe for 32-bit targets and ml64.exe for 64-bit targets)
- Linker (link.exe)
- Resource Compiler (rc.exe)
- C runtime headers and libraries (e.g. stdio.h, vcruntime140.lib)
- Windows platform headers and libraries (e.g. windows.h, WS2_32.lib)
- HTML help headers and libraries (htmlhelp.h, htmlhelp.lib)
cl.exe(C編譯器)
正確安裝工具鏈后,在Visual Studio命令行提示符(cmd.exe)中鍵入:
> cl
結果:
Microsoft (R) C/C++ Optimizing Compiler Version 19.23.28106.4 for x64
Copyright (C) Microsoft Corporation. All rights reserved.
用法: cl [ option… ] filename… [ /link linkoption… ]
link.exe(鏈接器)
正確安裝后,在Visual Studio命令行提示符(cmd.exe)中鍵入:
> link
結果:
Microsoft (R) Incremental Linker Version 14.23.28106.4
Copyright (C) Microsoft Corporation. All rights reserved.
用法: LINK [options] [files] [@commandfile]
…
Visual C++ Runtime “Redistributable” Files
Wireshark及其庫依賴于POSIX函數,例如fopen()和malloc()。在Windows上,這些功能由Microsoft Visual C ++運行時提供。CRT和Visual C ++ 2015有很多不同的版本,后來使用Universal CRT。
通用CRT是Windows 10的標準配置,并作為Windows Update的一部分安裝在Windows的早期版本中。Wireshark .exe安裝程序包括可再發行文件(vcredist_x86.exe或 vcredist_x64.exe),這些文件可確保安裝了通用CRT并保持最新狀態。
在下載了vcredist_x86.exe或vcredist_x64.exe的所有情況下,都應將其下載到已下載并安裝Wireshark支持庫的目錄中。該目錄由WIRESHARK_BASE_DIR或 WIRESHARK_LIB_DIR環境變量指定。下載后,它不必也不應運行。
Windows Platform SDK
Windows Platform SDK(PSDK)或Windows SDK是免費下載,并且包含平臺特定的頭文件和庫(例如windows.h,WSock32.lib等)。隨著Windows新功能的不斷發展,包括新的和更新的API在內的更新的SDK可用。
當您購買商業Visual Studio或使用Community Edition時,它將包含一個SDK。
Visual Studio集成調試器
如果您的工具鏈包含該工具,則可以使用Visual Studio的集成調試器。在生成目錄中打開解決方案,然后使用Visual Studio解決方案正常進行生成和調試。
要在調試器下運行Wireshark時為Visual Studio設置正確的路徑,請在從同一命??令提示符打開Visual Studio之前,將生成輸出目錄添加到該路徑,例如:
C:\Development\wsbuild64>set PATH=”%PATH%;C:\Development\wsbuild64\run\RelwithDebInfo”
C:\Development\wsbuild64>wireshark.sln
供PowerShell使用:
PS C:\ Development \ wsbuild64> $ env:PATH + =“; $(Convert-Path run \ RelWithDebInfo)” PS C:\ Development \ wsbuild64> wireshark.sln
當Visual Studio完成加載解決方案后,通過在“解決方案資源管理器”窗口中右鍵單擊可執行文件,然后選擇“設置為啟動項目”,將可執行文件設置為在調試器中運行,例如Executables \ Wireshark。還要從工具欄上的下拉列表中設置解決方案配置(通常是RelWithDebInfo)。
Windows調試工具
您也可以使用Windows的Microsoft調試工具工具包,它是一個獨立的GUI調試器。盡管與使用Visual Studio集成調試器進行調試相比,它不那么舒適,但是如果必須在沒有集成調試器的計算機上進行調試,則可能會有所幫助。
您也可以使用Chocolatey安裝WinDbg:
PS:> choco install windbg
要使用WinDbg調試Wireshark,請使用File→Open Executable …菜單打開Wireshark的內置副本,即C:\ Development \ wsbuild64 \ run \ RelWithDebInfo \ Wireshark.exe。要設置斷點,請使用文件→打開源文件…菜單打開所需的源文件,然后單擊所需的行并按F9。要運行該程序,請按F5。
如果您需要非優化版本,請使用調試配置(例如)進行構建 msbuild /m /p:Configuration=Debug Wireshark.sln。構建產品位于C:\ Development \ wsbuild64 \ run \ Debug \。
bash
Unix系統
Bash(GNU Bourne-Again SHell)可用于大多數UNIX和類似UNIX的平臺。如果尚未安裝或無法作為平臺的軟件包使用,則可以從https://www.gnu.org/software/bash/bash.html獲得 。
正確安裝后,在bash命令行提示符下鍵入:
$ bash –version
結果:
GNU bash, version 4.4.12(1)-release (x86_64-pc-linux-gnu)
Copyright (C) 2016 Free Software Foundation, Inc.
Python
Python是一種解釋型編程語言。它用于生成一些源文件,文檔,測試和其他任務。需要Python 3.4和更高版本。不再支持Python 2.7。
在大多數類似UNIX的平臺上都包含Python或將其作為軟件包提供。Windows軟件包和源代碼可從https://python.org/download/獲得。
您還可以使用Chocolatey安裝Python:
$ python3 –version
rem Official package
C:> cd python35
C:Python35> python –version
rem Chocolatey
C:> cd \tools\python3
C:\tools\python3> python –version
在Windows上。你應該看到類似
Python 3.5.1
Perl
Perl是一種解釋型編程語言。Perl項目的主頁是 https://www.perl.org。 Perl用于將各種文本文件轉換為可用的源代碼。Perl 5.6及更高版本應該可以正常工作。
Unix系統
Perl可用于大多數UNIX和類似UNIX的平臺。如果尚未安裝perl或將其作為平臺的軟件包提供,則可以從https://www.perl.org/獲得。
正確安裝后,在bash命令行提示符下鍵入:
$ perl –version
結果:
This is perl 5, version 26, subversion 0 (v5.26.0) built for x86_64-linux-gnu-thread-multi
(with 62 registered patches, see perl -V for more detail)
Windows
可以從Strawberry Perl或 Active State獲得本機Windows Perl軟件包 。安裝應該很簡單。
您也可以使用Chocolatey安裝以下任一軟件包:
PS:> choco install StrawberryPerl
或者:
PS:> choco install ActivePerl
正確安裝后,在命令行提示符下鍵入(cmd.exe):
> perl -v
結果:
This is perl, v5.8.0 built for MSWin32-x86-multi-thread
(with 1 registered patch, see perl -V for more detail)
Bison
Bison是解析器生成器,用于Wireshark的某些文件格式支持。
Unix
Bison可用于大多數UNIX和類似UNIX的平臺。有關本機Windows選項,請參見下一部分。
如果尚未安裝GNU Bison或將其作為平臺的軟件包提供,則可以從以下位置獲取它:https : //www.gnu.org/software/bison/bison.html。
正確安裝后,運行以下命令:
$ bison –version
結果:
bison (GNU Bison) 2.3
Written by Robert Corbett and Richard Stallman.
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Flex
Flex是詞法分析器生成器,用于Wireshark的顯示過濾器,某些文件格式和其他功能。
Unix
Flex適用于大多數UNIX和類似UNIX的平臺。有關本機Windows選項,請參見下一部分。
如果尚未安裝GNU flex或將其作為平臺的軟件包提供,則可以從https://www.gnu.org/software/flex/獲得。
正確安裝后,運行以下命令:
$ flex –version
結果:
flex version 2.5.4
Windows
winflexbison Chocolatey軟件包中提供了Flex的本機Windows版本。請注意,可執行文件名為 win_flex。
PS:> choco install winflexbison
Git 客戶端
Wireshark項目使用其自己的Git存儲庫來跟蹤對源代碼所做的所有更改。
Unix
Git可用于大多數UNIX和類似UNIX的平臺。如果尚未安裝Git或將其作為平臺的軟件包提供,則可以通過以下網址獲取它:https : //git-scm.com/。
正確安裝后,在bash命令行提示符下鍵入:
$ git –version
結果類似下面:
git version 2.14.1
Windows
Windows的Git命令行工具可以在https://git-scm.com/download/win上找到, 也可以使用Chocolatey安裝:
PS:> choco install git
正確安裝后,在命令行提示符下鍵入(cmd.exe):
> git –version
結果類似下面:
git version 2.16.1.windows.1
Wireshark中文使用教程(開發版)
推薦文章: