Binary Analysis Tool(BAT)是一个用于检测二进制文件使用到的开源组件,协助及早发现程序发布后可能会面临的开源协议解执的开源免费检测工具。
安装环境:Kali-2.0+Python-2.7
git clone https://github.com/armijnhemel/binaryanalysis.git
cd binaryanalysis/src
python setup.py install
bat-extratools是BAT一些高级检测项用到的依赖,如果不安装在某些检测中会报“OSError: [Errno 2] No such file or directory”之类的错误
git clone https://github.com/armijnhemel/bat-extratools.git
cd bat-extratools/
#apt-get install devscripts #安装debuild
apt-get install zlib1g-dev liblzo2-dev liblzma-dev #安装编译依赖
debuild -uc -us #构建bat-extratools的deb安装包
cd ..
ls -l
dpkg -i bat-extratools_27.0_amd64.deb #安装bat-extratools
bat-scan----安装BAT后带来的系统命令
-c----扫描使用的配置文件;/etc/bat/bat-scan.config是bat自带的配置文件
-b----要扫描的二进制文件;我这里以ping命令为例,换成自己想扫的文件即可
-o----扫描结果输出到的文件;我这里指定输出到当前目录的ping_scan_results文件
bat-scan -c /etc/bat/bat-scan.config -b /bin/ping -o ping_scan_results
batgui2使用python2.x编写,使用PyQt5做图形界面;但是PyQt5并没有python2.x版本,非官方针对python2.x版本编译的python-qt5又只支持windows
要运行起来有两个思路,一个是Lniux安装python3.5以上版本,然后使用python3自带的2to3.py将batgui2转换成python3.x程序。但实际操作中发现应该是batgui2中大量混用了tab键和空格键,导致转成的python3程序报错,而且里实在太大基本没法调,我放弃了这条路。
第二个思路是,把生成的结果文件复制到windows机器,在windows机器安装运行batgui2,然后在windows打开查看。我这里使用这个思路
python-qt5需要下载的件较大,为了避免pip网络问题,我这里使用官方提供的git离线安装方式安装。当然你也可以考滤将pip源配置成清华源或中科大源
再次注意我们这里是在windows安装,所以以下命令是在cmd执行
git clone https://github.com/pyqt/python-qt5.git
cd python-qt5
python -c "import util;util.createqtconf()"
python setup.py install
下载运行batgui2
git clone https://github.com/monkeyiq/batgui2
cd batgui2
python batgui.py
运行起来后我们通过File--Open载入上一步得到的ping_scan_results文件,界面如下:
可以看到并没有扫出什么东西,复杂点的程序还有一些其他如.ko之类的,但基本不能算实现检测使用了哪些开源组件的功能
也有可能是需要调整扫描配置文件,有待研究。
参考:
https://github.com/armijnhemel/binaryanalysis/blob/master/doc/bat-manual.pdf