轉載來源不明,僅供大家了解其中的java相關的知識
JIRA可真是個好東西啊,自定義能力超強,雖然主要是用來做bug跟蹤治理的,但是很輕易的就可以改造成項目治理系統.只可惜是要收費的,為了使用它,sorry啊,只好下載了一個注冊機.不過下載的注冊機是JIRA3.0版的,現在的JIRA已經出到3.1版了.試了一下發現注冊機不行用.幾乎放棄了就,但是仔細分析了一下JIRA的包的結構,發現注冊機不行用很可能是因為3.1版的包結構改變了,破解需要的那個licence包的位置變掉了.于是抱著僥幸心理把下載的注冊機keygen.class反編譯了一下,結果發現注冊機沒有被混淆過,很輕易就看到了所有的代碼,于是就將注冊機import的包名改了一下,重新編譯,呃,可以用了,真是對不起,做了錯事了.
// Decompiled by DJ v3.7.7.81 Copyright 2004 Atanas Neshkov Date: 2005-2-26 22:13:16
// Home Page : http://members.fortunecity.com/neshkov/dj.Html - Check often for new version!
// Decompiler options: packimports(3)
// Source File Name: keygen.java
import com.atlassian.License.LicensePair;
import java.io.*;
import java.security.KeyFactory;
import java.security.Signature;
import java.security.spec.PKCS8EncodedKeySpec;
public class keygen
{
public keygen()
{
}
public static void main(String args[])
throws IOException
{
try
{
long l = 267L;
long l1 = System.currentTimeMillis();
long l2 = System.currentTimeMillis();
String s = "";
System.out.PRintln("Keygen for JIRA Enterprise Edition.");
System.out.print("created by mydaj[ROR].");
do
{
System.out.print("/nEnter your organization name: ");
for(int i = System.in.read(); i != 10 && i != 13; i = System.in.read())
s = s + (char)i;
} while(s == "");
try
{
PKCS8EncodedKeySpec pkcs8encodedkeyspec = new PKCS8EncodedKeySpec(EncodedPrvKey);
KeyFactory keyfactory = KeyFactory.getInstance("DSA", "SUN");
java.security.PrivateKey privatekey = keyfactory.generatePrivate(pkcs8encodedkeyspec);
String s1 = Long.toString(l, 10);
s1 = s1 + "^^";
s1 = s1 + Long.toString(l1, 10);
s1 = s1 + "^^";
s1 = s1 + Long.toString(l2, 10);
s1 = s1 + "^^";
s1 = s1 + s;
byte abyte0[] = s1.getBytes();
Signature signature = Signature.getInstance("SHA1withDSA");
signature.initSign(privatekey);
signature.update(abyte0);
byte abyte1[] = signature.sign();
LicensePair licensepair = null;
try
{
licensepair = new LicensePair(abyte0, abyte1);
}
catch(Exception exception1)
{
exception1.printStackTrace();
}
System.out.println(s1);
System.out.println("Your license key is: ");
System.out.println(licensepair.toString());
}
catch(Exception exception)
{
exception.printStackTrace();
}
}
catch(IOException ioexception) { }
}
新聞熱點
疑難解答