• 标 题:cooolftp 注册过程 (643字)
  • 作 者:1212
  • 时 间:2001-6-1 11:01:08
  • 链 接:http://bbs.pediy.com

cooolftp 使用了经过修改的 des 来实现注册判断。每个注册码为 8 个字符,正好是 des 需要的 key 长度。具体流程:

const char magic[100][16] = { ..... };  <-- 事先存好的结果

strupr( key );
des_init( key );
des_encrypt( key, "coolftp....", outbuf );  <--- 是一个16字符的串,可以直接看到

for (i=0; i<100; i++) {
  if( !memcmp( outbuf, magic[i] ) ) reg_ok();
}
reg_failed();

所以注册码必须满足:des后的结果是事先存好的100个结果之一。

它的所有注册码都是偶数数字和第偶数个字母(B,D,F...)组成的,这样,一共有5+13=18个字符。在 18^8 范围内穷举,就可以得到注册码。

顺便说一句,作者不懂密码学,他修改过的 des 强度大大低于原来的 des。