|
|
|
|
|
[转帖]dirtyJOE 1.0 (c147) by ReWolf
貌似这个比较强大 试下 |
|
[下载]正则表达式工具MTracer 2.1
这东西 要钱的吧?不是破解的 |
|
[转帖]diablo2oo2's Universal Patcher [dUP] v2.20
5楼的这个和上面的有什么区别? |
|
[转帖]SoftTree SQL Assistant v5.1.7.0 (x86/x64) [full]
略去部分请根据我发的算法分析自行修改 |
|
[转帖]SoftTree SQL Assistant v5.1.7.0 (x86/x64) [full]
public class SqlAssistantKeyGen { private static String licType; private static String strMOrL; private static java.util.Random random = new java.util.Random(); private static boolean log = true; public static int bigNoFlag; static { System.out.println("Sql Assistant 5 Key"); licType = ""; // Enterprise Edition // licType = ""; // Professional Editio // licType = "";//Site Editio // licType = "";//Standard Editio } public static void main(String[] args) throws Exception { for (int i = 0; i < 100; i++) { // System.out.println(getLicense()); CheckLicense.checkLicense(getLicense()); } } public static String getLicense() { // 注册码格式 key0 key1 key2 key3 key4 以 - 分隔 // xx-xx-xx-xx-xx String key0 = ""; String key1 = ""; String key2 = ""; String key3; String key4 = ""; // step 1 生成000000-999999随机字符 xx(key1) // step 2 将上一步6位数每位数值相加再+22,作最后一组(key4)前两位字符 // step 3 先获得注册类型xxxx 后的1位 值 是 x 或x,计算出一个值 // 如果是 x,要满足 // 1+值(2153483746)- 第2组最后两字符数值 99 +100000 * 第5组前两字符数值 // 或 // 1+值(3227225570)- 第2组最后两字符数值 99 +100000 * 第5组前两字符数值 // 如果是 xx ,要满足 // 16+值(2153483731)- 第2组最后两字符数值 99 +100000 * 第5组前两字符数值 // 或 // 16+值(3227225555)- 第2组最后两字符数值 99 +100000 * 第5组前两字符数值 // 根据step3 值,计算key4最后两字符 // 如果=2153483746,各位数值相加再+22 =65 // step 4 生成key2,满足 // 字符先反向,然后取每位在字符串xxxxxxxxxx中的索引值,再乘上以1为初值,32倍递增的基数 // 加起来=step3中的值 // step 5 key3的生成 // 第一位,注册类型, xxxxx // 第二位,随机是 x 或 xxx // 后两位随机生成 // step 6 key0 // 由key1,key2拼接与key3,key4拼接的字符串,每位ASCII数值相加,得到各4位一组,一共8位的16进制字符 int rdGet = Math.abs(random.nextInt()) % 2; if (rdGet > 0) { strMOrL = "xxx"; } else { strMOrL = "xxxx"; } rdGet = Math.abs(random.nextInt()) % 2; if (rdGet > 0) { bigNoFlag = 1; } else { bigNoFlag = 0; } key3 = licType + strMOrL + getRandomString2(); // 生成000000-999999随机字符 int ikey1 = Math.abs(random.nextInt()) % 999999 + 0; key1 = frontCompWithZore(ikey1, 6, "d"); // key4前两字符 int firstTwoLetterOfKey4 = getStrSum(key1, 0, 6) + 22; // 此值为key3进行计算后乘出的值 long value = getValue(key1, firstTwoLetterOfKey4); int lastTwoLetterOfKey4 = getLastTwoLetterOfKey4(value); key4 = String.valueOf(firstTwoLetterOfKey4 + "" + lastTwoLetterOfKey4); key2 = getKey2(value); key0 = getKey0(key1 + key2, key3 + key4); return key0 + "-" + key1 + "-" + key2 + "-" + key3 + "-" + key4; } public static int getStrSum(String str, int start, int len) { int result = 0; for (int i = start; i < len; i++) { result += Integer.parseInt(String.valueOf(str.charAt(i))); } return result; } public static int getFirstTwoLetterOfKey4() { int rdGet = Math.abs(random.nextInt()) % 54 + 22; return rdGet; } public static long getValue(String key1, int firstTwoLetterOfKey4) { String lastTwoLetterOfKey1 = String.valueOf(key1); lastTwoLetterOfKey1 = lastTwoLetterOfKey1.substring(lastTwoLetterOfKey1 .length() - 2); long i3 = Integer.parseInt(lastTwoLetterOfKey1); if (strMOrL == "M") { if (bigNoFlag == 0) { i3 += 2147483647l + 100000 * firstTwoLetterOfKey4; } else { i3 += 3221225471l + 100000 * firstTwoLetterOfKey4; } } else { if (bigNoFlag == 0) { i3 += 3221225456l + 100000 * firstTwoLetterOfKey4; } else { i3 += 2147483632l + 100000 * firstTwoLetterOfKey4; } } return i3; } public static int getLastTwoLetterOfKey4(long value) { String s = String.valueOf(value); int result = 0; for (int i = 0; i < s.length(); i++) { result += Integer.parseInt(String.valueOf(s.charAt(i))); } result += 22; return result; } public static String getKey2(long num) { String result = ""; String str = xxxxxx int base = 1073741824; while (base > 0) { if (num / base > 0) { long i = num / base; // result += i; num = num - i * base; char ch = str.charAt((int) i - 1); result += Character.toUpperCase(ch); base /= 32; } else { base /= 32; // 取个不在字符串中的字符,最简单的是取0 result += getRandomString1(); // result += "0"; continue; } } return result; } public static String getKey0(String str1, String str2) { int result = 0; for (int i = 0; i < str1.length(); i++) { result += Integer.valueOf(str1.charAt(i)); } str1 = frontCompWithZore(result, 4, "x"); result = 0; for (int i = 0; i < str2.length(); i++) { result += Integer.valueOf(str2.charAt(i)); } str2 = frontCompWithZore(result, 4, "x"); return str1 + str2; } public static String frontCompWithZore(int sourceDate, int formatLength, String format) { /* * 0 指前面补充零 formatLength 字符总长度为 formatLength x 代表表现形式。 */ String newString = String.format("%0" + formatLength + format, sourceDate); return newString.toUpperCase(); } public static String getRandomString1() { StringBuffer sb = new StringBuffer(); int rdGet; char ch; rdGet = Math.abs(random.nextInt()) % 5 + 87; if (rdGet > 90) { rdGet = 48; } ch = (char) rdGet; sb.append(ch); return sb.toString(); } public static String getRandomString2() { StringBuffer sb = new StringBuffer(); int rdGet; char ch; for (int i = 0; i < 2; i++) { rdGet = Math.abs(random.nextInt()) % 28 + 65; if (rdGet > 90) { rdGet = Math.abs(random.nextInt()) % 10 + 48; } ch = (char) rdGet; sb.append(ch); } return sb.toString(); } } |
|
|
|
|
|
|
|
[转帖]SoftTree SQL Assistant v5.1.7.0 (x86/x64) [full]
http://bbs.pediy.com/showthread.php?t=112231 |
|
|
|
|
|
|
|
[原创]Vprotect1.7.6
DEMO ? |
|
|
|
[转帖]PB反编译专家 Shudepb 1.8629
这东西要联网 |
|
[转帖]Jul 29, 2010 WinHex 15.7
已经找到了! |
|
[转帖]Jul 29, 2010 WinHex 15.7
求简体中文 语言文件 |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值