|
我想到一个STM32加密方法,1 v0 h" V" O; V3 w. f2 H/ j4 t 分3步: S1 t! a; Q* I- y" L 第1步,level1,5 d6 i$ s$ w% d/ `6 y6 ?( X 第2步,用UID+自定义加密, 第3步,对整个程序区个CRC校验,把CRC结果与某个数异或多次,再把异或后的结果存在xx地址, 然后程序在“多处”“多花样判断”xx地址的是否合法?) c: r6 J) j; z, e 3 \* G' o4 C8 u" Y3 ~) U+ A' h; r" t4 P 程序思路:前2种方法很容易被破解,加了第3种方法后,' B S p4 P/ B" y* U 破解者破解前两种方法后,必定要修改程序内容,. ^0 p$ B# I E; P 修改程序内容后,CRC值必定会改变,9 {( ^3 S- s) Q, p4 C4 v CRC值改变了,数值就不合法了,从而且达到程序防篡改的目的。/ R- ~$ [& p% m# q ; T$ o$ M q0 q) v) a 现在遇到一个问题,怎么在程序编译前知道CRC校验值? z( Q% H: W: c) J; ^' C) q8 j1 q 可否先编译第一次,PC读取HEX校验CRC值,# ?( t/ W/ |8 q2 Z* X 再把计算机后的值填内程序中重新编译, 但编译后CRC值又变了, 不知道PC的EXE是怎么实现防篡改的?% F7 A( t8 K m [' v |
微信公众号
手机版