首页
社区
课程
招聘
华为光猫HG8245H救砖笔记⑥逆向UBoot恢复海思命令行
发表于: 2017-2-22 15:49 20237

华为光猫HG8245H救砖笔记⑥逆向UBoot恢复海思命令行

bxc 活跃值
6
2017-2-22 15:49
20237

原文发在我的blog:af8K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8X3u0D9L8$3N6Q4x3X3g2U0M7$3g2J5M7$3!0X3N6q4)9J5k6h3&6W2N6q4)9J5c8X3q4J5j5$3S2A6N6X3g2K6i4K6u0r3x3e0M7@1

正文:

前文中虽然成功的运行了UBoot,但是因为内核损坏,依然无法正常启动。想要用UBoot刷写Flash,就必须进入UBoot的命令行模式,一般UBoot在引导过程中,会有短暂的时间让用户按下某些指定的按键来中断自动引导。可是之前运行的UBoot并没有这样的提示,感觉可能是华为禁用了UBoot的命令行。

曾经在网上看到过关于HG8245的UBoot的输出信息,其中包含如下字样的提示:

Press d key to abort autoboot: 10

一番周折后,找到了存在该信息的固件,不过是HG8245的,不是HG8245H的。提取UBoot后,尝试放到HG8245H里运行,但UART没有任何输出。

于是打算逆向UBoot,看看中断自动引导部分功能是否被禁用了,根据对字符串的引用参考分析,定位到了main_loop函数,以下为逆向的伪代码:

网上有很多关于UBoot引导流程分析的文章,阅读过后便可知道abortboot函数是中止自动引导的关键所在,一般这个函数会在bootdelay指定的时间内,检查bootstopkey设定的键码是否被按下。如果条件满足中止引导的话,就返回非0值,否则返回0。

所以看下abortboot函数的伪代码,就清楚问题出在哪里了:

果不其然,可以发现这个函数,无论如何,都会返回0,即永远无法进入命令行模式。

那么修改该函数的返回值,应该就可以实现无条件进入命令行模式了吧。IDA Pro中转到return 0对应的机器码:

使用16进制编辑器,或者IDA的keypatch插件,修改该指令为:


[注意]看雪招聘,专注安全领域的专业人才平台!

上传的附件:
收藏
免费 1
支持
分享
最新回复 (8)
雪    币: 12
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
可以提供修改之后的uboot吗?
2017-3-8 15:43
0
雪    币: 7068
活跃值: (3552)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
3
fnto 可以提供修改之后的uboot吗?
发到chinadsl上了,还在审核,f28K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3y4Z5K9h3&6S2k6s2y4D9i4K6u0W2L8X3g2@1i4K6u0r3k6X3!0J5N6h3#2Q4x3X3g2H3K9s2m8Q4x3@1k6E0L8$3c8Q4x3@1c8$3K9h3g2%4N6r3S2J5k6h3q4V1i4K6t1$3N6r3W2V1i4K6y4p5x3e0t1^5y4K6V1^5
2017-3-9 12:16
0
雪    币: 12
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
下载了,非常感谢。
2017-3-12 11:14
0
雪    币: 12
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
应该还有下文吧,如何刷回固件,没有现成编程器固件分包的情况下,用官方固件如何制作编程器固件呢?
2017-6-6 11:11
0
雪    币: 7068
活跃值: (3552)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
6
fnto 应该还有下文吧[em_1],如何刷回固件,没有现成编程器固件分包的情况下,用官方固件如何制作编程器固件呢?
最近没时间
2017-6-6 20:22
0
雪    币: 12
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
等您大作
2017-6-7 23:32
0
雪    币: 12
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
救成功一个,uboot下的命令与分区是一一对应的,除了wifi参数分区,但奇怪的是用刷startcode命令,刷完居然启不开,要启动到系统再刷startcode才行。
2017-8-27 23:52
0
雪    币: 458
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
这个就有点牛逼了。理论上可以破解很多东西~~~比如一些安全启动类型的。fuse 或者 efuse之类的
2019-10-12 16:20
0
游客
登录 | 注册 方可回帖
返回