TEMU和Vine的简单用法

本文介绍了TEMU的使用方法,包括如何创建虚拟系统、共享设置以及进入虚拟系统后的命令操作。同时,讲解了Vine的使用,解析trace文件并进行污点分析,展示了如何利用stp求解。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

TEMU的用法

首先要创建一个虚拟的系统

qemu-img create -f qcow2 /opt/kvm/winxp.img 10G 创建格式为qcow2大小为10G的虚拟磁盘文件

sudo qemu-system-i386 -hda /opt/kvm/winxp.img -cdrom /opt/kvm/winxp_sp2.iso -boot d  根据镜像iso文件在winxp.img上创建虚拟系统,最好为纯净的系统。(要下载xp sp2的系统镜像请点这里,同时也分享一个xp sp3的系统,点这里,密钥可以网上搜索,基本通用)

注:上面的qemu-img和qemu-system-i386都是最新版qemu的命令,所以要先装好qemu,网上搜搜。不使用temu的命令是因为创建虚拟系统的过程非常慢,而temu支持最新版qemu创建的虚拟系统。

sudo ./tracecap/temu -monitor stdio /opt/kvm/winxp.img -m 1024 -no-kqemu 

启动前面最新版qemu创建的虚拟系统(这里之所以加一个-no-kqemu,是因为temu使用的老版本qemu要kqemu加速,但是这个东西不存在了,要使用的话只能下载旧版手动安装。最新版的qemu已转向kvm来加速。至于两者的关系可以查看这里。)

--------------------------------------

简单的共享设置

启动虚拟机后,可以直接上网,但是主机和虚拟机共享需要配置,主机可以选择安装samba服务器,ubuntu下用图形工具system-config-samba配置很简单。

将temu-1.0文件或其他文件共享,在虚拟机的资源管理器中输入\\10.0.2.2就可以看到。

将temu-1.0\testdrv\driver目录下的testdrv.sys驱动文件拷贝至%SYSTEM32%\drivers目录下。然后双击testdrv.reg文件将内容拷贝至注册表来配置驱动程序,它将会在下次启动后加载。若要确认该驱动是否工作正常,在TEMU运行的目录中寻找是否创建了guest.log文件,其包含了一些TEMU收集的数据。

也可以打开dos窗口,用命令复制文件:

net use \\10.0.2.2

net view \\10.0.2.2

copy \\10.0.2.2\shared\testdrv.sys c:\

另外,详细的trace文件分析可以看这里

---------------------------------------

进入虚拟系统后会用到的命令:

ctrl+alt+2 切换到qemu命令界面(如果前面启动temu使用了monitor stdio,那么该界面重定向到了你的终端。此时可输入help+命令来察看该命令的说明,支持命令补全,默认当前路径是加载虚拟机时的目录)

load_plugin ./tracecap/tracecap.so 加载tracecap插件

load_config ./tracecap/main.ini 加载该插件认证信息

enable_emulation 启动模拟

guest_ps 显示进程信息

trace pid "xxx.trace" 追踪进程pid,指令流保存在文件xxx.trace

trace_stop 停止追踪

unload_plugin 卸载插件

具体追踪的例子参考TEMU用户手册

Vine的用法

Vine用户手册也给出了一个例子five.trace

进入vine目录

% cd bitblaze/vine

解析trace文件为可读的汇编指令,并输出标记为污点的指令(带标签T1)

% ./trace_utils/trace_reader -traceexamples/five.trace | grep T1

输出trace文件对应的stp格式,Vine中间语言格式和最弱前提条件格式

% ./trace_utils/appreplay -traceexamples/five.trace \
 -stp-out five.stp -ir-out five.il -wp-out five.wp

在five.stp文件末尾添加两条命令,解释可参考这里

% cat >>five.stp
QUERY(FALSE);
COUNTEREXAMPLE;

利用stp求解

% ./stp/stp five.stp
Invalid.
ASSERT( INPUT_1001_0_61  = 0hex35 );



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值