搜索
返回列表 发新帖本帖赏金 10.00元(功能说明)我要提问

用IDA PRO + QEMU动态调试STM32固件

[复制链接]
632|7
 楼主 | 2021-3-13 18:27 | 显示全部楼层 |阅读模式
本帖最后由 yjmwxwx 于 2021-3-22 07:06 编辑

#申请原创# @21小跑堂

知己知彼百战不殆,了解下敌人都是什么套路,有助于更好的保护自己的程序。

闲着没事调试下老毛子孔雀石SDR的固件,由于我没硬件只能用QEMU
作者产品资料网盘
https://yadi.sk/d/4ZgsrswxYClG1Q

安装支持STM32的 xPack QEMU Arm
安装方法如下,有详细说明不再重复。
https://xpack.github.io/qemu-arm/

打开IDA 的debugger菜单设置一下调试
VirtualBox_win7_13_03_2021_15_45_02.png

VirtualBox_win7_13_03_2021_15_45_35.png
qemu 运行参数


"qemu-system-gnuarmeclipse" -machine STM32F429I-Discovery -s -S -kernel C:\311.bin


设置本机IP

VirtualBox_win7_13_03_2021_15_50_22.png

运行可以连接了
VirtualBox_win7_13_03_2021_15_52_19.png

通过比较新版和旧版固件很容易就找到了密码表地址0x80392d8
截图_2021-03-13_15-54-15.png

找哪个程序调用了这个表,发现是一个校验程序

截图_2021-03-13_16-00-32.png

向上找哪里调用的

截图_2021-03-13_16-01-58.png

我们又找到了读STM32ID的程序,通过分析上面两个是生成校验数组的。
截图_2021-03-13_16-03-45.png

往下看sub_800DB54是原来的ID号生成密码的程序

截图_2021-03-13_16-05-19.png

下面一些是对生成密码简单移位的程序,但是有上百行,人工看比较麻烦,所以运行动态调试
VirtualBox_win7_13_03_2021_16_08_00.png

在0x800e270设个断点

VirtualBox_win7_13_03_2021_16_09_54.png

运行以前的算号器生成本机密码
截图_2021-03-13_16-13-26.png

把IDA动态调试寄存器R6和R7改成 0XA52FF277和0XBC8FB975
0X800E3CC设个断点,运行看结果
VirtualBox_win7_13_03_2021_16_18_26.png

运行
VirtualBox_win7_13_03_2021_16_19_09.png

结果R0和R1  0x75b98fbc 0x77f22fa5
在下面函数里面设置个断点接着运行

VirtualBox_win7_13_03_2021_16_21_47.png

这个不用调试肉眼就可以看出来,通过和密码表比较,密码表里面有就向R6+0x814地址写0XFA,没有就写0X58。

到这里已经知道怎么和密码表比较了

看固件BIN文件时候看到结尾有数据,这很不正常,看哪里调用看到两个对整个FLASH的校验程序
VirtualBox_win7_13_03_2021_16_25_57.png

截图_2021-03-13_16-33-00.png

截图_2021-03-13_17-20-56.png


由于QEMU不支持STM32H7所以没办法运行整个程序,要是有硬件插上JILINK很容易就能知道哪个程序校验整个固件,静态不容易看到哪里进行校验。


人家作者开发的东西,有人**了还卖和作者原价骗人

要是有硬件我一定研究如何去掉保护免费放出固件,让搞**的没把法赚钱,但是没硬件就没办法了。
由于我没硬件没办法验证和调试,随便改改不知道能不能去掉保护。


  1. 0800DED4 由原来
  2. str r4, [r6, # 0x814]
  3. 改成
  4. str r7, [r6, # 0x814]
  5. 0800DD66由原来
  6. str r0, [r3]
  7. 改成
  8. str r2, [r3]
  9. 0800DC90和0800DC92由原来
  10. ldr r2, [r4]
  11. cmp r2, r3
  12. 改成
  13. str r3, [r4]
  14. cmp r3, r3
复制代码

Malahit_FW_1_10b.hex 作者发布的固件

3.zip我胡乱改的固件,就是试试玩,不可能成功。

Malahit_FW_1_10b.hex.zip (427.77 KB, 下载次数: 7)

使用特权

评论回复

打赏榜单

21小跑堂 打赏了 10.00 元 2021-03-16
理由:恭喜通过原创文章审核!请多多加油哦!

相关帖子

| 2021-3-14 08:05 | 显示全部楼层
我给你加了个裤子,编辑了一下帖子,给你申请了原创。
这样论坛会有一点奖励,建议你其他板块的帖子也这么干。
不知道这样自作主张会不会不好。

使用特权

评论回复
 楼主 | 2021-3-14 09:09 | 显示全部楼层
xyz549040622 发表于 2021-3-14 08:05
我给你加了个裤子,编辑了一下帖子,给你申请了原创。
这样论坛会有一点奖励,建议你其他板块的帖子也这么 ...

谢谢了。
我发帖子不图回报,我自己懂的东西免费和大家分享,有人看我帖子就不错了。

使用特权

评论回复
| 2021-3-14 09:50 | 显示全部楼层
yjmwxwx 发表于 2021-3-14 09:09
谢谢了。
我发帖子不图回报,我自己懂的东西免费和大家分享,有人看我帖子就不错了。 ...

no,我觉得你说的不对
你的帖子是原创,论坛有这个活动,参与下又何妨,这样有了论坛的推荐,才可以被更多的人看到。学习的结果如果可以创造一点点收益,可以支持更好的创作。
而且你的帖子确实不错,申请原创加V可以让更多的人看到你,更多的人参与讨论。加油,看好你!

使用特权

评论回复
| 2021-3-14 14:43 | 显示全部楼层
佩服楼主技术

使用特权

评论回复
| 2021-3-16 14:40 | 显示全部楼层
孔雀石SDR是什么东东?

使用特权

评论回复
 楼主 | 2021-3-16 14:43 | 显示全部楼层
goyhuan 发表于 2021-3-16 14:40
孔雀石SDR是什么东东?

就是个收音机,卖的很贵好几百。

使用特权

评论回复
| 2021-3-18 15:18 | 显示全部楼层
支持楼主,厉害

使用特权

评论回复
扫描二维码,随时随地手机跟帖
返回列表 发新帖 本帖赏金 10.00元(功能说明)我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表