我不确定这是否是正确的论坛,还是更适合其他SE子,尽管我认为这是一个合适的地方。

我想知道是否有任何合适的论坛能够直接运行闪存转储的仿真器,其目标是转储设备上的相同体系结构?因此,例如,如果转储来自运行Broadcom MIPS CPU的设备(通过JTAG),并且包含整个系统(引导加载程序,固件,文件系统,NVRAM等),那么我可以挂载(或应该挂载)我说,直接将原始图像,内存和所有图像加载到内存中,然后运行它,就像我可以将其闪存到具有相同芯片的其他设备上一样?

我一直在研究不同的软件,例如OVPsim(这是一个“完整的系统模拟器”和Qemu),尽管我不确定它们是否可以直接运行完整的转储。

谁能对此有所了解,这可能会造成混淆看着一切。

#1 楼

为了从映像启动,您需要确定设备的硬件配置。那就是外围设备所映射的位置,它们的操作和寄存器。如果既没有针对您要处理的SOC的规范,也没有针对硬件板的规范,那么您将不得不对设备的固件进行反向工程。这将使您确定软件如何期望硬件运行。由于QEMU具有MIPS支持,因此您可以使QEMU仿真所述外围设备。您在QEMU中追求的模式称为系统仿真。外围设备的组合通常称为板。您需要设置一个与您从中进行转储的设备相匹配的板,或者至少与引导加载程序和内核中编译的支持兼容的板。希望您正在使用某些基于Linux的系统,并且制造商符合GPL规定,以便您可以下载设备上运行的软件的源代码。

找出所有内容以创建一个仿真环境可以启动整个映像的工作量很大。我要说的是,我们可能要讨论多年的逆向工程和实施工作,这取决于您拥有什么级别的文档。

有些公司专门从事创建这种仿真环境,例如Lauterbach。使用市售工具设置环境可能非常昂贵。

TL; DR这将需要大量工作,而且可能不值得。您可能想研究使用图像的一小部分。例如数据分区,而不是完整的内核。