分析一个软件的注册算法大概是:
1。对输入的注册码进行查表变换后与机器码的SHA-1散列值异或得出一个32位值K(算法可逆)
2。以K为key对0xffffffffffffffff进行RC2加密,得到一个64位值,设为E.
3。以K为key对一常数C(八个字节)进行RC2解密算法得到一个64位值,设为F.
4。F与E按位异或,得到八个字节分别设为N1,N2.......N8
5。以K为key对常数C进行RC2加密算法得到一个64位值,设为G.
6。将常数D(四个字节)与G低四个字节按位异或,得到四个字节分别设为N9,N10,N11,N12
7。对N1,N2,......N12一共12个字节进行SHA-1得到160位散列值高M
8。将M与一给定的散列值比较,相等就注册成功。
K为一定值。只需要一个正确的注册码就可求出K,上述算法八个步骤对写注册机来说只需要第一个步骤就行了。(以上是看雪上一位高手的论述,好象这位高手现在隐身了) 向列位高手求助:怎样通过正确的注册码求出K值?如,该软件的机器码是:H5585748478 正确的注册码是:SW58527588 。 是否真能通过正确的注册码求出K值?如能,用什么方法?请行家高手不吝赐教。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)