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