加载中…
个人资料
elecs
elecs
  • 博客等级:
  • 博客积分:0
  • 博客访问:53,406
  • 关注人气:1
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
正文 字体大小:

qemu+IDA远程调试智能设备

(2019-06-05 15:44:09)
标签:

qemu

智能设备

如果碰到智能设备的程序,我们应该怎样动态逆向分析呢?


 一、环境准备

首先,需要搭建嵌入式开发环境。并不一定需要硬件平台,可以使用ubuntu进行模拟。在unbuntu主机上安装一个arm操作系统。系统采用nfs方式挂载文件系统。

 

安装qemu-system-arm

apt-get install qemu-system-arm

 

假设手头上已有基于armlinux内核、设备、根文件系统,则运行qemu-system-arm启动。引导命令类似于:

qemu-system-arm -M vexpress-a9 -m 128M -dtb vexpress-v2p-ca9.dtb -kernel zImage -append "root=/dev/mmcblk0 rw" -sd a9rootfs

上述启动命令面向于vexpress-a9目标板,需要逆向的是a9rootfs

 

启动后会出现如下的界面

qemu+IDA远程调试智能设备

Explore2fs提取文件系统中的文件,找出需要分析的ELF文件,并从文件系统中提取出来。

 

为了调试程序,需要安装qemu-user

apt install qemu-user

 

二、远程调试

qemu的远程调试比较简单,采用-g参数绑定本地端口即可。假设此时我们需要分析的程序为./sh,则在ubuntu中运行下述命令

qemu-arm -g 12345 ./sh

 

IDA中,选择Remote GDB debuggerattach

qemu+IDA远程调试智能设备

填写远程主机IP和端口。本示例中填写12345端口。

qemu+IDA远程调试智能设备

同时,点击“Debug options”按钮,配置调试选项。勾选Suspend on debugging start, Suspend on process entry point

qemu+IDA远程调试智能设备

点击“Set specific options”,执行目标进程的架构,本示例中选择ARM Little-endian

qemu+IDA远程调试智能设备

如何选择架构呢?这些信息使用readelf –h file就能查看到。

qemu+IDA远程调试智能设备

设置完毕后,如果前面的配置都正确则会弹出如下对话框。

qemu+IDA远程调试智能设备

之后就出现熟悉的IDA调试界面,可以设置断点,浏览和调试该可执行程序的运行过程以及内存情况。

qemu+IDA远程调试智能设备

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有