打印

CRC16 HEX文件自动修改生成器,让盗版者头痛去吧。

[复制链接]
34707|151
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
plc_avr|  楼主 | 2011-6-30 15:41 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 plc_avr 于 2011-7-1 15:23 编辑

共享近段时间研究防止HEX被修改的成果,CRC16 HEX文件自动修改生成器,使产品上每个HEX文件的内容均不一样,在单片机内部运算CRC16,若结果不对,程序会工作不正常.......

CRC16 HEX文件自动修改生成器使用说明:

    用VB做了个自用的CRC16工具,该软件本意是为个人用于一个项目上,有的地方图省事直接写在源码上面了。感觉还是搞成通用的比较好,更方便有此需要的网友,现已初步完成,奉献给大家。可以随意传播,但请不要更改版权信息。

软件功能及工作流程说明:
1、输入指定的HEX或BIN文件
2、指定输出文件位置
3、根据需要可选择设置随机数地址,最多有6项可选,可在任意位置生成随机数(随机数有三种格式可选:填充00、FF、随机数),存储于指定的FLASH 地址。START:表示起始地址,END:表示结束地址
4、根据需要可选择设置CRC16地址,最多有6项可选,可在任意位置计算HEX或BIN文件的CRC16值,存储于指定的FLASH 地址。START:表示起始地址,END:表示结束地址
5、设置CRC16多项式权值以适用不同计算。
6、根据需要可选择设置在指定位置加入唯一ID识别号
7、根据需要可选择设置在指定位置加入编号,编号可以自动加一,减一或保持不变,人工输入。
8、指定CRC16的多项式,及权值,一般常用的为:0xA001  0x1021  0x8005  0x8048等
9、指定文件的输出格式可以为HEX或BIN文件
10、根据上面10项设置,点“执行”自动生成新的HEX或BIN文件至指定输出目录。
11、点“计算”,是计算CRC部分的结果。注意CRC结果指定,地址设置。
12、用烧写工具直接烧写新生成的文件。这样每个芯片的HEX内容均不完全一样,防止多片同时被破_解,用多个HEX作比对。
13、如果可选框全部不选,可以完成输入HEX 输出BIN或输入BIN输出HEX文件格式的转换

注意:点“计算”仅是计算输入文件指定地址的CRC16值,“执行”是计算输出指定地址的CRC16值。

用雁塔菜农的hotwc3做校验,检测结果的正确性,
Hotwc3地址: http://www.hotpower.org/HotAjax/HotPower_HotAjax.html
如下图:
选CRC16多项式权值A001,明文ID及本机编号的HEX值:”010203040506070809000A0B0C0100”    点“运算”,CRC结果为0x8A7C,表明结果计算正确。


生成文件目录索检:

在此特别感谢雁塔菜农和John Lee老师的指点,谢谢!
欢迎各位提出任何意见和建议.......

作者:烈火狂龙    2011年6月30日
CRC16 HEX文件自动修改生成器V1.1.rar (2.63 MB)
评分
参与人数 6威望 +20 收起 理由
阮天宇00 + 3 很给力!
lfjwfm + 1
weshiluwei6 + 1
teddeng + 1
hotpower + 10 ~~~

查看全部评分

相关帖子

沙发
Swallow_0322| | 2011-6-30 15:47 | 只看该作者
沙发!:victory:

使用特权

评论回复
板凳
木字四点水| | 2011-6-30 15:49 | 只看该作者

使用特权

评论回复
地板
一朵气质草| | 2011-6-30 15:50 | 只看该作者
:victory:

使用特权

评论回复
5
t.jm| | 2011-6-30 16:04 | 只看该作者
生成的HEX又没与MCU内的ID挂钩,防修改是可以做到,没看出来如何防盗。

使用特权

评论回复
6
hotpower| | 2011-6-30 16:07 | 只看该作者
好!学习为自己,共享为大家!

使用特权

评论回复
7
plc_avr|  楼主 | 2011-6-30 16:15 | 只看该作者
5楼: 生成的HEX又没与MCU内的ID挂钩,防修改是可以做到,没看出来如何防盗。
-------------------------------------
当然要挂钩,否则不是没多大效果的,呵呵。

使用特权

评论回复
8
hotpower| | 2011-6-30 16:22 | 只看该作者
本帖最后由 hotpower 于 2011-6-30 18:36 编辑

回5楼,楼主是将相同hex或bin文件进行代码的无缝隙crc检验。每个文件都不一样,其唯一id就是生成时采用了不同的crc多项式即crc权值。
此方法的**很难,因为它是环环相套,就像一团乱麻。
首先你必须正确地反汇编,并实施跟踪。而且必需硬件跟踪。
要跟踪全部的程序功能后,才能拆解。
这是一种常用的防止代码被人为修改的最基本的方法。

此方法和MCU配合,就可以实现无缝CRC,不解开是不可能运行的。
无缝隙导致了程序乱飞~~~

使用特权

评论回复
9
hotpower| | 2011-6-30 16:27 | 只看该作者
晕,手机内存泄漏了,先写了一半赶紧提交,晚上用电脑补全。

使用特权

评论回复
10
huangqi412| | 2011-6-30 16:27 | 只看该作者
果断的要顶。

使用特权

评论回复
11
lfjwfm| | 2011-6-30 16:27 | 只看该作者
关注下

使用特权

评论回复
12
程序匠人| | 2011-6-30 18:25 | 只看该作者
先给酷,回头体验

使用特权

评论回复
13
uniquehope| | 2011-6-30 18:37 | 只看该作者
:hug:多些像大叔这样的人~社会真的会和谐~~

使用特权

评论回复
14
plc_avr|  楼主 | 2011-6-30 19:04 | 只看该作者
哈哈,这么快有裤子穿了,谢谢匠人.....谢谢各位......

使用特权

评论回复
15
hotpower| | 2011-6-30 19:16 | 只看该作者
将自己的成果共享是种美德~~~

使用特权

评论回复
16
mentlely| | 2011-6-30 20:53 | 只看该作者
好东西,支持,有用

使用特权

评论回复
17
jack_shine| | 2011-6-30 21:10 | 只看该作者
本帖最后由 jack_shine 于 2011-6-30 21:31 编辑

晕,下下来被360判为病毒后清除了,看不了,360。。。:@

使用特权

评论回复
18
ahgao| | 2011-6-30 21:11 | 只看该作者
恕我少见多怪,这个是干什么用的?加密后的HEX/BIN能直接烧到MCU中运行吗?想不通呢?:dizzy:

使用特权

评论回复
19
hotpower| | 2011-6-30 21:31 | 只看该作者
恕我少见多怪,这个是干什么用的?加密后的HEX/BIN能直接烧到MCU中运行吗?想不通呢?:dizzy:
ahgao 发表于 2011-6-30 21:11


可以运行呀,只不过不能改写代码一句。

使用特权

评论回复
20
autopccopy| | 2011-6-30 22:40 | 只看该作者
顶LZ, 下载体验,准备配合**的唯一ID试验。。。 :)

https://bbs.21ic.com/icview-244448-1-1.html :)

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:烈火DIY Mini四轴飞行器群:234879071  http://fire-dragon.taobao.com/

42

主题

1633

帖子

23

粉丝