在我正在看的这个精简的固件中(海康威视摄像机代表不实),这就是我要做的全部工作。没有其他固件存在,并且open-seasame命令提出了加密挑战,因此没有root用户。

此列表中是否有任何东西可以嘲讽通过uboot转储固件的功能?

有用于micro-SD卡的垫,但我没有焊接任何东西或用示波器对其进行测试/探测。

The following commands are supported:
boot    erase   help    reset
saveenv printenv        setenv  upbs
format  update  upfusb  upf
updatebusb      updateb gos     go
mii     gpio    ping
Use help to get help on a specific command


#1 楼

好吧,我想出两种方法。


第一种是困难的方法。我查找了一些资源,发现海康威视摄像机上的upf命令应该能够更新固件,并且它正在使用TFTP将固件加载到0x02000000地址中。
参考:https://ipcamtalk.com/线程/hikvision-g1-5-5-firmware-exploring-the-cam-attempting-unlock.40814/https://ipcamtalk.com/threads/unrestricted-root-shell-on-g1-cameras.23213/
因此,您可以使用upf命令从您的计算机接收文件,然后将其以0x02000000的速度加载到内存中,在加载完成之前,您可以通过断开连接来中断更新操作,因此可以返回到uboot提示符。并执行其他操作,传输的数据仍将保留在内存中。
然后还有一个go命令,它可以使处理器执行您提供的地址。
要打包它们,您可以可以使用上述技术将任意数据加载到固定的内存地址中,然后您可以控制处理器执行任意操作ddress,因此您可以编写shellcode来从nand读取并打印它们。
第二个是更简单的方法。您可以尝试看一下printenv的输出,并且可能会有一些有趣的环境变量控制着更新进度和引导进度。有机会您可以上传自定义的小ROM,而不会覆盖原始的小ROM。无论如何,我建议您使用像JTAG这样的调试器来转储内存,这样做要容易得多,除非您必须这样做一些焊接。

评论


我没有在板上看到JTAG端口,但这并不意味着没有。我确定芯片上只有一个,我只想弄清楚引脚是否在某处。 imgur.com/gallery/JcgsEPE HKVS#printenv ipaddr = 192.0.0.64 serverip = 192.0.0.128 gatewayip = 0.0.0.0 netmask = 255.255.255.0 ethaddr = 94:e1:ac:00:55:0e loadaddr = 0x00208000 bootfile = hImage bootcmd = null bootargs =控制台= ttyS0 bootdelay = 2 dbg = 8 chip_id = 1

–J.Hirsch
19年8月15日在22:27



好在console = ttyS0暗示它是一个Linux内核,也许您可​​以尝试设置init =参数,以便您可以在固件上执行任何可能的可执行文件:)

–迷雾笼罩
19年8月16日在15:49

#2 楼

uboot中的go命令允许您指定地址并提供参数。您可能会使用此调用printf(),从而提供一个指向格式字符串的指针和一个您想要读取的内容的指针。