2019-12-19 18:10发布
redroof 发表于 2012-10-18 22:01 这一招好用!比在PC上计算要省事... 我目前的做法是在PC上根据唯一ID计算密码,然后ISP写入板子,缺点是 ...
mhw 发表于 2013-3-31 16:34 不要用if else这种简单的分支……应该用hotpower提出的那样把计算结果悄悄隐藏到一个全局变量,然后满世界 ...
最多设置5个标签!
你后,你能举个例子, 写几句代码看看吗?
没错。
例如你的某个校验计算应该等于0,你把这个结果当常数0在代码中用,某个校验计算应该等于1,你把它当常数1在代码中用,就行了。
这样几乎可以100%安全,除了别人改唯一ID以外。。
另外,校验的时候读芯片ID不要直接读,用个指针做运算再读
例如
#define MY_PTR (char*)(芯片ID的地址减0x1234)
这样,*(MY_PTR+0x1234)就得到唯一ID的位置,而且对静态反汇编免疫。
想对付这个,唯一的办法只能在芯片ID的地址下个读写断点来动态调试了。
但如果你的代码足够多,而且很多代码是只有满足某个条件才执行的,别人动态调试足够累个半死。除非他确定把你所有代码都执行到了一次,否则没办法。。。
至于改STM32的唯一ID,好像能做这个的人很少
if else 當然要用,放幾個明顯好抓的點,讓破的人以為簡單破了
真正後面還要放看不到的點,如何放就看個人的想法
一周热门 更多>