中级会员
 
- 积分
- 432
- 金钱
- 432
- 注册时间
- 2013-6-3
- 在线时间
- 49 小时
|

楼主 |
发表于 2015-12-18 07:22:09
|
显示全部楼层
原作者许剑伟老师真是高手中的高手,原来还没有破解成功。
许老师的一段帖子:
如果用户得到编译好的且未加密的hex程序,并且手上有stm32程序跟踪调试器的话,破解验证码就会变得比较容易。
具备以上条件,破解者找到读flash指令(整个程序,读flash指令只有几条),然后在该指令往下找跳转语句,会很快的找到验证是否通过的判断语句,直接把“是条件跳转”改为“否条件跳转”,这样就会跳过验证码。估计,一两天就破解完成。
如果,验证码计算的中间变量保留,也参与LCR主程序再次验证,当用户没有进行正确的验证码运算,中间变量自然不正确,那么就在LCR主程序中跳过几处误
差修正,这样破解者就会误以为破解成功,实际上没有突破第二层破解,要突破第二层破解,就得弄明白验证码算法,那么破解成本就会增加一些。
此外,也可以不公开基础校准的方法,这也就成了加密的一个方法。每个LCR,所需的基本校准值不一样,即每块stm32不单单ID号不一样,实际上,它的
ADC、端口参数等等,都有一些不同,这就造成了它们的64kB的HEX不同,这64kB
HEX的生成方法(即校准方法)不公开,破解者就不会知道如何破解。这部分也可以看做“工厂校准”,如果这项校准是机器辅助完成的,保密性就很好,如果是
人工完成的,保密性就会严重下降。说白了,我不说校准方法,别人就难以知道如何校准,程序copy了,表却准不了。
主要是要加密到什么程度。我本来不想严格加密,不过浩其心希望严格加密。如果严格加密,成本高。比如,机器校准的话,还得高设计自动校准机。
|
|