關于windiff
WinDiff是一款功能強大的Windows二進制源代碼安全分析與調試工具,提供開源解決方案,通過Web界面實現其功能。它能夠幫助研究人員在不同版本的操作系統(tǒng)中瀏覽和比較microsoft Windows二進制文件的符號、類型和系統(tǒng)調用信息。WinDiff的二進制源碼數據庫支持自動更新,以包含來自最新Windows更新升級(包括Insider Preview)的信息。該工具受到了ntdiff項目的啟發(fā),并整合了Winbindex項目的部分功能。
工具運行機制
WinDiff由兩部分組成:一個用rust編寫的CLI工具和一個用typescript和Next.JS框架開發(fā)的Web前端。CLI工具負責從配置文件中生成壓縮的JSON數據庫,并通過Winbindex查找和下載所需的PE和PDB文件。CLI工具的主要功能是在發(fā)布新版本的Windows時,能夠輕松地更新和重新生成數據庫。其代碼位于項目的windiff_CLI目錄中。
Web前端則以用戶友好的方式展示CLI工具生成的數據。它遵循與ntdiff相同的設計理念,允許用戶瀏覽從特定版本的Microsoft Windows的官方PE和PDB文件中提取的信息,并在不同版本之間進行比較。前端的代碼位于項目的windiff_frontend目錄中。
同時,該工具還設置了一個gitHub Action計劃任務,每天從Winbindex獲取新的更新數據,并更新用于生成WinDiff實時版本的配置文件。
工具要求
工具下載
研究人員可以通過以下命令將該項目源碼克隆至本地:
git clone https://www.php.cn/link/4e91896d95a8e2468961d0a1cc72b306.git
代碼構建
我們可以直接切換到項目目錄,并執(zhí)行“ci/build_frontend.sh”腳本。該腳本能夠幫助我們自動化完成實時版本的WinDiff構建,腳本內容如下:
# 解析項目根目錄 PROJECT_ROOT=$(git rev-parse --show-toplevel) # 生成數據庫 cd "$PROJECT_ROOT/windiff_cli" cargo run --release "$PROJECT_ROOT/ci/db_configuration.json" "$PROJECT_ROOT/windiff_frontend/public/" # 構建前端 cd "$PROJECT_ROOT/windiff_frontend" npm ci npm run build
用于為實時版本WinDiff生成數據的配置文件路徑為“ci/db_configuration.json”,但我們可以根據需求對其進行自定義修改和配置。
工具運行截圖
許可證協(xié)議
本項目的開發(fā)與發(fā)布遵循GPL-3.0開源許可證協(xié)議。
項目地址
WinDiff:https://www.php.cn/link/4e91896d95a8e2468961d0a1cc72b306