package test;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
*
* @author tom
*
*/
public class CrackMyEclipse6 {
/**
*
* 获取用户输入
*
*/
private static String inputString() {
BufferedReader bufferedreader = new BufferedReader(
new InputStreamReader(System.in));
String s = null;
try {
s = bufferedreader.readLine();
} catch (IOException ioexception) {
ioexception.printStackTrace();
}
return s;
}
static String License_Name = " License Name :";
static String License_Key = " License Key :";
static String MyEclipse_Version_6_0 = "6.0";
/**
* @param args
*/
public static void main(String[] args) {
String username = "abc";
System.out.println(" /////////////////////////////////////////");
System.out.println(" // //");
System.out.println(" // My Eclipse IDE v0.10 Keygen For 6.0 //");
System.out.println(" // Version: 0.10 //");
System.out.println(" // Author tom //");
System.out.println(" // Tools: Eclipse3.3 //");
System.out.println(" // //");
System.out.println(" /////////////////////////////////////////");
while( true ){
System.out.print(License_Name);
username = inputString();
if(username==null || username.trim().equals("")){
System.out.println("\"" + License_Name.substring(0,License_Name.length()-1).trim() + "\" "+ "is Empty. Please input again(input 'exit' Program is End.).");
}else{
if(username.trim().equalsIgnoreCase("exit")){
System.out.println(" Exit... ... ");
System.exit( 0 );
}else
break;
}
}
/**
* FIXME
* Ver0.5中将加入对6.0以下版本的支持
*/
License_Key += getLicenseKey( MyEclipse_Version_6_0,username );
System.out.println( License_Key );
}
/**
* 将字符转换成[0~9][a~z][A~Z]的ASCII码
* @param s
* @return
*/
private static String convert(String s)
{
if(s == null || s.length() == 0)
return s;
byte abyte0[] = s.getBytes();
char ac[] = new char[s.length()];
int i = 0;
for(int k = abyte0.length; i < k; i++){
int j = abyte0[i];
if(j >= 48 && j <= 57)
j = ((j - 48) + 5) % 10 + 48;
else
if(j >= 65 && j <= 90)
j = ((j - 65) + 13) % 26 + 65;
else
if(j >= 97 && j <= 122)
j = ((j - 97) + 13) % 26 + 97;
ac[i] = (char)j;
}
return String.valueOf(ac);
}
/**
* 计算字符串散列值
* @param s
* @return
*/
private static int CalculateHash(String s)
{
int i = 0;
char ac[] = s.toCharArray();
int j = 0;
for(int k = ac.length; j < k; j++)
i = 31 * i + ac[j];
return Math.abs(i);
}
private static String getLicenseKey( String MyeclipseVersion,String username )
{
String key = "";
String strCode = "";
if( MyeclipseVersion.equals( MyEclipse_Version_6_0 )){
strCode = username.substring(0,1);
strCode += "Y"; // "T"为试用版 "Y"为专业版
strCode += "E3MP"; // E3MP针对Eclipse3 E2MY 针对Eclipse2
strCode += "10" ; //>3
strCode += "12-456"; //填写任意数字,但第三个字符位应该为"-"
strCode += "121231 "; //有效期《20090903》 随意填<例如:990903> 格式<XX年XX月XX日>最后一定加一个空格
int j = CalculateHash((new StringBuilder(String.valueOf(strCode))).append("Decompiling this copyrighted software is a violation of both your license agreement and the Digital Millenium Copyright Act of 1998 (http://www.loc.gov/copyright/legislation/dmca.pdf). Under section 1204 of the DMCA, penalties range up to a $500,000 fine or up to five years imprisonment for a first offense. Think about it; pay for a license, avoid prosecution, and feel better about yourself.").append(username).toString());
strCode = strCode + Integer.toString( j );
key = convert( strCode );
}
return key;
}
}
//flowbyte.cn
//sLR8ZC-855575-66525457680638618