binwalk是一個文件的分析工具,旨在協助研究人員對文件進行分析,提取及逆向工程。簡單易用,徹底自動化腳本,並經過自定義簽名,提取規則和插件模塊,還重要一點的是能夠輕鬆地擴展。html
以上是binwalk的介紹。binwalk在kali中默認就安裝了,在其餘版本的linux的安裝方法也是十分簡單的,而在windows裏就犯困了,新手百度下「binwalk windows安裝」等字樣也不見得有解決法子。python
而我也在網上搜了好久,基本沒見到過windows常見的exe、msi形式,只有找到tar.gz形式,解壓後爲docs和src文件夾,src裏有一個python常見的setup.py,在cmd下輸入setup.py install后里面提示要安裝magic,以後找了個python-magic模塊安裝後,import magic的時候提示缺乏libmagic,一番鼓搗後,我就沒弄了。linux
以後,我打開https://pypi.python.org/pypi去搜binwalk的模塊,也是隻有tar.gz,解壓後,setup.py install後,卻是不提示有什麼錯誤,安裝一路順暢,只惋惜我去python的安裝目錄下找,就發現了一個egg文件和一個binwalk的無後綴文件,其餘都沒有,也用不起的感受。git
----------------------------------------------------------------------------------------github
好了,正式介紹在windows下安裝的法子,用binwalk在github上的項目來安裝其源碼是最簡單的,裏面介紹說windows上的Optional Feature Support是最Poor的,儘管如此,仍是夠用的。windows
github項目:https://github.com/devttys0/binwalkpython2.7
binwalk的wiki:https://github.com/devttys0/binwalk/wiki工具
----------------------------------------------------------------------------------------spa
在windows上安裝前你須要已經安裝python(二、3版本倒不要緊)插件
在cmd裏輸入
git clone https://github.com/devttys0/binwalk cd binwalk python setup.py install
(若是你機子沒有安裝過git,你能夠直接訪問項目地址,點擊裏面的Download Zip下載後解壓便可)
安裝後,python裏輸入import binwalk不會報錯,說明能夠在python裏調用binwalk(用法請本身瀏覽上面提供的wiki),用起來能夠達到咱們分析文件的目的。
但咱們喜歡linux裏binwalk的使用方法,也想在windows上達到一樣的效果,python安裝目錄下Script裏那個binwalk文件(沒任何後綴名)實際上是一個py文件,在Script文件夾裏用python運行它的話,能夠達到效果,但是在Script文件夾外就犯愁了,由於cmd裏不能運行沒後綴的文件,而python binwalk這樣的運行方式不行(由於必須指定binwalk的路徑,可是若是指定了又很麻煩),而如果修改成binwalk.py,一運行又會報錯,總之頭疼。
----------------------------------------------------------------------------------------
本人第一次認真地寫博文,不善措辭,如有寫得不足之處敬請提出,以及有更好的方法也請多多指教,謝謝。
下面是我本身弄的解決法子,就是本身寫個bat批處理文件來運行。
新建一個文件夾,並把文件夾的路徑加入到系統變量path裏(這樣在cmd裏就能夠直接運行了。)
在文件夾裏新建一個binwalk.bat文件
@echo off echo * suggest: you'd better to input the parameters enclosed in double quotes. echo * made by pcat python "%~dp0\p_binwalk.py" %1 %2 %3 %4 %5 %6 %7 %8 %9
再新建一個p_binwalk.py文件(這裏寫得很簡單,之後能力增加的時候可能會改寫)
# -*- coding:utf-8 -*- # author: pcat # http://pcat.cnblogs.com 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
只要這個文件夾的路徑在系統變量path裏和這2個文件存在着,那麼你就能夠在cmd裏像linux那樣使用binwalk了。
:)
-- UPDATE- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* 另外一種單文件的寫法
模仿我本身的另外一篇文 uncompyle2 windows安裝和使用方法
新建一個文件夾,並把文件夾的路徑加入到系統變量path裏(這樣在cmd裏就能夠直接運行了。)
在文件夾裏新建一個binwalk.bat 文件(事實上隨你喜歡,取什麼名字均可以)
:: author: pcat@chamd5.org :: http://pcat.cnblogs.com @echo off echo * suggest: you'd better to input the parameters enclosed in double quotes. echo * made by pcat echo * *********************************************************************** if defined python_home ( python "%python_home%\Scripts\binwalk" %1 %2 %3 %4 %5 %6 %7 %8 %9 )else ( echo "you need to set PYTHON_HOME" )
(其中得先設置好PYTHON_HOME這種系統變量,若是你的python2.7是默認安裝的,通常這個PYTHON_HOME就設置C:\Python27 )
只要這個文件夾的路徑在系統變量path裏和這個bat文件存在着,那麼你就能夠在cmd裏像linux那樣使用binwalk了。
- -UPDATE- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
* binwalk經常使用命令
-e 分解出壓縮包
binwalk -e pcat.bin
-D或者--dd 分解某種類型的文件(在windows裏要用雙引號括起來)
binwalk -D=jpeg pcat.bin
-M 遞歸分解掃描出來的文件(得跟-e或者-D配合使用)
binwalk -eM pcat.bin