zoukankan      html  css  js  c++  java
  • Binary Analysis Tool安装使用教程

    Binary Analysis Tool(BAT)是一个用于检测二进制文件使用到的开源组件,协助及早发现程序发布后可能会面临的开源协议解执的开源免费检测工具。

    一、安装BAT和bat-extratools

    1.1 安装BAT

    安装环境:Kali-2.0+Python-2.7

    git clone https://github.com/armijnhemel/binaryanalysis.git
    cd binaryanalysis/src
    python setup.py install

    1.2 安装bat-extratools

    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扫描二进制文件

    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

    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

  • 相关阅读:
    记一次逻辑代码的实现(数组内数据按照指定时间差进行分组)
    spark算子之Aggregate
    java.lang.SecurityException: class "javax.servlet.ServletRegistration"'s signer information does not match signer information of other classes in the same package
    Hive SQL之分区表与分桶表
    hive之基本架构
    数据结构-链表(2)
    jQuery 如何实现 模糊搜索
    常见的网站服务器架构
    window.location.href跳转无效
    js读取本地图片并显示
  • 原文地址:https://www.cnblogs.com/lsdb/p/9187987.html
Copyright © 2011-2022 走看看