引子

由于最近在研究 STM32 的 IAP 升级,因此就翻到这里学习
根据 IAP+YMODEM+CRC16+AES256+PC端软件+hex合并进行加密下载

暗锁思路

程序加密的最高手法 是加明锁+暗锁 首先 有明锁 让你copy了hex 要花钱找人破解加密方法 也就是上文说的注册码,
如果注册码被绕过,程序不要功能异常,要功能正常 ,给出破解成功的假象
其次,外加一段验证程序,如果注册码被破解或者失效,那么 运行一段时间后 自杀! 这个时间设置长一点 例如机器激活3个月或者更久。
再来一段程序,验证上面的验证程序,自杀日期定位机器激活后6个月

以上3道防线 1明2暗

然后通过特殊参数 按键 设置隐藏的版权声明, 版权声明不要用文字,用图片的形式存储。最好和你的固定数组,字库等混在一起。
例如定义一个数组,前面 后面是字库或者重要信息 中间是图的数据 之类的。

这个是用来起诉的直接证据 呵呵。

最后理想的结果是 抄袭者花钱抄你的硬件 软件,发现不能用,找人破解验证。后测试正常,投入资金生产,销售。
销售一段时间,他的机器集中死亡,你再去采集证据 把他告上法庭 再赔一笔。

——————————————————写在我的机器被抄后 抄袭者被我整得很惨之后——————-

–小偷不怕复杂的锁 就怕锁找不到……………………

楼主| 发表于 2015-12-19 09:42:53 | 只看该作者

回复【15楼】FreeRTOS:
我现在是通过一张SD卡来激活的 SD里面存了一个文件 那个文件的特殊字节 是用SD卡的id号+剩余字节数+文件数目+某镞的32个字节+N9条公式 组成一个128字节的加密码。
这样做 sd卡的文件复制到另一张 也不可以用。 sd卡就一张 我自己保存。

机器判断sd卡的特殊字节 是否符合运算规则 ,然后在用某个特殊组合键 呼出激活页面后插入sd卡 认证。

我的机器无需远程通信 所以没有通信口 呵

关键是认证不成功 也不要影响功能 也不要做出提示 。开启计数就是,计数要设置足够大起码能用3个月以上 或者半年的。计数够了直接黑屏!!(外面收钱破解的是不会花时间去解这些暗锁的)

然后再机器的某个菜单 用一个字 显示是否已经成功激活 例如某个字 激活是 “住” 没激活是 “往” 这个只有你自己知道就行。

楼主| 发表于 2015-12-18 09:34:46 | 只看该作者

我就是在stm32上面实现的 实际基本全部单片机都能实现。主要是灵活,明暗结合。

1.用stm32 的id + n条公式 生成一个 128位的注册码 《《=明锁

2.新机需要特殊手法激活 否则程序设置激活失败暗记 但不影响功能,但会计数 计数一段时间后 自杀 《《==暗锁1

3检测这个注册码1是否生成并记录在机器里面 如果没有 也不要影响功能 还是计数 计数到达n个后 自杀

4设置隐藏版权声明以及呼出方法 。《《==这个简单 呵

重点是 明锁不要多 1个就可以 直接不能开机的明锁 暗锁要多 n个 特点是不马上影响功能 但会计数 例如开关机5000次后 自杀

发表于 2015-12-18 22:05:09 | 只看该作者
楼主,有个问题想请教下你,你所说的第二点:

2.新机需要特殊手法激活 否则程序设置激活失败暗记 但不影响功能,但会计数 计数一段时间后 自杀 《《==暗锁1

不知道你具体是怎么来激活,例如你用串口线接到PC,然后在PC利用自己的激活软件激活,但问题是如果你的激活软件被别人得到了,那别人不也一样可以拿着你的激活工具去激活你的单片机么?其实我们公司也有考虑过,因为我们的机子焊接了CDMA模块,所以可以利用远程服务器来判断CDMA模块的IMEI码是否记录在后台服务器,进而决定是否授权激活,不知道你的方法是否也跟我们的类似

楼主| 发表于 2015-12-18 12:56:17 | 只看该作者

抄袭

