Cisco IOU的破解版本虽然都放出来了,但是还是有人放出了密钥计算工具。不喜欢用破解的可以试试,验证过了,可用。
密钥计算工具源码(来自网络,请在Linux下编译):
#include <stdio.h>
#include <unistd.h>
#include <stdint.h>
#include <string.h>
#include <openssl/md5.h>
int main () {
uint32_t hostid,i;
uint8_t hid[4];
uint8_t a1[] = { 0x4B,0×58,0×21,0×81,0×56,0x7B,0x0D,0xF3,0×21,0×43,0x9B,0x7E,0xAC,0x1D,0xE6,0x8A };
uint8_t a2[] = {
0×80,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,
0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00,
0×00,0×00,0×00,0×00,0×00,0×00,0×00,0×00
};
char s[255];
MD5_CTX ctx;
gethostname(s,0×100);
hostid = gethostid();
for (i=0; i<strlen(s); i++) {
hostid += *(s + i);
}
hid[0] = (hostid >> 24) & 0xFF;
hid[1] = (hostid >> 16) & 0xFF;
hid[2] = (hostid >> 8 ) & 0xFF;
hid[3] = (hostid) & 0xFF;
MD5_Init(&ctx);
MD5_Update(&ctx,a1,16);
MD5_Update(&ctx,a2,40);
MD5_Update(&ctx,&hid,4);
MD5_Update(&ctx,a1,16);
MD5_Final(s,&ctx);
for (i=0; i<8; i++) {
printf(“%X”,(s[i]&0xFF));
}
printf(“n”);
return 0;
}
编译完成的版本下载:32/64位
使用方法:
拷贝编译好的相应版本(32位或64位)至linux下(FTP、HTTP等),然后执行chmod +x keygen-iou,然后./keygen-iou运行,计算出来的值应该是16位,复制至iourc文件内,格式如下:
[license]
hostname = xxxxxxxxxxxxxxxx;
hostname为Linux主机名,xxxxxxxxxxxxxxxx为计算出来的16位值。