SHARE
TWEET

Untitled

a guest Oct 2nd, 2017 91 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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 = "rightwolf"; // Change username to your RuneScape username
  14.  private String password = "lovelevi"; // Change password to your RuneScape password
  15.  private String pin = "3100"; // 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("ha s 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(),"P INCracker.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("ha s 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.  }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top