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

Binary Analysis Tool安装使用教程的更多相关文章

  1. Cadence仿真利器,Cadence SI / PI Analysis – Sigrity安装及破解指南

    Sigrity提供了丰富的千兆比特信号与电源网络分析技术,包括面向系统.印刷电路板(PCB)和IC封装设计的独特的考虑电源影响的信号完整性分析功能. Sigrity分析技术与Cadence Alleg ...

  2. Web Capacity Analysis Tool 压力测试工具使用笔记

    一.背景介绍 Web Capacity Analysis Tool是微软轻量级Web压力测试工具, 早先是IIS 6.0Resource Tool kit 工具包中的一个组件,现在独立出来有一个社区版 ...

  3. Microsoft SQL Server 2012 数据库安装图解教程

    本文部分引用以下文章: SQL Server 2012 安装图解教程(附sql2012下载地址)_MsSql_脚本之家 http://www.jb51.net/article/36049.htm SQ ...

  4. 在 Windows 上安装 Hadoop 教程(转)

    在 Windows 上安装 Hadoop 教程 一见 2010.1.6 www.hadoopor.com/hadoopor@foxmail.com 1. 安装 JDK 不建议只安装 JRE,而是建议直 ...

  5. Jenkins ubantu15 安装使用教程

    Jenkins  ubantu15 安装使用教程 环境:unbatu15 + java version "1.8.0_181"  +   jenkins (2.137) 命令拉取: ...

  6. 转发:[服务器]SSL安装证书教程

    [服务器]SSL安装证书教程   来自阿里云教程 Tomcat服务器安装SSL证书 安装PFX格式证书 https://help.aliyun.com/document_detail/98576.ht ...

  7. IntelliJ IDEA - 热部署插件JRebel 安装使用教程

    IntelliJ IDEA - JRebel 安装使用教程 JRebel 能做什么? JRebel 是一款热部署插件.当你的 Java-web 项目在 tomcat 中 run/debug 的时候 , ...

  8. Zabbix3.x安装图解教程

    准备知识: Zabbix3.x比较之前的2.0界面有了很大的变化,但是安装部署过程与2.x基本完全一样. 1.Zabbix2.x安装图解教程 http://www.osyunwei.com/archi ...

  9. VMware vCenter Server安装图解教程

    安装说明: 1.安装VMware vCenter Server的主机操作系统为:Windows Server 2008 R2 2.在Windows Server 2008 R2中需要预先安装好SQL ...

随机推荐

  1. C# 防止窗体闪烁

    protected override CreateParams CreateParams { get { CreateParams cp = base.CreateParams; cp.ExStyle ...

  2. Newtonsoft.Json 去掉\r\n

    itemKindList.ToString(Newtonsoft.Json.Formatting.None)

  3. CSDN-markdown编辑器语法——字体、字号与颜色

     Markdown是一种可以使用普通文本编辑器编写的标记语言,通过类似HTML的标记语法,它可以使普通文本内容具有一定的格式.但是它本身是不支持修改字体.字号与颜色等功能的!   CSDN-markd ...

  4. django 聚合内容 RSS/Atom

    Django提供了一个高层次的聚合内容框架,让我们创建RSS/Atom变得简单,你需要做的只是编写一个简单的Python类. 一.范例 要创建一个feed,只需要编写一个Feed类,然后设置一条指向F ...

  5. VC.时间(网页内容收集)

    1.VC++获得当前系统时间的几种方案_记忆53秒_新浪博客.html(http://blog.sina.com.cn/s/blog_676271a60101i0hb.html) 1.1.内容保存: ...

  6. python 汉字编码问题

    问题描述:我要判断的两个字符串是否相等(‘区站号’==‘区站号’),第一个值是我从txt文件导入的数据,第二个值是我自己定义的并使用decode('utf-8')得到的,如果你用print函数打印这两 ...

  7. Codeforces 960F - Pathwalks

    960F - Pathwalks 思路: ORZ 杜老师 用map写1e5个树状数组,骚操作 记Q为query和update次数,则节点个数约为Q*log(N) 代码: #include<bit ...

  8. ionic this.navCtrl.push()和this.navCtrl.pop()

    在ionic中,this.navCtrl.push()和this.navCtrl.pop()都是进行页面跳转,但是用法又有区别 例如有A  B  C三个页面,三个页面都是使用this.navCtrl. ...

  9. 【消息队列】kafka是如何保证消息不被重复消费的

    一.kafka自带的消费机制 kafka有个offset的概念,当每个消息被写进去后,都有一个offset,代表他的序号,然后consumer消费该数据之后,隔一段时间,会把自己消费过的消息的offs ...

  10. LeetCode--326--3的幂

    问题描述: 给定一个整数,写一个函数来判断它是否是 3 的幂次方. 示例 1: 输入: 27 输出: true 示例 2: 输入: 0 输出: false 示例 3: 输入: 9 输出: true 示 ...