binwalk在Windows10和kali_Linux下的安裝及使用教程


(一)binwalk簡介
 
  binwalk 是用於搜索給定二進制鏡像文件以獲取嵌入的文件和代碼的工具。 
具體來說,binwalk是一個固件的分析工具,旨在協助研究人員對固件非分析,提取及逆向工程用處。簡單易用,完全自動化腳本,並通過自定義簽名,提取規則和插件模塊,還重要一點的是可以輕松地擴展。
 
(二)Windows下安裝教程
 
首先下載binwalk的安裝包
鏈接:https://github.com/ReFirmLabs/binwalk
 
你還需要在你的電腦上安裝python環境。
筆者這里安裝的是 python3.8 ~
 
下載后解壓~
 
 
 
然后,在binwalk的解壓文件夾下,左手按住shift,右手在空白處鼠標右鍵選擇在此處打開powershell窗口(cmd)。
 
ps:當然,要是你左右手互換或者不用手也可以,哈哈哈(手動狗頭)
 
 
 
安裝命令:  python setup.py install 
 
 
安裝結束就是這個樣子~
 
 
接下來,你找到你自己安裝 python目錄的Scripts 文件夾里,里面有一個名字為binwalk的文件~
 
 
 
 
 
打開Powershell后~
命令: python binwalk xxxx 
 
 
 
但是!
 
怎樣才能才命令提示符窗口下直接調用binwalk呢?
 
  ps:來自筆者“血的教訓”......這種方法.....千萬不要用powershell打開!!!!記住.............. 
 
以下bat和py文件代碼參考pcat大佬的文章~
 
步驟:
 
1.新建一個文件夾(任意目錄),並把文件夾的路徑加入到系統變量path里
 
2.在文件夾里新建一個binwalk.bat文件
 
1 @echo off
2 echo * suggest: you'd better to input the parameters enclosed in double quotes.echo * made by pcat
3 python "%~dp0\p_binwalk.py" %1 %2 %3 %4 %5 %6 %7 %8 %9

 

 
3. 再新建一個p_binwalk.py文件
 
# -*- coding:utf-8 -*-
 
import sys
import binwalk
 
if __name__ == "__main__":
    lst=sys.argv
    if len(lst)<2:
        print("No files.")
        exit()
    try:
        if lst[1][0]=='-':
            binwalk.scan(*lst[2:],signature=lst[1])
        elif lst[1][0]!='-':
            binwalk.scan(*lst[1:],signature=True)
    except:
        pass

 

 
保存~
 
 圖示操作:
 
1.新建文件夾,添加環境變量:
 
 
 
2.新建文件夾的兩個文件:
 
3.在你想分析的文件所在目錄打開cmd:
 
 
 
 
 
再次友情提示:這種方法.....千萬不要用powershell打開!!!!
 
 
在 kali_Linux 里面就方便很多啦~
 
不需要安裝,直接使用就可以啦~
但是必須也在你想要分析的文件當前目錄下打開終端寫命令哦~
 
 
 
(三)功能簡述
 
binwalk主要有過濾功能、提取文件功能、比較功能、字符串分析功能、插件功能。
 
1.過濾功能
  包含過濾器(-y)用於只顯示包括指定搜索文本匹配的結果,其中-y選項可以指定多個:$ binwalk –y filename firmware.bin;
  排除過濾器(-x)用於只顯示排除指定搜索文本匹配的結果,-x選項也可以多次指定:$ binwalk –x filename firmware.bin;
  包含過濾器和排除過濾器兩個功能可以結合使用。
 
2.提取文件
  Binwalk提供多種方法從固件中提取文件系統,用戶可使用-dd選項指定提取規則,手動提取文件;
  -e選項用來自動化提取固件文件系統;提取后的數據需要進一步Binwalk分析時,-Me選項用於遞歸掃描提取數據。
 
3.比較功能
  Binwalk可以生成一個或多個文件的十六進制轉儲和差異分析。
  文件中相同字節綠色顯示,不同字節紅色顯示,藍色表示一些文件中的不同部分:$ binwalk –W firmware1.bin firmware2.bin firmware3.bin
 
