Ubuntu 14.04安装KLEE及GNC代码分析指南
需积分: 50 175 浏览量
更新于2024-09-09
收藏 18KB DOCX 举报
本文将详细介绍如何在Ubuntu 14.04系统上安装KLEE(一个基于LLVM的符号执行引擎)以及如何使用它来分析GNC代码。KLEE是一款强大的动态程序分析工具,用于找出软件中的错误和漏洞,通过执行程序路径上的所有可能分支来实现。
首先,我们需要确保系统是最新的,可以通过运行以下命令来更新和升级系统软件包:
```bash
sudo apt-get update
sudo apt-get upgrade
```
接下来,为了安装KLEE,我们需要一些必要的工具和库,包括编译器、Python、Git等。可以使用以下命令安装这些依赖:
```bash
sudo apt-get install g++ curl python-minimal git bison flex bclibcap-dev build-essential libboost-all-dev ncurses-dev cmake
```
接着,我们需要下载并安装特定版本的LLVM-GCC,这是一个包含LLVM编译器和GCC的组合。你可以从LLVM官方网站获取该版本的包,然后解压缩:
```bash
wget http://llvm.org/releases/2.9/llvm-gcc4.2-2.9-x86_64-linux.tar.bz2
tar -jxvf llvm-gcc4.2-2.9-x86_64-linux.tar.bz2
```
设置环境变量以确保系统能够找到安装的库和工具:
```bash
export C_INCLUDE_PATH=/usr/include/x86_64-linux-gnu
export CPLUS_INCLUDE_PATH=/usr/include/x86_64-linux-gnu
export PATH=$PATH:$HOME/llvm-gcc4.2-2.9-x86_64-linux/bin
```
为了使这些环境变量在下次登录时依然有效,我们需要将其添加到`.bashrc`文件中:
```bash
echo "export C_INCLUDE_PATH=/usr/include/x86_64-linux-gnu" >> ~/.bashrc
echo "export CPLUS_INCLUDE_PATH=/usr/include/x86_64-linux-gnu" >> ~/.bashrc
echo "export PATH=$PATH:$HOME/llvm-gcc4.2-2.9-x86_64-linux/bin" >> ~/.bashrc
```
现在,我们继续下载LLVM 2.9的源代码包:
```bash
wget http://llvm.org/releases/2.9/llvm-2.9.tgz
tar -zxvf llvm-2.9.tgz
cd llvm-2.9
```
由于KLEE需要一个特定的补丁来处理某些系统调用,你需要从邮件列表下载这个补丁,并将其应用到LLVM源代码上:
```bash
wget http://www.mail-archive.com/klee-dev@imperial.ac.uk/msg01302/unistd-llvm-2.9-jit.patch
cp ~/unistd-llvm-2.9-jit.patch ~/llvm-2.9/
patch -p1 < unistd-llvm-2.9-jit.patch
```
安装KLEE之前,确保已经按照官方文档配置好所有依赖。接下来,按照KLEE的构建指南编译和安装KLEE:
```bash
mkdir build && cd build
cmake ..
make
sudo make install
```
安装完成后,你可以使用KLEE来分析GNC代码。首先,需要将你的GNC代码转换为LLVM IR,这可以通过LLVM的`llc`工具完成。然后,使用KLEE运行IR代码以进行符号执行:
```bash
klee --libc=uclibc your_program.bc
```
这里,`your_program.bc`是你的GNC代码转换后的LLVM IR文件。KLEE会输出执行信息,包括找到的路径、可能的错误和覆盖率报告。
在分析过程中,你可能会遇到内存限制或执行时间过长的问题。可以通过调整KLEE的参数来优化性能,例如增加内存限制或限制执行时间。查阅KLEE的官方文档以了解更多高级用法和优化技巧。
通过遵循以上步骤,你将在Ubuntu 14.04上成功安装KLEE,并能对其进行配置以分析GNC代码,从而发现潜在的软件问题。记得定期检查KLEE和LLVM的最新版本,以利用最新的特性和修复。
点击了解资源详情
点击了解资源详情
点击了解资源详情
2019-10-24 上传
2021-03-10 上传
2021-07-14 上传
2021-04-28 上传
无聊的大石头
- 粉丝: 34
- 资源: 9
最新资源
- 数据-行业数据-天立教育:2020年度报告.rar
- 硬件记录
- Pytorch 快速入门实战之 Fashionmnist
- 程序等待-易语言
- zabbix-html-email-template:可自定义的Zabbix HTML电子邮件模板-ProblemRecovery
- set-compose-tags
- DotinPolygonAlgorithm:DotinPolygon算法
- 行业分类-设备装置-可记录媒体的分离装置.zip
- WindowsFormsApplication1.rar
- 仿QQ登录界面-易语言
- IBM应用数据科学Capstone
- Python库 | outlier_akashjindal347-0.0.1-py3-none-any.whl
- TheWorldBetweenUs:豆瓣评论分析
- bgpvis:bgpdump数据分析
- plasmid_mapR:用于在整个基因组序列数据集中进行质量计算和可视化参考质粒覆盖范围的软件包
- 行业分类-设备装置-叶片平台的冷却.zip