当前位置: 首页 > 工具软件 > QEMU-VMI > 使用案例 >

qemu使用总结

陈斌蔚
2023-12-01

注:进入到decaf镜像中只可访问/app文件
1.启动QEMU

sudo docker run -it -e  DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v $HOME/.Xauthority:/home/db/.Xauthority --net=host --mount source=decafvolume,target=/app decaf_startubuntu  /bin/bash

docker只有以–security-opt seccomp=unconfined的模式运行container才能利用GDB调试

sudo docker run -it --mount source=decafvolume,target=/app decaf  /bin/bash

2.进入交互式容器

sudo docker exec -it 829c33bbeebb   /bin/bash

3.安装nano

sudo apt-get install -y gedit

4.上传文件到QEMU路径下

sudo cp /home/apt/Sample.zip /var/lib/docker/volumes/decafvolume/_data/

需要说明的是:
实际系统路径/var/lib/docker/volumes/decafvolume/_data/对应于虚拟系统Ubuntu16.04中的/app路径,可在windowsXP通过cmd命令行”//10.0.2.2”访问到与Ubuntu16.04下/app对应的qemu路径

备份与恢复:

sudo docker commit -a="ly" -m="backup" 614485e72a2e  
docker run -it  decaf_backup/123456

使用min_apitracer步骤记录:

apt-get update&&sudo apt-get install -y gedit
load_plugin ../plugins/min_apitracer/apitracer.so
trace_by_name RFQ.exe /app/trace_7.txt ../plugins/min_apitracer/sample_config

使用键盘记录器检测插件:http://blog.chinaunix.net/uid-13746440-id-4370955.html
编译decaf时需要:./configure --enable-tcg-taint --enable-vmi make
在plugins插件路径下: ./configure --decaf-path=/decafroot/DECAF/decaf/
最后make
加载插件:
启用键盘记录检测:enable_keylogger_check LOCATION_OF_LOG_FILE
停止检测:disable_keylogger_check

ls -al 查看详细信息
MakeFile打印字符串: ( w a r n i n g " 123 " ) l i n u x 下 只 查 看 文 件 夹 : l s − F ∣ g r e p " / (warning "123") linux下只查看文件夹:ls -F |grep "/ (warning"123")linuxlsFgrep"/"
找到当前路径下所有的.o文件:find . -name ‘*.o’ 单引号很重要
查找路径下的文件 find ./ -name DECAF_callback.o
安装gdb :apt-get install gdb
gdb调试总结:
l 一次查看10行
b 行号 下断
info br 查看断点
r 运行
先启动docker:

sudo docker run -it  --security-opt seccomp=unconfined -e  DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix -v $HOME/.Xauthority:/home/db/.Xauthority --net=host --mount source=decafvolume,target=/app decaf_shared_succ  /bin/bash

docker只有以–security-opt seccomp=unconfined的模式运行container才能利用GDB调试
再(需要进到i386-softmmu目录下)单独启动qemu:

./qemu-system-i386 -monitor stdio -m 512 -net user,smb=/app/ -netdev user,id=mynet -device rtl8139,netdev=mynet  /app/win7.qcow2 -s

-S 表示guest虚拟机一启动就会暂停
-s 表示监听tcp:1234端口等待GDB的连接
清除已退出的容器:

sudo docker rm $(sudo docker ps -qf status=exited)`

启动一个停止的镜像:

sudo docker start 容器id

gdb调试qemu:
调试qemu分为两种:
(1)调试qemu启动运行的虚拟机
(2)调试qemu源码
我们目前采用第二中方法;gdb --args ./qemu-system-i386 -m 512 -hda /app/win7.qcow2
关于qemu的一些命令:
-hda 选项用来指定磁盘镜像文件;-cdrom 用来指定 CD-ROM 或者 ISO 镜像来作为虚拟机的光驱。-m 选项指定虚拟机所使用的内存大小 (此种情况下,内存大小申请为 512MB;你可以根据自己的需要和硬件状况来决定) 。

 类似资料: