首页 > 代码库 > 精装友情通讯录算法逆向与注册机实现
精装友情通讯录算法逆向与注册机实现
精装友情通讯录
注册算法分析:
1. 注册码由三部分组成。
2. 注册码的第一部分是由订单号对0x6d取余
3. 注册码第二部分:
- 先将订单号与0XB25F1异或,将异或后的结果转换成十进制字符串后,在些字符串后面连接上两个字符。
而这两个字符分别由字符串的第0位,第1位和第2位,第3位计算而来。记为szTemp.算法如下
DWORD dwTemp2 = dwNum ^ 0xB25F1; TCHAR szTemp[20] = {0}; _sntprintf(szTemp, 20, "%d", dwTemp2); DWORD dwKey2Len = strlen(szTemp); TCHAR szTemp1[20] = {0}; TCHAR szTemp2[20] = {0}; _snprintf(szTemp1, 20, "%c", (szTemp[0] + szTemp[1]) % 5 + 0x34); _snprintf(szTemp2, 20, "%c", (szTemp[2] + szTemp[3]) % 5 + 0x33); strcat(szTemp, szTemp1); strcat(szTemp, szTemp2);
- 将上面的结果szTemp转换成十进制数字后,与0xDDFB7687进行异或,作为此步结果的一部分。然后根据异或后的结果算出4个不同的字符,然后将这四个字符插入到异或后的字符串中。结果记为szKey2.算法代码如下。
DWORD dwTemp3 = 0; dwTemp3 = atoi(szTemp); TCHAR szKey2[20] = {0}; _snprintf(szKey2, 20, "%u", dwTemp3 ^ 0xDDFB7687); TCHAR sz1[2] = {0}; TCHAR sz2[2] = {0}; TCHAR sz3[2] = {0}; TCHAR sz4[2] = {0}; _snprintf(sz1, 2, "%c", (szKey2[0] + szKey2[1]) % 5 + 0x66); _snprintf(sz2, 2, "%c", (szKey2[2] + szKey2[3]) % 5 + 0x75); _snprintf(sz3, 2, "%c", (szKey2[4] + szKey2[5]) % 5 + 0x7a); _snprintf(sz4, 2, "%c", (szKey2[6] + szKey2[7] + szKey2[8]) % 5 + 0x69); strinsert(szKey2, sz1[0], 7); strinsert(szKey2, sz4[0], 3); strinsert(szKey2, sz2[0], 5); strinsert(szKey2, sz3[0], 9);
4. //生成注册码,注册码= 注册码第一部分 + 注册码第二部分 + “!”
TCHAR szResult[30] = {0}; memcpy(szResult, szKey1, strlen(szKey1)); strcat(szResult, szKey2); strcat(szResult, _T("!"));
注册机代码与分析过程与udd文件下载地址:http://download.csdn.net/detail/xiaocaiju/7522099
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。