你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32防破解  

[复制链接]
人生如梦123 发布时间:2015-9-28 22:32
本人之前是做软加密破解的,后来良心发现,自觉做我们这行窃取他人劳动成果,和做贼没有区别,所以果断转行了,首选声明我绝不是高手,只是想将我做破解的时候的一些经验和大家分享,以便各位兄弟在做产品的时候重视加密,不要让别人轻而易举就窃取了您的劳动成果,! K3 A# l1 y$ o4 x- a$ z
       STM32系列从问世以来就以优异的性能和便宜的价格深得人心,但是不幸的是树大招风,问世不就久就被解密公司破了,从12年的12万的解密价格,到13年的6万,14年一万,再到现在的五千,相信不用两年就会像51一样沦为几百块的白菜价,所以软加密对未来的STM32的工程师来说异常重要,以下正式对各种方式的软加密和破解方法做一个总结,以便各位朋友在日后设计软加密的时候不要给破解的人留下漏洞5 k3 v4 X/ _2 C/ n3 f$ z/ r; [9 l3 w
1.最简单的软加密不用反汇编,直接在机器码中就可以先到FF1FE8F7,因为STM32机器码是小端格式,这个地址实际就是芯片ID地址,破解的人只需要在程序中找到一块空白的位置,然后将解密的那个芯片的ID复制到这里,再将程序中出现的那个1FFFF7E8改为存放母片的那个ID就破解了,这种方法和你程序采用的什么算法加密毫无关系,防破解处理方法是在程序加密的时候不要直接读芯片ID,应采用几个变量运算合成ID地址再间接的去读,注意不能用立即数合成,因为那样编译器还是会给你优化成一个立即数的。
: r/ L. F" `6 A6 ^5 I- L# t2.就算在程序中找不到明显的读ID指令也是可以破解的,方法就是仿真跟踪,仿真跟踪前需要反汇编,THUMB2的文档中每条指令生成的机器码有详细的说明,随便都可以找个做上位机的写个自动反汇编工具,之后再人工修改下就可以了,其实还有一种更简单的方法,就是将机器码定义成DCI XXXXH这样的格式,导入KEIL编译能通过,然后仿真,KEIL会自动的帮你反汇编,接下来就是单步执行,延时类函数跳过,这时候要密切注视R0到R15,不管你用什么方法得到的ID地址,最终一定会出现再这几个寄存器中,防破解的方法一个是检验ID号的时候不要在开机就检验,要在特定的硬件条件下才检验ID,然后如果不合法程序就自毁,这样就只能通过JTAG硬件仿真了。所以产品上市的时候切记将其它IO口转到JTAG口,这样就占用了JTAG,仿真就不行了
9 ]4 Y# t# }8 Y  S' ]/ B, F. w" K  r3.是不是这样就安全了?不是的,你可以禁用JTAG,人家同样可以修改指令开启JTAG,最好的方式是在程序关键的代码块做CRC检验,这样只要关键指令被修改过,就可以发现,剩下的自己看着办……$ J$ O0 x2 Q8 d/ s: w
4.其实没有破不了的软加密,只是一个时间和成本的问题,但是也不能让人家那么轻易的就破解了,除了上面的防破解的方法之外还可以在程序中特定条件下做多次检验,检验的时候不要用简单的判断真假跳转,应该用检验的结果做程序下一步执行的参数,这样别人破出来的产品原以为没问题了,但是用起来不稳定,或者性能差,或者老死机等。除了这些还可以外挂加密芯片,以增加破解的成本,更多防破解的方法欢迎加我QQ254915501讨论
收藏 16 评论43 发布时间:2015-9-28 22:32

举报

43个回答
meifan119 回答时间:2019-11-12 13:00:51
1,不要在程序中直接出现id地址,例如1FFFF7E8 1FFFF7EC 1FFFF7F0
6 T- r0 E0 h0 f1 C2, 利用校验和或是crc对程序区进行校验,防止改程序
sssdd 回答时间:2016-12-21 16:32:38
个人觉得,解就解吧。。不断推新就行了。
7 E* e/ }! N% h6 R. y/ o' a' W不能为了防贼,就把自己关起来。
7 D0 g' L' e2 I7 z* J/ u然而贼一样走了后门进来。
profile5 回答时间:2016-8-27 23:44:22
不太明白,是要获取二进制码?还是能够反编译出c语言来呢?从而推导出我的程序流程图呢?
yanhaijian 回答时间:2015-9-29 08:21:14
受教了。
JackieLaura 回答时间:2015-9-29 08:59:30
发了两个相同的帖子
stmcu.org.png
slotg 回答时间:2015-9-29 10:44:40
不错,感谢分享。
adlu 回答时间:2015-9-29 13:21:58
Good !学习了
STM32LEARN 回答时间:2015-9-29 14:06:41
多谢分享
你好我好大家好! 回答时间:2015-9-29 14:41:01
学习了   
moyanming2013 回答时间:2015-9-29 18:25:32
学习下。。。
tang9572 回答时间:2015-10-1 17:28:50
不是传说器件的唯一序列号可以被重写吗;如果是这样,很多加密就没有意义了;
STM32LEARN 回答时间:2015-10-14 12:06:43
学习了!!
Anchor_Yu 回答时间:2015-10-14 12:25:56
受教了
0 O+ F" q3 Y# C& i2 ^% W3 i3 N
wy2005 回答时间:2015-10-15 15:41:06
厉害,小白走过
jinzhifeng 回答时间:2015-10-25 14:19:33
涨见识了! stm32这么好破解吗?难道不如stc的单片机号称只要能破解奖金10W
pwdzsj 回答时间:2015-10-25 17:02:00
不错很好
k_xg1919 回答时间:2015-11-8 12:40:39
不错,感谢分享。
123下一页

所属标签

相似分享

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版