您的位置:首页 > 其它

ubuntu12.04-64位系统上安装s2e过程

2014-09-25 21:46 417 查看
S2E工具适用平台
host OS: 64位ubuntu12.04或者64位Mac OS

guest OS:To run S2E, you need a QEMU-compatible virtual machine disk image. S2E can run any x86 operating system inside the VM.任何X86的OS都可以。

对比bitblaze的TEMU,他guest OS只能在ubuntu9.04 32-bit上实现良好,在windows XP和其他版本的linux上还有限制。不支持windows vista和windonws 7.

s2e官网:https://dslabredmine.epfl.ch/embedded/s2e/index.html

参考文章:/article/1735090.html



一。在ubuntu12.04-32位下安装:

安装s2e遇到的问题

configure: error: C compiler cannot create executables

See `config.log' for more details.

make: *** [stamps/llvm-native-configure] 错误 77

于是找到config.log查看详细错误发现:

/usr/bin/ld.bfd.real: cannot find crt1.o: No such file or directory

/usr/bin/ld.bfd.real: cannot find crti.o: No such file or directory

错误太多,需要编译生成的文件还差很多。于是重新装了个ubuntu12.04 64位系统。

二。在ubuntu12.04-64位下安装:

1.build s2e


make时遇到问题如下图:





但是此次编译生成了QEMU-release文件夹,暂时忽略上面错误。

2.安装guest系统

在qemu上安装的镜像是debian-7.6.0-i386-CD-1.iso.

debian系统安装sudo,参见http://blog.sina.com.cn/s/blog_6c9d65a10101ces2.html

安装好系统以后进入系统apt-get install build-essential时出错:package build-essential has no installation candidate。查看source.list,发现里面只有updates的软件仓库,必须添加至少一个常规的仓库(
[code]deb http://ftp.debian.org/debian/ 版本名 main contrib non-free

)。参见http://stackoverflow.com/questions/11955505/debian-squeeze-apt-get-errors

VM镜像的相关需求和建议:

在vanilla QEMU中安装OS。这是最快的方式。一般来说,所有的安装和组建工作都应该在vanilla QEMU中进行。

始终备份一个最新的OS。建议在进行每一次分析工作时都从一个新的OS备份开始。例如,如果使用一个镜像已经用来测试过设备驱动了,不要再用它来分析电子表格组件。一个镜像只进行一次分析。这样会更加利于管理而且更容易产生结果。

当S2E格式的镜像建立起来即将用于在符号执行模式下运行时,生成一个快照,可以在S2E-enabled QEMU中运行它。这个步骤不是必须的,但是这会大大地缩短启动时间,因为在S2E中启动一个镜像会花费很长时间。

建议在guest OS中使用128MiB的RAM(或者更少)。S2E并不会被内存的大小所限制,而你的物理机器会。

禁用桌面主题和一切图形化效果影响以减少资源消耗。

禁用屏幕保护程序。

禁用一切不必要的程序(如文件共享,打印,无线网络配置,防火墙等)来减少内存消耗并提高速度。

避免使用QEMU virtio网络接口。在这个版本的 QEMU中,它被打包到了S2E,可以有随机崩溃。

安装好guest系统后要实现host系统与它的文件传输,这里使用的时scp。

注意:在使用scp之间,host和guest都要开启ssh服务。但是在开启ssh服务后,两边是无法使用ssh传输文件,甚至连ping都不通,为什么?可能跟QEMU的网络配置有关。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: