行业解决方案查看所有行业解决方案
IDA 用于解决软件行业的关键问题。
发布时间:2022-10-09 17: 35: 22
本文是对公司常用的磁盘控制器固件进行逆向分享,从而找到其中的漏洞,供学习参考:
现在一切都准备好,打开硬盘驱动器并使用以下命令运行openocd:openocd-f interface/.cfg-f target/test.cfg
test.cfg应该是硬盘控制器使用的CPU的配置,对于大多数marvell CPU,这个配置应该可以工作。我不确定adapter_khz,所以我将我的设置为100(只要这个值低于它应该工作的实际值)。
如果一切顺利,您应该会看到上述内容。现在您可以使用telnet连接到端口4444并发出命令。
硬盘控制器中使用的Marvell芯片没有公开记录。因此,如果您想知道他们的内存映射等信息,您必须签署NDA并可能支付一些钱。相反,我要做的是尽可能多地从固件中找出可能,并可能通过探测电路。
当您无法拆焊和转储闪存时,获取固件并不容易,因此我们必须完成启动过程。大多数ARM CPU从地址0xFFFF0000开始执行,这称为复位向量。如果我们从该地址转储65536字节,我们将找到引导代码,这将是一个很好的起点。
为了转储内存,我们首先需要停止CPU,这可以通过命令“reset halt”来完成(要求我们首先重置系统,因为我们无法停止超过某个阶段)。如果重置命令由于任何原因不起作用,例如:JTAG的RST引脚未连接任何东西,您需要断开并重新连接硬盘驱动器的电源,然后快速接入JTAG并在短时间内发出停止命令几秒钟。使用命令“dump_image
”转储的内存。
当我们对转储的映像进行反汇编时,它是一些相当小的(4 kb)ARM引导代码,应该可以引导我们找到固件的其余部分。
原文地址:https://www.malwaretech.com/2015/04/hard-disk-firmware-hacking-part-2.html
展开阅读全文
︾