想到一个很难**的单片机加密方法(转)

[复制链接]
14510|35
 楼主| fuqing5542 发表于 2012-8-13 15:58 | 显示全部楼层
........顶
lvjing880907 发表于 2012-8-13 15:58 | 显示全部楼层
不错!顶个
disassembly 发表于 2013-6-12 18:13 | 显示全部楼层
单片机解密后得到的文件是机器码,非常难读以及修改,可以将机器码反汇编成汇编语言,目前还不能直接转成C语言,
我们Q2403664232可以人工转换成C语言
hkcj 发表于 2013-6-12 18:44 | 显示全部楼层
谢谢  楼主   这个方法没有试过   有时间想试一试   顶一个
tianli1980 发表于 2013-6-12 18:46 | 显示全部楼层
是啊,共享软件的开发是一件非常困难的事。
fzkjs 发表于 2013-6-12 23:17 | 显示全部楼层
有个办法,应该可以让人即使读出全部代码,也没有用。
STM的CPU都有一个唯一ID, 可以自己设计一个算法,或者直接就是用3DES加密算法,然后用PC计算出一个唯一密钥。AA =  3DES(KEY, ID). 把这个AA结果下载到到产品内部的FLASH中, 产品启动或运行的过程中,读出这个AA,使用配套的解密算法,恢复出对应ID,如果和本身的CPU-ID一致,则允许运行,否则停止运行。
Simon21ic 发表于 2013-6-13 03:31 | 显示全部楼层
fzkjs 发表于 2013-6-12 23:17
有个办法,应该可以让人即使读出全部代码,也没有用。
STM的CPU都有一个唯一ID, 可以自己设计一个算法,或 ...

别傻了,暴力**,10分钟内搞定,呵呵
另外,反编译成C没有意义,只能能够搞定需要搞定的就可以了
qgqlxq520 发表于 2013-6-26 17:44 | 显示全部楼层
可以参考用MAXIM的安全加密MCU,SRAM的程序是靠电池来保护的,一断电程序自毁。内部还带有更丰富硬件加密程序。多种程序加密,没办法破。
cjhk 发表于 2013-6-26 20:22 | 显示全部楼层
呵呵  顶起来   谢谢楼主的共享    不错哦  
dyf1003 发表于 2013-6-27 09:36 | 显示全部楼层
矛与盾的较量
明月小厨 发表于 2013-7-1 15:23 | 显示全部楼层
本帖最后由 明月小厨 于 2013-7-1 15:28 编辑

这个方法其实是杀敌800自伤1000;行不通.
一旦系统掉电或系统出错RAM数据被破坏,是不是很要命;你天天帮你搞维修?是什么让你如此费劲;
正确的应对方法,要不改行做点别的呢?
明月小厨 发表于 2013-7-1 15:35 | 显示全部楼层
可以设些机关,让盗版赔钱;
liudzcccc 发表于 2013-7-2 20:42 | 显示全部楼层
加油,这是一个双方不断超越,不断你追我赶的时代
wforest68 发表于 2013-7-3 09:43 | 显示全部楼层
技术解决不了所有的问题,真正的知识产权的保护是法律,但是中国政府一直就是鼓励盗版的,所以大家就互相抄袭吧
meijc119 发表于 2021-12-20 09:30 | 显示全部楼层
三、利用id做软件加密
1,如果板子上有外部存储器,可以先编写一个程序,利用算法把id计算得到一些值存入外部存储器,然后再烧写真正的程序,真正的程序去校验外部存储器的数据是否合法即可

2,利用板子上按键组合,或是上电按住某些键,程序在这个时候利用算法把id计算得到一些值存入程序区(stm8为EE区),程序运行时去验证程序区数据是否正确

3,轩微编程器有软件加密的功能,编程器会读芯片id,根据算法直接改写缓冲区,达到软件加密的作用

4,读出的id通过一定算法,例如异或加上一个数,得到的数据存入flash(只运行一次,运行后标志位也存入flash),下次读到这个标志位,就不运行这个程序。//Q9272078

四、做软件加密时注意
1,不要在程序中直接出现id地址,例如STM32:1FFFF7E8 1FFFF7EC 1FFFF7F0   STM8: 0x4865~0x4870
2, 利用校验和或是crc对程序区进行校验,防止改程序
``` 发表于 2021-12-21 11:27 | 显示全部楼层
目前有一些芯片带有硬件的解密模块,可以直接解密Flash上的数据。这样的芯片安全一些。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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