0%

2020-02-24-常见设备固件GDB调试环境搭建小记

本来想合并到上一篇固件镜像转换的,但是好像关系不大。没啥技术含量,备份下操作步骤及相关工具。

镜像格式转换

一般为了方便都转化成vmware的VMDK格式了,有很多设备也直接提供ova或者vmdk格式的镜像,格式转换相关内容件见上一篇文章。

Cisco ASA的Qcow2

此处单独提一下Cisco ASA的差异,网络上的Cisco ASA固件有一部分是qcow2格式,有一部分是img格式,这两种就没必要来回转换了,因为加载ASA的qcow2固件可以看到qcow2里面是包含了img格式的固件的。Cisco ASA的固件格式解析及打包gdbserver可以看看nccgroup出的asatools:https://github.com/nccgroup/asatools
照着上面的文章可以对大部分asa的qcow2格式固件打包gdbserver调试,之前也搜集过一部分asa各版本的qcow2格式固件,有需要可以邮箱联系。

不同平台静态编译的gdbserver等

gdbserver

Embedded_toolkit:https://github.com/akpotter/embedded-toolkit
里面还包含了一些其它的工具,像netstat等。

ida linux_server

IDA自带了一些静态编译的arm、linux平台的linux_server,也可以在一些环境下适用。

busybox

下载:链接

运行gdbserver的方式

如果不需要自启动的话,且拥有一个能直接运行程序的shell就直接运行就行,如果没有可用的shell或者想自启动,可以尝试以下方式。

rcS脚本或rc.d

在固件启动项里加入。

inittab

之前试过一个有意思的配置gdbserver场景,一个linux平台的固件设备系统,将其转化为vmware虚拟机之后,没有可执行命令的shell,后来修改启动文件inittab中设置的ctrl+alt+delete对应的命令为执行ida的linux_server,在vmware点击ctrl+alt+delete按钮后,就可以IDA连接进行调试了。