我有一个ISP提供的路由器Huawei B5318-42。我通过UART和UART-USB转换器连接到它,复制了启动时的输出,并设法找出哪个芯片是板载闪存。通过将连接到板载VCC的跳线放在闪存上,我可以在某些时候停止引导,而无法恢复或继续,但这并没有帮助我获得外壳。引导时(#Reset_MT7530)上有一个点,那里有一个计时器和四个选项(其中一个是命令提示符!),但我什么也不能选择。

这是我到目前为止所拥有的:

闪存数据表:http://static6.arrow.com/aropdfconversion/ad37e5e560057875befe533ab753d2eb5063011f/125413166402097mx25l25635f203v20256mb20v1.5.pdf

我知道它运行BusyBox和vPort Release_R_D_Tech6根据启动顺序。

这是MIPS体系结构。

在路由器上按reset后的原始输出:

/>通过在闪存的引脚上施加电压或接地,是否可以在某一点停止引导?也可以选择将闪存从板外焊接出来,但是对我来说太极端了,不能尽早尝试。

任何帮助都值得赞赏。

评论

最好的选择可能是将闪存拆焊,并使用从源头或至少使用修补的内核命令行的干净构建的u-boot在另一个芯片上创建副本。您也可以考虑更改成为它的根分区或squashfs或其他。

我会尽我所能去做海盗。我没听懂你的最后一句话。壁球? @ChrisStratton

海盗车并不是唯一合适的工具。如果您想在修改嵌入式Linux系统方面有所作为,则需要熟悉squashfs。

注意,还有其他我应该熟悉的工具吗? @ChrisStratton

#1 楼

我希望您已经可以解决您的问题。
以防万一您仍然在挣扎中,我想与您分享我的想法。

我只想指出我不确定100%。

正如Gogeta70所说,您可以直接连接到闪存芯片的I / O引脚。海盗车(Bus Pirate)是这样做的不错选择,因为它并不那么昂贵,而且您似乎很幸运。您已经发现您的闪光灯是Macronix的MX25L25635EF。您可以在flashrom网页上查看该设备是否属于受支持的设备列表。
https://flashrom.org/Supported_hardware

但是,如果您决定这样做请记住,如果不拆焊,可能会遇到一些问题。我只是想指出这一点,以便在仍将其焊接到板上的情况下进行连接时,您不会感到沮丧,并且不会透露想要的结果。在flashroms网页上,有一个针对此类情况的疑难解答部分。如果没有其他效果,您仍然可以尝试从板上拆下闪光灯。
https://flashrom.org/ISP

您可以尝试做另一件事。我使用一个月前使用的NAND闪存来进行此操作,以便访问busybox。为此,您仍然需要访问闪存,因为您必须访问片选引脚。我只建议您在有能力销毁设备的情况下执行此操作。

我认为有趣的部分是他要您选择一个选项。此后,引导程序开始通过闪存引导系统。就我而言,我有一个像您一样的计数器,最后引导程序开始从闪存引导。当我将CS拉到地面时,他再也无法访问闪存了,我直接进入busybox控制台,在那里我可以浏览文件系统。

评论


非常感谢!我已经失去了当前的TTL-> USB转换器的愚蠢性,我在等待新的+海盗车来运送,但这给了我一些建议。该设备是一次性的,是的。公交海盗到达后,我将编辑问题。

–rddead
19-10-11在15:39

好的。我很好奇。希望一切对您都好。

–拉玛祖里
19-10-15在5:22

@rddead这些运输时间使我丧命!

–喜马拉雅
9月18日下午2:05

@Himal哈哈!我完全忘了更新。 Ramazuri的答案现在被接受。

–rddead
9月21日晚上10:24

#2 楼

因此,您正在尝试获取引导外壳。做什么?您是要转储闪存吗?

无论如何,您都说无法选择启动进入Shell,但是转储中的文本则相反:

Please choose the operation: 

   1: Load system code to SDRAM via TFTP. 

   2: Load system code then write to Flash via TFTP. 

   3: Boot system code via Flash (default).

   4: Entr boot command line interface.

   7: Load Boot Loader code then write to Flash via Serial. 

   9: Load Boot Loader code then write to Flash via TFTP.


如果按'4',您将获得引导壳。您是否尝试过?

如果您按一个数字(后面按enter键)并且它似乎没有响应,我将仔细检查您的UART桥接器实际上是在发送按键。 br />
如果失败,您可以采取其他方法。您可以尝试直接连接到闪存芯片的I / O引脚,并使用带有Flashrom的Bus Pirate之类的东西直接读取芯片上的固件。从那里,您可以开始对固件进行一些逆向工程,以了解启动过程。您甚至可以修改固件以提供引导外壳。

可以尝试的另一种方法是在板上找到JTAG连接。如果这样做,您可以尝试使用OpenOCD与微处理器对话,然后从那里您可以执行几乎所有您想做的事情-您可以控制处理器。 VCC到您的闪存芯片,但是我要小心不要为它设计的闪存芯片做任何事情-您不想炒,对吧?

评论


我尝试按cu和minicom(从Linux终端连接)同时按4,但未发送。我认为这与启动时收到的“接口不接受私有ioctl”消息有关。我想我会遵循公共汽车海盗的想法。该特定板上没有JTAG连接。它相对便宜,但是你是对的,我会尽量不要炒,至少不要无意中:)

–rddead
19年9月1日在19:03

如果这类似于已发布的联发科技(前Ralink)U型靴,则该菜单中的输入实际上很可能已在代码中禁用。

–克里斯·斯特拉顿(Chris Stratton)
19-09-3在21:07



我想是的。防逆向工程措施? @克里斯·斯特拉顿

–rddead
19年4月4日,0:50

不,只是通过最容易看到的方式(而不是U-Boot设计的方式)自定义行为的惰性。请记住,相关代码的许可会产生法律要求以将其发布,并且实际上至少有一些变体。

–克里斯·斯特拉顿(Chris Stratton)
19-09-4在1:14