攻破ST-LINK V2-1

/ 5评 / 2

就是攻破板载的带mbed + VCP + STLink的家伙.使用带jar的升级程序,升级我的ST-Link是没问题的.那么解压他.

记得装上JDK,然后解压:

这个就是目标固件,但是AES加密的.

根据IDA反汇编资料,这应该是这样的.

看来f2_4应该是最高端的.这个固件是AES加密的,这里有人做了个简单程序(其实是反汇编jar出来的部分内容,可读性很差.)

https://github.com/lujji/st-decrypt

既然是对称加密,那肯定有KEY,这个KEY目前是best performance.

然后打开解密后的bin,看到熟悉东西了吧.

我改成别的看看等下会不会被我刷掉.

重新加密生成一个新的bin.

然后重新打包一下.

用新程序Upgrade一下固件.再检查新mbed.htm,果然变了.

也就是把STLink的固件给刷了,他的数据根据前段Bootloader给出的.我们现在可以改第二阶段,也就是我们有办法把ST-LINK固件整个备份出来的.先配置下STM32CubeMX.

时钟.

速率低一些,减少出错率.

生成的工程后加入一行,打印全部Flash内容.

当然这个编译出来千万不要接触到任何和中断有关的函数,因为具体向量表是不可预知的.所以中断有关代码都不能有,屏蔽.然后HEX转BIN.自己想办法.

替换文件后再来生成一次JAR.

 冒险来了,是STLINK挂了还是DUMP出整个STLINK了.然后整片都被我读出来了.随后得到Bootloader(从0x4000开始找到自己原始程序数据,截取不要.),修改WP(访问WriteProtect的语句屏蔽)数据.

bootloader

然后用烧写器烧写一个Bootloader.然后升级,升级可以选择升级到任意,非常任性.(因为全片擦除缘故,具体不知道哪里记录.)

然后全部升级还原,解密整个固件打包.

full

当然,实际测试过,最高级的还是VCP+MSD了.U盘悲剧了.

UPDATE:给下面的主芯片做一次ERASE ALL,U盘的空间就回来了.

然后,我的Mbed呢?好吧,真的不见了.

  1. 叶子说道:

    我可以评论嘛 ?
    个人telegram
    @tipstrying

  2. 请求说道:

    你和https://lujji.github.io/blog/stlink-clone-trace/ 这一个是一个人吗?

  3. 爱豆说道:

    这个对称的Key是怎么拿到的呢

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注