Ahad, Mac 02, 2014

Java : Keygen - Intellij IDEA 13

Main.java
=========
import java.awt.EventQueue;

public class Main extends JFrame {

   /**
    * 
    */
   private static final long serialVersionUID = 1L;
   private JPanel contentPane;
   private JTextField textField;
   private JTextField textField_1;

   /**
    * Launch the application.
    */
   public static void main(String[] args) {
      EventQueue.invokeLater(new Runnable() {
         public void run() {
            try {
               Main frame = new Main();
               frame.setVisible(true);
            } catch (Exception e) {
               e.printStackTrace();
            }
         }
      });
   }

   /**
    * Create the frame.
    */
   public Main() {
      setResizable(false);
      setTitle("SEN CRACK (Intellij IDEA 13.0.1)");
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setBounds(100, 100, 450, 300);
      contentPane = new JPanel();
      contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
      setContentPane(contentPane);
      contentPane.setLayout(null);

      JButton btnKeygenIt = new JButton("Keygen It");
      btnKeygenIt.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent arg0) {
            if (textField.getText().contentEquals("")) {
               textField_1.setText("Empty Name!");
            } else {
               String[] name = { textField.getText() };
               textField_1.setText(Keygen.keyit(name));
            }
         }
      });
      btnKeygenIt.setFont(new Font("Tahoma", Font.PLAIN, 11));
      btnKeygenIt.setBounds(10, 227, 89, 23);
      contentPane.add(btnKeygenIt);

      JButton btnExit = new JButton("Exit");
      btnExit.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent arg0) {
            System.exit(0);
         }
      });
      btnExit.setFont(new Font("Tahoma", Font.PLAIN, 11));
      btnExit.setBounds(109, 227, 89, 23);
      contentPane.add(btnExit);

      textField = new JTextField();
      textField.setFont(new Font("Tahoma", Font.PLAIN, 11));
      textField.setBounds(10, 165, 414, 20);
      contentPane.add(textField);
      textField.setColumns(10);

      textField_1 = new JTextField();
      textField_1.setEditable(false);
      textField_1.setFont(new Font("Tahoma", Font.PLAIN, 11));
      textField_1.setBounds(10, 196, 414, 20);
      contentPane.add(textField_1);
      textField_1.setColumns(10);

      JLabel lblEnterYourName = new JLabel("Enter your name below :");
      lblEnterYourName.setHorizontalAlignment(SwingConstants.CENTER);
      lblEnterYourName.setFont(new Font("Tahoma", Font.PLAIN, 11));
      lblEnterYourName.setBounds(10, 140, 414, 14);
      contentPane.add(lblEnterYourName);

      JLabel lblSenCrackintellij = new JLabel(
            "SEN CRACK (Intellij IDEA 13.0.1)");
      lblSenCrackintellij.setHorizontalAlignment(SwingConstants.CENTER);
      lblSenCrackintellij.setFont(new Font("Tahoma", Font.BOLD, 23));
      lblSenCrackintellij.setBounds(10, 11, 414, 102);
      contentPane.add(lblSenCrackintellij);
   }
}

Keygen.java
===========
import java.math.BigInteger;
import java.util.Date;
import java.util.Random;
import java.util.zip.CRC32;

public class Keygen {
   /**
    * @param s
    * @param i
    * @param bytes
    * @return
    */
   public static short getCRC(String s, int i, byte bytes[]) {
      CRC32 crc32 = new CRC32();
      if (s != null) {
         for (int j = 0; j < s.length(); j++) {
            char c = s.charAt(j);
            crc32.update(c);
         }
      }
      crc32.update(i);
      crc32.update(i >>;
      crc32.update(i >> 16);
      crc32.update(i >> 24);
      for (int k = 0; k < bytes.length - 2; k++) {
         byte byte0 = bytes[k];
         crc32.update(byte0);
      }
      return (short) (int) crc32.getValue();
   }

   /**
    * @param biginteger
    * @return String
    */
   public static String encodeGroups(BigInteger biginteger) {
      BigInteger beginner1 = BigInteger.valueOf(0x39aa400L);
      StringBuilder sb = new StringBuilder();
      for (int i = 0; biginteger.compareTo(BigInteger.ZERO) != 0; i++) {
         int j = biginteger.mod(beginner1).intValue();
         String s1 = encodeGroup(j);
         if (i > 0) {
            sb.append("-");
         }
         sb.append(s1);
         biginteger = biginteger.divide(beginner1);
      }
      return sb.toString();
   }

   /**
    * @param i
    * @return
    */
   public static String encodeGroup(int i) {
      StringBuilder sb = new StringBuilder();
      for (int j = 0; j < 5; j++) {
         int k = i % 36;
         char c;
         if (k < 10) {
            c = (char) (48 + k);
         } else {
            c = (char) ((65 + k) - 10);
         }
         sb.append(c);
         i /= 36;
      }
      return sb.toString();
   }

   /**
    * @param name
    * @param days
    * @param id
    * @param prtype
    * @return
    */
   public static String MakeKey(String name, int days, int id) {
      id %= 100000;
      byte bkey[] = new byte[12];
      bkey[0] = (byte) 1; // Product type: IntelliJ IDEA is 1
      bkey[1] = 13; // version
      Date d = new Date();
      long ld = (d.getTime() >> 16);
      bkey[2] = (byte) (ld & 255);
      bkey[3] = (byte) ((ld >> & 255);
      bkey[4] = (byte) ((ld >> 16) & 255);
      bkey[5] = (byte) ((ld >> 24) & 255);
      days &= 0xffff;
      bkey[6] = (byte) (days & 255);
      bkey[7] = (byte) ((days >> & 255);
      bkey[8] = 105;
      bkey[9] = -59;
      bkey[10] = 0;
      bkey[11] = 0;
      int w = getCRC(name, id % 100000, bkey);
      bkey[10] = (byte) (w & 255);
      bkey[11] = (byte) ((w >> & 255);
      BigInteger pow = new BigInteger(
            "89126272330128007543578052027888001981", 10);
      BigInteger mod = new BigInteger("86f71688cdd2612ca117d1f54bdae029", 16);
      BigInteger k0 = new BigInteger(bkey);
      BigInteger k1 = k0.modPow(pow, mod);
      String s0 = Integer.toString(id);
      String sz = "0";
      while (s0.length() != 5) {
         s0 = sz.concat(s0);
      }
      s0 = s0.concat("-");
      String s1 = encodeGroups(k1);
      s0 = s0.concat(s1);
      return s0;
   }

   public static String keyit(String[] args) {
      if (args.length == 0) {
         System.err.printf("*** Usage: %s name%n",
               Keygen.class.getCanonicalName());
         System.exit(1);
      }
      Random r = new Random();
      return MakeKey(args[0], 0, r.nextInt(100000));
   }
}

0 ulasan:

Catat Ulasan

Pesanan daripada penulis :
Selamat datang ke 0x2013LΣΣT. Sekiranya anda mempunyai persoalan, pandangan, permintaan, bantuan, cadangan dan sebagainya. Tinggalkan pesanan anda ke dalam kotak komen. Terima kasih !
- http://0x2013.blogspot.com -