找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 46001|回复: 64

TP-LINK VxWorks 固件头校验的分析

  [复制链接]
本帖最后由 hackpascal 于 2015-5-17 12:22 编辑

看到有不少人在讨论 TP-LINK 的 VxWorks 固件头修改,这里楼主给出自己的分析:

楼主发此贴的目的是让你们放弃对不拆机刷机的幻想。遇到VxWorks的路由,老老实实拆机硬改吧!!

TP-LINK 的 VxWorks 固件头有两种:

第一种是比较早的,以 TL-WR841N v9 国内版为例:
其特点是整个固件就是一个文件



第二种是比较新的,以 TL-WR882N v1 为例:
其特点是固件分为文件系统部分和内核部分



以上两个图选中的部分是固件的 MD5 校验。
MD5 校验方式和 Linux 版的检验方式相同,即使用一个固定的 16 字节数据填充选中的部分,再计算替换后的文件的 MD5,将此值覆盖回选中的部分。

楼主用 IDA 对固件进行了逆向分析,得到了那串固定的 16 字节数据:
CC 96 28 EE 8D FB 21 BB 3D EF 6C B5 9F 77 4C 7C

使用此数据就可以成功绕过 MD5 校验。

但是,这还没完!

(P.S. 这个仅部分固件有以下这个校验)
重新计算 MD5 校验后,在 Web 里进行升级,会出现如下提示:



这个提示实际上是骗人的,真实的错误是什么呢?
需要看看 TTL 的输出:



看最后一行的提示: RSA SIGN is error
这说明固件带有 RSA 签名!

这个数字签名在何处呢?比较一下刷入到 Flash 中的数据和原升级固件,发现升级固件里最后有 0x80 字节没有被写入,这就是 RSA 签名:



修改固件内容,RSA 签名就会被破坏。
0x80 字节的数据说明此 RSA 是 1024-bit 的,暴力破解基本无望。
因此,想要通过修改固件头来刷其他固件基本上是不可能的了。

P.S.

在 IDA 里可以看到升级固件的步骤:



可以看到系统会依次检查固件头的 Magic、产品ID、固件版本、生产商ID、国家ID、语言ID、固件大小、MD5校验,
最后检查 RSA 签名。

此 RSA 签名的方式应该是先计算固件的 MD5,再对此 MD5 值进行签名。

分析固件可得到3组疑似公钥:

BgIAAACkAABSU0ExAAQAAAEAAQA1Ccyu85b65TawjvSQTaryGNk1gBJVn6kEIJq6m0hagsqkiy32v4ui41ucp6tKfaoqb7AHDBq41dcEMgM6YBF2e3aRKQqZ6EwgCvAi3O81n7UbE97lD+FhvqlYxyqqMbSdvNmCiAoujheUs9DUaOCHq4K3McDxATMVOnCtT1H+wQ==

BgIAAACkAABSU0ExAAQAAAEAAQD7Bk7f7fdnL9drucbr+P9wA2JUlYP/OH4zvIS69eY3KKmUB1fs9ND06EINqTQ4vQ4gCeekU1dRi3WiZLgVjo/UzovplddUezNMWq0gk4TVbsGf/xzXZN+pDWid9zYsSr9qvINId6cnMR+s/wXB1TOE6t6wfzHvnbkJR0r1mqG4yA==

BgIAAACkAABSU0ExAAQAAAEAAQAHNt5fFl0BUlLkPjKJloZFlVFkegFjEsVJCRjwbRD6i646tpvc/Z5MK6SuXcz3yizxDGMnZ6BJdqCR9SJTdd3b11F7Q+pgetcAgX5X9NZTzo1MCvpkKAlEyZG0rXMpSbADNNqtACNT0BLhHu4nyiDBBIIOSZljQAzHiqSquxHDsg==

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 4恩山币 +10 收起 理由
ant*** + 1 楼主威武—我就想问问挖掘机技术哪家强?
tawang*** + 5 拿去买糖吃吧!
ZHIZ*** + 3 一看就是觉得高端、大气、上档次!
libc*** + 1

查看全部评分

高手 支持破解
回复

使用道具 举报

我现在的FWR200根本不能用WDS 也不能刷水星的......................
回复

使用道具 举报

支持楼主
回复

使用道具 举报

楼主真是人才啊!
回复

使用道具 举报

这个必须顶 希望早点出解决方法
回复

使用道具 举报

好文,精彩
回复

使用道具 举报

841N V9 OP 的开发版已经支持了 就是说 他们已经解决了这个问题了吧
回复

使用道具 举报

 楼主| | 显示全部楼层
soilfish 发表于 2014-7-6 16:38
841N V9 OP 的开发版已经支持了 就是说 他们已经解决了这个问题了吧

国际版是linux固件
国内是vxworks
回复

使用道具 举报

额,这个帖子证明了楼主是位高手
回复

使用道具 举报

楼主牛逼
回复

使用道具 举报

这个必须赞一个
回复

使用道具 举报

基本上和破解一些软件的思路一样。
比如写keygen的时候,替换软件的公钥,用自己的公钥。然后按照注册算法写注册机。
但是路由器要替换公钥,必然要动flash上编程器,既然动了flash都上编程器了,我还干嘛要刷官方固件?直接烧个openwrt不就行了。



回复

使用道具 举报

点赞,好像很少Vxworks的资料啊
回复

使用道具 举报

IDA是什么东东?jtag?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-15 19:02

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表