搜索
bottom↓
回复: 17

STM32的iap破解思路

[复制链接]

出0入0汤圆

发表于 2012-8-9 14:16:11 | 显示全部楼层 |阅读模式
首先声明本人并没有进行破解工作,只是在设计防破解时想到了这样的思路,大家看看对不对
我们知道stm32可以读写保护来防止破解,如果程序没有iap功能,当然没有问题。
如果有iap,并且iap大小超过读保护自动打开的写保护大小,那么就完全有可能破解。

步骤如下,
首先去掉写保护,无论是sram启动还是借助仿真器,这1步不会造成flash完全擦除。
一般的iap程序,包括st的例程,都包含一个app程序的跳转地址,而且这个地址还很特殊,因为向量表跳转要求,至少是512的倍数。
我们从最后一个页开始,用从sarm启动的程序进行闪存编程,将一个 读取flash并用串口或其他口输出的 首地址是512的倍数程序写入,读取范围至少包括iap范围,显然因为是暴力破解,需要尝试很多次
最后总会跳转到这个地址,结果你的bootloader就被读取了,也就是被破解了
反汇编bootloader,找到那个跳转指令,一定可以找到,因为我们已经找到了跳转地址

在另一块板子上,由于我们已经知道了iap程序,改写跳转地址,让它跳转到我们需要的地址上,在那个地址上将运行读取flash的程序
改写依旧是sram启动并闪存编程
结果我们就读取到了app程序,破解完成

最坏的情况是需要第三块板子,如果不能找到一个flash上的空闲地址,只能改写一部分app地址读取未改写部分,同理第三块板子读取第二块板子改写掉的原来的flash

破解完毕

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2012-8-9 14:19:14 | 显示全部楼层
只有这个iap程序足够小到读保护自动打开的写保护范围内,好像就比较安全了,就是bootloader被破解了也读取不了app程序

出0入0汤圆

 楼主| 发表于 2012-8-9 14:30:17 | 显示全部楼层
从这里也看出 写保护好像对于防止破解毫无帮助  

出0入0汤圆

发表于 2012-8-9 15:00:45 | 显示全部楼层
写保护只是防程序被自己代码改写吧,不防破解,读保护才是一定程度上防破解,坐等高手来分析

出0入0汤圆

 楼主| 发表于 2012-8-9 15:15:40 | 显示全部楼层
chengying 发表于 2012-8-9 15:00
写保护只是防程序被自己代码改写吧,不防破解,读保护才是一定程度上防破解,坐等高手来分析 ...

这样的话 一般自己的程序总不会随随便便改自己呀

出0入0汤圆

发表于 2012-8-9 15:30:26 | 显示全部楼层
就怕程序跑飞改写

出0入0汤圆

发表于 2012-8-20 23:27:54 | 显示全部楼层
写保护正是用于防止程序跑飞时误写代码区。

出0入0汤圆

发表于 2012-8-20 23:44:11 | 显示全部楼层
明白楼主的意思,就是利用明文下载的用户程序读取自身。所以一个合格的bootloader应该是加密下载用户程序,必须经过bootloader解密以后才能执行合法的用户程序。

出0入0汤圆

发表于 2012-8-21 00:21:39 | 显示全部楼层
bootloader 执行application 之前, 先对其检查验证

出0入0汤圆

 楼主| 发表于 2012-8-21 16:15:23 | 显示全部楼层
shangdawei 发表于 2012-8-21 00:21
bootloader 执行application 之前, 先对其检查验证

呵呵 我当时理解错误,后来实地验证,写保护以后从ram调试根本就无法写flash

出0入0汤圆

发表于 2014-5-5 21:12:07 | 显示全部楼层
myxiaonia 发表于 2012-8-21 16:15
呵呵 我当时理解错误,后来实地验证,写保护以后从ram调试根本就无法写flash ...

不是可以先清除option bit,清除写保护吗

出0入0汤圆

发表于 2014-5-5 21:32:58 | 显示全部楼层
一般的IAP没那么简单的吧,单纯的bin刷?这样还要啥破解啊,升级时的数据流就是bin啊。要是加密的,那你没办法运行的,本身你的固件不符合格式要求,即使你能知道文件格式,你也不懂key是啥,所以下载下去解密不符就丢到了。

出0入0汤圆

 楼主| 发表于 2014-5-6 07:54:18 | 显示全部楼层
nongxiaoming 发表于 2014-5-5 21:32
一般的IAP没那么简单的吧,单纯的bin刷?这样还要啥破解啊,升级时的数据流就是bin啊。要是加密的,那你没 ...

这是我一开始想到的,后来仔细看stm32的闪存编程手册,st的人员早就防着这个问题了,哈哈哈

出0入0汤圆

发表于 2014-9-16 11:29:52 | 显示全部楼层
那楼主,你1楼开始时讲的这种IAP解密方法,可行么?

出0入0汤圆

 楼主| 发表于 2014-9-16 12:03:38 | 显示全部楼层
jsszdfdn 发表于 2014-9-16 11:29
那楼主,你1楼开始时讲的这种IAP解密方法,可行么?

当然是不可行了,破解没那么简单

出0入0汤圆

发表于 2014-9-16 12:24:47 | 显示全部楼层
加密与解密是矛与盾!

出0入0汤圆

发表于 2014-9-16 12:44:04 | 显示全部楼层
有很多方法可以规避破解的。

出0入0汤圆

发表于 2014-9-16 14:33:42 | 显示全部楼层

mark
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-28 17:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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