KLEE入门

简介

最近在使用KLEE工具进行软件缺陷检测时发现网上对于KLEE的介绍和使用的帖子很少,因此写此帖对KLEE的安装和使用方法做简单介绍,具体使用方法可以浏览官网http://klee.github.io/

阅读本文你可以了解到:

  • 什么是KLEE

  • 如何安装KLEE

  • 如何使用KLEE


什么是KLEE

KLEE是一款开源的自动软件测试工具,基于LLVM编译底层基础,能够自动生成测试样例检测软件缺陷。

与junit不同的地方在于,KLEE能对c程序生成字节码.bc文件,并自动生成各类缺陷,不需要再自己编写。因而使用KLEE进行软件测试是比较轻松的方式。


如何安装KLEE

OS X:

因为帖主的系统环境是macOS 10.13.5,因而首先介绍macOS系统,mac上的安装十分简单,可以通过官方英文文档查看安装步骤,也可以遵循如下步骤:

  1. 在安装KLEE之前,需要先安装一个名叫Docker的软件,Docker能创建与系统其他部分隔绝的容器,可以理解为一个简单的虚拟机。利用Docker可以为KLEE开辟容器空间,在容器内可以进行自己所需的软件测试工作。

    Docker安装官方文档:https://docs.docker.com/docker-for-mac/

    下载地址:https://hub.docker.com/editions/community/docker-ce-desktop-mac 下载前需要登录。

    下载之后拖动图标安装,与其他mac程序安装一样,不再做介绍。

    可以不使用Docker而直接从git上下载KLEE,请看文档。

  2. 利用Docker安装KLEE

    $ docker pull klee/klee
    

    安装完成,就这么简单。

Ubuntu:

安装与上述类似,但是要注意内核版本问题,如果无法安装则重启按住shift键选择较早版本的系统启动。


如何使用KLEE

首先介绍创建基本画像的方法,然后介绍官方给出的一个指导教程,最后给出程序测试实例。

创建基本画像

所谓画像就是创建一个库,可以将Docker理解为一个可以运送各种物品的大货船,装有不同的物品的货箱用不同颜色标明,KLEE是其中一种物品,假设它是装食物的、蓝色的箱子,每创建一个库,就相当于货船上增加了一个蓝色的箱子。

  1. 创建临时画像。

    $ docker run --rm -ti --ulimit='stack=-1:-1' klee/klee
    

    输入后进入临时画像,可以继续使用shell命令。

    在这里插入图片描述

    可以看出KLEE创建了一个叫3d开头的临时画像,画像提供了clang和LLVM工具,分别做编译c文件和将c文件转换字节码文件的工作,每个新建的画像中都有klee_build 和 klee_src两个文件夹,klee_src包含了构建KLEE的源码,klee_build是klee_src构建的工程。

    我们能在klee_src中发现examples文件夹,其中包含了四个初始文件夹,分别是get_sign,islower,regexp,sort,每个文件夹里面包含一个同名c文件,是官方给出的测试代码例子,在指导教程中将会用到。

    输入如下exit退出临时画像,画像自动删除。

    klee@3d9471c49d85:~$ exit
    
  2. 创建永久画像。

    $ docker run -ti --name=my_first_klee_container --ulimit='stack=-1:-1' klee/klee
    

    创建了一个叫my_first_klee_container的永久画像,exit退出后可以

    $ docker start -ai my_first_klee_container
    

    回到画像。

    如果要删除画像,输入:

    $ docker rm
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值