11-02-2010, 10:35 PM
ما هادا اخى كاش واحد هههه لم افم شىء :laugh:
الله اعلم ما يجب تحويلة هو هاتين الدالتين فقط
الباقى على ما اضن سهل و الله اعلم .
الله اعلم ما يجب تحويلة هو هاتين الدالتين فقط
PHP كود :
u8 hex2byte(u8 *hex) {
static const u8 hextable[256] =
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x00\x00\x00\x00\x00\x00"
"\x00\x0a\x0b\x0c\x0d\x0e\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x0a\x0b\x0c\x0d\x0e\x0f\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"
"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
return((hextable[hex[0]] << 4) | hextable[hex[1]]);
}
u8 *camfrog_pwd(u8 *pwd, u8 *clsid) {
AES_KEY aes_ctx;
int i,
pwdlen,
clsidlen;
static const u8 key[16] = "CamFrogMCU DLL01";
for(i = 0; pwd[i << 1]; i++) {
pwd[i] = hex2byte(pwd + (i << 1));
}
pwdlen = i;
if(clsid) {
for(i = 0; clsid[i << 1]; i++) {
clsid[i] = hex2byte(clsid + (i << 1));
}
clsidlen = i;
for(i = 0; i < pwdlen; i++) {
pwd[i] ^= clsid[i % clsidlen];
}
}
AES_set_decrypt_key(key, sizeof(key) << 3, &aes_ctx);
for(i = 0; i < pwdlen; i += 16) {
AES_decrypt(pwd + i, pwd + i, &aes_ctx);
}
pwd[i] = 0;
return(pwd);
}

