Arm hex 固件反转

逆向工程 固件 手臂 加密
2021-06-20 05:57:38

几个月以来,我一直在研究由制造(未获得许可)游戏手柄控制台适配器公司生产的固件我的目标之一是了解他们如何绕过(破解)新游戏机许可游戏手柄通信中涉及的 SHA 授权过程。

注意:我发现SYS_V用户的一个非常感兴趣的回复从二进制文件提取有用信息的方法对我有很大帮助,但我仍然在与相反的情况下苦苦挣扎。

事实如下:

  1. 通过查看他们的一块电路板并对他们的软件更新程序进行一些逆向工程,我 95% 确定 uC 是 Nuvoton M452RG6AE/M452RE6A(ARM-Cortex M4)。这里是数据表。

  2. 该公司将固件存储在公共ftp 上其中一些是加密的(使用非规范算法)。未加密的固件是包含在 P2_P3P4、P2_X1、P3P4_NEO 文件夹中的固件。

    某些固件将 LD 和 AP 字作为其文件名的一部分。这让我想知道,它们可能包含引导加载程序。

    我被困在这里。

    我的另一个目标是找到反转加密算法并使固件“可读”的方法。

  3. github上的一个人用mac发布了固件升级过程。通过查看这些文件和逆向更新程序,似乎是更新程序客户端将固件发送到uC加密。引导加载程序将负载写入外部 i2C 存储器。固件上传完成后,引导加载程序计算校验和并将其发送到更新程序客户端进行交叉检查。如果校验和有效,更新程序客户端将“ 0xa6(statusA CMD) ”发送到引导加载程序,引导加载程序将从 i2C 内存中读取固件,解密并写入 APROM 部分。

  4. 通过将 CPU 设置为 ARM-v7M,可以使用 IDA(我不熟悉radare)来反转未加密的固件。有些部分反编译得很好,有些部分被IDA检测为unk,不知道有没有数据或代码部分。

有人想帮助我或向我建议一些可以帮助我进行倒车的事情吗?

更新:

对于第 1 点和第 4 点,在我的问题中,我指的是这个文件 V21_LD_AP (md5sum: 5e19b55bb46bb642faebcb19478cec92) 和这个文件V21_AP (md5sum: 344facf48a617364d74adb 344facf48a617364d516717 版本的文件不包含这个文件)。

我的目标是试图解密这个文件

我很确定他们对每个固件使用相同的加密算法。但是,某些固件以两种方式发布:加密和解密。可以在 P2_X1 文件夹下找到一个示例(请参阅固件 V16 版本)。

0个回答
没有发现任何回复~
其它你可能感兴趣的问题