STM32防破解 转别人的

http://www.stmcu.org.cn/module/forum/thread-603421-1-1.html

  

人生如梦123

该用户从未签到

2

主题

2

帖子

0

蝴蝶豆

初级会员

最后登录

2019-4-19

电梯直达跳转到指定楼层

楼主

 发表于 2015-9-28 22:32:06 来自手机 | 只看该作者 |只看大图 回帖奖励

本人之前是做软加密破解的,后来良心发现,自觉做我们这行窃取他人劳动成果,和做贼没有区别,所以果断转行了,首选声明我绝不是高手,只是想将我做破解的时候的一些经验和大家分享,以便各位兄弟在做产品的时候重视加密,不要让别人轻而易举就窃取了您的劳动成果,
       STM32系列从问世以来就以优异的性能和便宜的价格深得人心,但是不幸的是树大招风,问世不就久就被解密公司破了,从12年的12万的解密价格,到13年的6万,14年一万,再到现在的五千,相信不用两年就会像51一样沦为几百块的白菜价,所以软加密对未来的STM32的工程师来说异常重要,以下正式对各种方式的软加密和破解方法做一个总结,以便各位朋友在日后设计软加密的时候不要给破解的人留下漏洞
1.最简单的软加密不用反汇编,直接在机器码中就可以先到FF1FE8F7,因为STM32机器码是小端格式,这个地址实际就是芯片ID地址,破解的人只需要在程序中找到一块空白的位置,然后将解密的那个芯片的ID复制到这里,再将程序中出现的那个1FFFF7E8改为存放母片的那个ID就破解了,这种方法和你程序采用的什么算法加密毫无关系,防破解处理方法是在程序加密的时候不要直接读芯片ID,应采用几个变量运算合成ID地址再间接的去读,注意不能用立即数合成,因为那样编译器还是会给你优化成一个立即数的。
2.就算在程序中找不到明显的读ID指令也是可以破解的,方法就是仿真跟踪,仿真跟踪前需要反汇编,THUMB2的文档中每条指令生成的机器码有详细的说明,随便都可以找个做上位机的写个自动反汇编工具,之后再人工修改下就可以了,其实还有一种更简单的方法,就是将机器码定义成DCI XXXXH这样的格式,导入KEIL编译能通过,然后仿真,KEIL会自动的帮你反汇编,接下来就是单步执行,延时类函数跳过,这时候要密切注视R0到R15,不管你用什么方法得到的ID地址,最终一定会出现再这几个寄存器中,防破解的方法一个是检验ID号的时候不要在开机就检验,要在特定的硬件条件下才检验ID,然后如果不合法程序就自毁,这样就只能通过JTAG硬件仿真了。所以产品上市的时候切记将其它IO口转到JTAG口,这样就占用了JTAG,仿真就不行了
3.是不是这样就安全了?不是的,你可以禁用JTAG,人家同样可以修改指令开启JTAG,最好的方式是在程序关键的代码块做CRC检验,这样只要关键指令被修改过,就可以发现,剩下的自己看着办……
4.其实没有破不了的软加密,只是一个时间和成本的问题,但是也不能让人家那么轻易的就破解了,除了上面的防破解的方法之外还可以在程序中特定条件下做多次检验,检验的时候不要用简单的判断真假跳转,应该用检验的结果做程序下一步执行的参数,这样别人破出来的产品原以为没问题了,但是用起来不稳定,或者性能差,或者老死机等。除了这些还可以外挂加密芯片,以增加破解的成本,更多防破解的方法欢迎加我QQ254915501讨论
  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: STM32是一款嵌入式微控制器,具有高性能、低功耗和丰富的外设接口等特点。FX1N是三菱PLC的一款型号,用于在工业控制系统中执行各种逻辑和控制任务。要在STM32上实现FX1N的功能,需要编写源码。 编写STM32三菱PLC源码FX1N的步骤如下: 1. 首先,我们需要了解FX1N的通信协议。三菱PLC通常使用Modbus RTU或ASCII协议与上位机通信。在STM32上,我们可以使用串口或者Modbus通信库来实现与FX1N的通信。 2. 在STM32的开发环境中,配置串口通信模块,设置波特率、数据位、停止位等参数,以与FX1N正常通信。 3. 编写串口通信函数,实现与FX1N的数据交换,包括向FX1N发送数据和接收FX1N返回的数据。 4. 根据FX1N的功能要求,编写相应的控制逻辑。例如,可以通过编写函数集合(Function Blocks)来对FX1N进行初始化、读取PLC状态、读写PLC的输入输出点等操作。 5. 根据需求,编写控制程序,实现FX1N的逻辑控制和运行。 6. 编写主程序,将各个函数调用进行组织并运行。 在编写STM32三菱PLC源码FX1N时,需要参考FX1N的技术手册和STM32的开发文档。还可以借助相关开发板、调试工具和仿真器等设备进行调试和测试。此外,合理利用现有的软件库和工具,可以提高开发效率,减少开发周期。 最后,编写好的源码可以通过编译、下载和调试,将功能部署到STM32上,实现与FX1N相似的控制和逻辑操作。 ### 回答2: STM32三菱PLC源码FX1N是基于STMicroelectronics(ST)的STM32系列微控制器开发的一款用于止三菱PLC FX1N系列程序源码的解决方案。三菱PLC FX1N系列是一种常用的工业自动化控制设备,但其源码很难进行修改和优化。而使用STM32微控制器可以实现对FX1N系列源码的重构,增强PLC系统的功能和可靠性。 STM32系列微控制器是一种高性能、低功耗的嵌入式系统解决方案。它具有强大的计算能力和丰富的外设接口,适合于工业自动化控制应用。通过使用STM32微控制器,我们可以重新编写FX1N系列的源码,通过增加自定义功能模块和外设接口,提高PLC系统的灵活性和可扩展性。 STM32三菱PLC源码FX1N可以通过对FX1N系列PLC的通信协议进行解析,实现与外部设备的数据交换。通过使用STM32的串口、CAN总线、以太网接口等功能,可以实现PLC与其他设备之间的数据传输和通信。同时,STM32微控制器支持实时操作系统(RTOS)的运行,允许我们创建多任务和实时任务,提高PLC系统的响应速度和并发能力。 此外,STM32三菱PLC源码FX1N还可以通过使用STM32的外设接口,如GPIO、定时器、模拟输入输出等功能,实现对PLC的各类输入输出信号的处理和控制。通过编写相关的驱动程序和算法,可以使PLC系统更加灵活和可靠。 总之,STM32三菱PLC源码FX1N是一种基于STM32微控制器的解决方案,可以对三菱PLC FX1N系列的源码进行重新编写和优化,提高PLC系统的功能和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值