下qemu模拟arm9_QEMU搭建树莓派环境

0x01

最近树莓派被同学借去做毕设了,没有其他ARM平台供我研究,无奈之下只好尝试使用QEMU模拟raspbian,搭建过程比较繁琐,网上的教程有很多坑都没有指出,所以有了此文,给同样有兴趣做IoT安全、ARM平台安全的小伙伴们的入门铺平道路。

0x02

QEMU是啥?

QEMU是一个托管的虚拟机镜像,它通过动态的二进制转换,模拟CPU,并且提供一组设备模型,使它能够运行多种未修改的客户机OS,可以通过与KVM(kernel-basedvirtual machine开源加速器)一起使用进而接近本地速度运行虚拟机(接近真实计算机的速度)。

0x03

平台说明:

Ubuntu18.04(4G内存,40G硬盘)

为项目创建一个新的文件夹

d2adb95b5ebd18b973ba39d3533867c4.png

将下载来的树莓派镜像放到这个文件夹下,将从github上下载来的qemukernel(官方内核在qemu中无法运行,所以在github上找了个能用的:https://github.com/dhruvvyas90/qemu-rpi-kernel)也放在这儿,解压镜像

1d040053268c3427b947bd685f952d62.png

使用fdisk观察硬盘实体使用情况

39b910deca79697356db6824bbbe6116.png

可以看到img2的bootstart为92160,将其乘以512(在上图中可以看到单位units:sectorsof 1 *512 =512bytes,说明还需乘以512),得到47185920,这就是后面命令中的offset

接下来先创建一个挂载用的文件夹

93adfb6c1ad858afa7243b096d4e2e4c.png

然后使用下面的挂载命令

87f9a7484b874190a6bdec149286de09.png

接下来编辑ld.so.preload文件,将其中的内容注释,然后使用umount写在已经加载的文件系统

37652bde165e6737b41738082ebdac1d.png

接下来通过qemu模拟树莓派,使用下面的命令

qemu-system-arm-kernel ~/qemu_vms/ -cpu arm1176 -m 256 -Mversatilepb -serial stdio -append "root=/dev/sda2rootfstype=ext4 rw" -hda ~/qemu_vms/-redir tcp:5022::22 -no-reboot

3879bd9956effaf90bdaef93f54766ec.png

启动过程如下图

b6c3e0483eca1919e9af259f5ac38d4e.png

启动完毕后如图所示

4a435cf7173eb35ee001a878c260d188.png

为了后续的方便,我们一般会使用远程连接,所以先安装ssh服务端

7122ffa1c18013ae26a5d6cb927b7749.png

在ubuntu上启动ssh服务,在kali上测试下

50a400da030d00f28b71886f3001d2a4.png

然后在树莓派上也启动ssh服务,就可以远程了,下图是我kali远程到ubuntu上后再远程到树莓派

bacdc87bf20c5a5e2e6dc7dbe9fee943.png

或者也可以直接在kali上远程到书树莓派

774f151933f9dd8af65696266118b95e.png

因为我们后续基本都是靠ssh远程连接,所以使用下面的命令使得树莓派能够开机自启ssh服务

af395ea446102c2bdec48f13117f6f4d.png

树莓派默认以图形化界面展示,如果想要以命令行模式启动的话,按照如下步骤操作即可

输入sudoraspi-config进入设置页面,如下选择bootoption

7f5abfa5b41baca11e0ac22fc9b01eda.png

然后选择desktop/cli

1c1beefd472dc4ec9dfd86c79da50db6.png

然后选择consoleautologin

4dd1e5922dbb4dc23c73ca7a4ff0c621.png

最后重启即可

4ebc63bd362871cd95aa33a64eee458d.png

重启后的界面就是这样子的了

5e45ef2c09c96e3ce713695a81e25dc0.png

此时使用df–hl可以看到3.9G的空间现在已经用了3.6G了

74ae91c61e4b7fcc532a9af5acc7d705.png

为了以便不时之需,我们需要扩大容量,安装如下步骤进行

先把树莓派关掉

先拷贝一份原来的镜像文件

d47bac09387bb7ec62f0de1ea6f8b251.png

再给新的镜像文件扩容

90ee52ab2a76b42c87a03ed057497c15.png

接下来将扩容后的新镜像作为第二块硬盘启动

917daa76f15b310e786bb616e6679e15.png

输入命令后进入如下的界面

4724d3769345a9c43f86ac102c4a567c.png

如下图选中将sdb2删除

a5529891c9a1c4acec5850c944bbf34f.png

然后从freespace创建一个新分区,如下图选中即可

812084c564f258caf11eb247004aad99.png

选中write写入

9496c1a8515abf6018a00c2920011066.png

输入yes确认

b4c6cf20a78f61ce2c3aba07eb410b41.png

会提示写入成功

3a58237d658d1484d92c2253dfc3ab61.png

然后退出即可

470c8dd2b8f7e60d4c9f11786921eeb0.png

接下来使用fsck检查文件系统中是否存在错误

7aca4e9d35fa2c389aba499907a72883.png

可以看到没有报错

然后关闭树莓派

接下来我们在使用qemu启动树莓派的命令中只需要使用新镜像就可以了

命令如图中所示

d3cef95bce9145f56bb7487898e65352.png

这样就完成了全部的工作。

0x04参考

1.https://zh.wikipedia.org/wiki/QEMU

2.https://azeria-labs.com/emulate-raspberry-pi-with-qemu/

声明:笔者初衷用于分享与普及网络知识,若读者因此作出任何危害网络安全行为后果自负,与合天智汇及原作者无关,本文为合天原创,如需转载,请注明出处!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值