KLEE的Docker镜像使用

作者: owhereg | 来源:发表于2016-01-26 10:03 被阅读0次

    KLEE是使用符号执行技术生成测试样本的知名利器,有着崇高的江湖地位。在KLEE网站上发布了采用Docker打包的镜像。对于两者,我都很陌生,以下记录了在使用过程中,涉及的一些命令和概念。

    1、Docker

    Docker 是 PaaS 提供商 dotCloud 开源的一个基于 LXC 的高级容器引擎,源代码托管在 Github 上, 基于go语言并遵从Apache2.0协议开源。docker有三种命令运行的方式:短暂方式、交互方式、daemon方式。

    • 安装

      目前只支持64位linux系统,以下命令的环境为Ubuntu,Linux 3.13.0-74-generic。Linux系统版本查询命令:
      $ uname -r
      3.13.0-74-generic

      • 更新系统(低版本Linux)
        $ sudo apt-get update
        $ sudo apt-get install linux-image-extra-$(uname -r)
        $ sudo apt-get install linux-image-generic-lts-trusty
        $ sudo reboot
      • 安装Docker:
        sudo apt-get install docker.io
    • ps命令

      • 列出当前所有正在运行的容器
        sudo docker ps
      • 列出最近一次启动的,且正在运行的容器
        sudo docker ps -l
      • 列出所有的容器
        sudo docker ps -a
    • 镜像操作

      • 下载KlEE镜像(默认从官方仓库上下载,也可其它仓库下载)
        $ docker pull klee/klee
        $ sudo docker pull registry.hub.docker.com/ubuntu:12.04
        $ sudo docker pull dl.dockerpool.com:5000/ubuntu:12.04
      • 运行KLEE镜像
        $ docker run -ti --name=my_first_klee_container --ulimit='stack=-1:-1' klee/klee
      • 重启容器
        $ docker start -ai my_first_klee_container
      • 删除容器
        $ docker rm my_first_klee_container
    • 删除容器

      • 删除所有容器
        $ sudo docker rm sudo docker ps -a -q
      • 删除具体某个容器
        $ sudo docker rm $CONTAINER_ID
    • 命令快速参考

      • 查看本地镜像
        $ sudo docker images #
      • 启动一个已存在的docker实例
        $ sudo docker attach $CONTAINER_ID
      • 停止docker实例
        $ sudo docker stop $CONTAINER_ID
      • 查看docker实例运行日志,确保正常运行
        $ sudo docker logs $CONTAINER_ID
      • 查看container的实例属性,比如ip等等
        $ sudo docker inspect $CONTAINER_ID

    2、KLEE

    • KLEE版本
      klee --version
    • 编译源码
      clang -emit-llvm -g -c test.c -o test.bc
    • 运行klee
      klee --libc=uclibc --posix-runtime test.bc

    相关文章

      网友评论

        本文标题:KLEE的Docker镜像使用

        本文链接:https://www.haomeiwen.com/subject/yurdkttx.html