1.找人抄PCB 在淘宝 双面板几百 4层几千
2.找人读程序 热门cpu便宜 冷门贵 例如stm32 5000 可以把程序 hex 读出来。

如果没有加密 找人1000 把hex的logo去掉 pcb做出来烧进去即可。

和你一模一样的电路一模一样的程序 一模一样的界面 呵

楼主| 发表于 2015-12-18 13:26:51 | 只看该作者

低级的 换个stm32就可以解决 确实,我的不行 绑定了板上的多个芯片,呵 。需要全部换掉 再用特殊手法初始化。

但是 就如抄袭我的 同一时间 有200多台机器 挂了 ,应付得来么?
首先他搞不清楚状况,为什么不能开机,其次就算换stm32 可以解决 也要有那么多人短时间内去换,机器在客户那里不是在他家,再次,换完一定时间后 还会再死!

自杀只需要把stm32的flash 抹掉一部分或者 重要参数设置乱即可 。烧他板干啥?

还有 做程序的 不要给别人入口,就如我 发作自杀后 就是个开机黑屏,不要显示啥文字 提示之类的东西。

mack13013 发表于 2016-5-31 21:01:48 | 只看该作者

楼主的办法没用的。

我们这里抄板,都是抄原理,抄程序逻辑,
然后制板,写程序。

原理还是你的那套原理,程序逻辑还是那套逻辑,

板子是新板,程序是重新编写的程序。

简单说就是仿制,山寨你。

比直接抄板,拷贝hex数据成本低。
而且,如果人家要逆向你的hex数据,比较通透的做法就是判断行为,像是SD卡读取之后判断某个数值,人家是要扫一眼的。
不太负责的逆向,大概就只是绕过注册码了。毕竟hex复制出来了,逆向过程很多情况下就是拖进IDA,然后F5一下之类的简单操作了。

当然水平有高低,有的逻辑没吃透,仿制不是太成功,但是人家软件会更新的,慢慢就补足了。

简单说,就是有高手在取代你,你会玩的,人家也会玩,玩的还不错。。。


抄功能的,都算是抄袭的较高境界了,复杂的系统抄一遍功能有那么容易吗,时间和成本都海了去了,而且未必能抄全了

简单粗暴的还是原样复制,但是遇上楼主这种下暗桩的就悲催了


我知道一个,原来的系统是DOS工控机+各种控制采集,

抄的人,不但把DOS逆向了,还新写了一个DOS,然后干脆不用DOS了,丢进去一个Linux版本。

然后出了新的PLC版本,不怎么成功,然后又实现了ARM版本。原先要几块板子插接起来,现在巴掌大的一个电路板就实现了。

不但抄了,还强化了,原先通讯只有232,现在232+Wifi(并不是232转Wifi模块,是TCP/IP的Wifi)

上位机比较难抄(delphi写的,算法很难实现),人家也给他抄了,C++写的,先实现主要功能,然后一次次版本升级,最后功能完善,现在的版本比原先的版本功能多了不少,算法性能也强化了很多。


首先 不管你愿意承认与否 离散的信息采集和控制系统都算是相对简单的 我不知道总共有多少点数 点数越少越容易 像这种山寨的 最终还是要破解控制逻辑 后来者比先行者理解的更细水平更高这很正常,但是你说他花在这上面的时间成本换算后会比简单暴力的抄袭成本低,我觉得可能性不太大


那也就是个大概的说法。简单暴力的抄袭,成本当然最低。

其实我说的那个,面临新的情况:客户提出了新的要求,而原厂家拒绝提供。如果单纯的抄袭,
快是快,无法满足客户的新的要求(功能上的)。 只能仿制了。

如果抄袭,再扩展,原DOS逆向不好找,PE修改更难,而且,不断增多的客户伴随着不断增多的新的要求。

原厂家提供的话,我们直接出钱买是最简单容易的,但是原厂家傲气的很,不提供,也不怎么爱鸟客户,**商就山寨他了。

原厂家是国外的公司。


相关链接(侵删)

  1. 辛苦码的程序,如何实现自我保护–我的经验分享

=================我是分割线=================

欢迎到公众号来唠嗑: