现在加密锁的硬件复制是越来越多了,到电脑城去给朋友找配件,结果发现软件摊位上到处是复制狗
版的专业软件的列表.于是最近就研究了一下ROCKEY4玩.如何改基本密码之类的我不再说了,反正我
也不知道芯片的具体型号,之后无非就是单片机的写入什么的了,我这里就只介绍一下推导数据的
思路。
其实行业软件使用的智能加密锁并不神秘,简单的说其实就是里面有CPU和单片机的程序(里面带有几
段计算用的公式)可以把软件程序输入的数值计算转换(这个过程为数据加密)然后返回给程序验证(
有些是非对称加密方式的还原,也就是我们说的RSA,有些干脆就来个MD5的比较).就ROCKEY4来说,写
在加密锁里面的有三种数据,一种是找出读口令就可以读取的,象用户内存区的数据和用户ID号.一种
是模块数据共16个,这个无法直接读取,但可以通过指定算法的输入输出来直接计算出来,一是找个锁
,跟踪或反编译找出加密锁的算法的条数和每条算法开始的位置,在编辑器里面使用指定算法开头、
模块号、A、B、C、D的值在锁里面计算,根据返回数据就可以得出,二是先确定算法,然后用算法3(
开发手册上有程序,现成的)计算得出。还有一种数据就是指加密锁里的算法了,这个得先推出算法
的条数以及每条算法开头的位置,由于为了加密和解密数据提供给软件验证的需要,所以对于相同
的输入(指同一条算法开头,指定算法开头后,会从开头标记处执行到结尾标记结束。计算,同一
个模块号,同样的A、B、C、D的值),其输出是相同的,于是我们可以把相同输出的地方看作算法
的开头。然后根据种子码和模块号的变换输出数据,看一看算法是否用到模块字、种子码。然后指
定找出的算法开头、指定模块、指定几种ABCD的值(简单一些,最好有规律可循),把数据计算输
出。根据输出的数据,反推出实际的这条算法或同结果的算法(能得出同样结果的可能有几种算法
)这里暂时先简单的介绍到这里,说的太直白了就没味道了,毕竟这些东西要自己去嚼才有味道。千万不要回贴“帮我解个狗”之类的帖子,我不是专门搞PJ的,也不是学计算机专业的,玩这些纯属个人兴趣,说白了也就是个半斤八两的主。
至于算法的具体反推过程、技巧和经验,以及例子。大家有兴趣的话可以在这里讨论一下。但请不要具体写出这是XX软件的狗之类的话。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课