4.字符串分析
  Binwalk還可以對目標文件進行一個智能字符串分析,通過應用一些簡單的驗證規則,排除”垃圾”字符串,忽略無順序的數據塊,最終顯示出最有用的信息:$ binwalk –S firmware.bin
 
5.插件功能
  Binwalk最基礎的用法中只是簡單基於就簽名匹配,會導致一些文件無法識別,針對這種問題Binwalk支持不同功能的插件,用於識別特定固件。
 
 
常見應用場景:
1.隱寫術文件分析
2.流量包內含壓縮文件包分析
3.信息收集固件分析
 
(四)常用命令詳解
 
1.掃描選項: 
-B,-- signature 掃描目標文件的常見文件簽名 
-R,--raw = <str>掃描目標文件的指定字符序列 
-A,--opcodes掃描目標文件中常見可執行代碼 
-m,--magic = <file> 指定要使用的自定義魔數簽名文件 
-b,--dumb 禁用智能簽名關鍵字 
-I,--invalid顯示結果標記為無效 
-x,--exclude = <str>排除與<str>匹配的結果 
-y,--include = <str>只顯示匹配<str>的結果 
 
 
2.提取選項:
-e,--extract自動提取已知的文件類型
-D,--dd = <type:ext:cmd>提取<type>簽名,為文件擴展名為<ext>,然后執行<cmd>
-M,--matryoshka 遞歸掃描提取的文件
-d,--depth = <int>限制matryoshka遞歸深度(默認值:8級深)
-C,--directory = <str>將文件/文件夾提取到自定義目錄(默認值:當前工作目錄)
-j,--size = <int> 限制每個提取的文件的大小
-n,--count = <int>限制提取文件的數量
-r,--rm 提取后刪除刻錄文件
-z,--carve從文件中讀取數據,但不執行提取實用程序
 
 
 
3.熵分析選項:
-E,--entropy 計算文件熵
-F,--fast計算更快,但不太詳細的熵分析
-J,--save將熵圖保存為PNG圖像
-Q,--nlegend 從熵圖圖中省略圖例
-N,--nplot 不生成熵圖
-H,--high = <float>設置上升沿熵觸發閾值(默認值:0.95)
-L,--low = <float> 設置下降沿熵觸發閾值(默認值:0.85)
 
 
4.原始壓縮選項:
-X, --deflate掃描原始deflate壓縮流
-Z, --lzma 掃描原始LZMA壓縮流
-P, --partial淺度掃描,速度更快
-S, --stop 找到第一個結果后停止掃描
 
5.二進制差異選項:
-W,--hexdump 執行文件或文件的hexdump/diff
-G,--green 只顯示包含所有文件中相同字節的行
-i,--red 僅顯示包含所有文件中不同字節的行
-U,--blue只顯示一些文件中包含不同字節的行
-w,--terse 只顯示第一個文件的十六進制轉儲
 
 
6.一般選項:
-l,--length = <int>要掃描的字節數
-o,--offset = <int>以此偏移開始掃描
-O,--base = <int>向所有打印的偏移量添加基址
-K,--block = <int> 設置文件塊大小
-g,--swap = <int>掃描前每n個字節反轉一次
-f,--log = <file>將結果記錄到文件
-c,--csv 將結果記錄到CSV格式的文件中
-t,--term格式化輸出以適合終端窗口
-q,--quiet 禁止輸出
-v,--verbose 詳細輸出
-h,--help顯示幫助
-a,--finclude = <str>只掃描名稱與此正則表達式匹配的文件
-p,--fexclude = <str>不掃描名稱與此正則表達式匹配的文件
-s,--status = <int>啟用指定端口上的狀態服務器
 
 
 
 
 
 
參考資料:
 
https://www.cnblogs.com/2f28/p/9736902.html
https://www.cnblogs.com/zaqzzz/p/9460264.html#4411602
https://www.cnblogs.com/pcat/p/5256288.html
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM