Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.logging.Level;
- import org.rsbot.script.Script;
- import org.rsbot.script.ScriptManifest;
- import org.rsbot.script.wrappers.RSComponent;
- import org.rsbot.event.listeners.PaintListener;
- import java.awt.*;
- import java.io.*;
- import org.rsbot.Configuration;
- @ScriptManifest(authors = "Pork", name = "PINCracker", description = "Cracks bank PIN's.", version = 1.0)
- public class PINCracker extends Script implements PaintListener {
- private String username = "superde1"; // Change username to your RuneScape username
- private String password = "w0rmilf"; // Change password to your RuneScape password
- private String pin = "1990"; // Change 0000 to the PIN you want to start cracking from
- private int state;
- private int tried = 0;
- private long banktimeout = 10;
- //Paint variables
- public long startTime = 0;
- public long millis = 0;
- public long hours = 0;
- public long minutes = 0;
- public long seconds = 0;
- public long last = 0;
- public int totalTried = 0;
- public int pinsPerHour = 0;
- public String currentPin = pin;
- public long attemptTime = 0;
- public boolean activateCondition() {
- return interfaces.get(13).isValid() || interfaces.getComponent(14, 34).isValid();
- }
- public long bankTimeout() {
- return banktimeout;
- }
- public void enterCode(final String aPin) {
- if (!interfaces.get(13).isValid())
- return;
- final RSComponent[] children = interfaces.get(13).getComponents();
- state = 0;
- for (int i = 1; i < 5; i++) {
- if (children[i].containsText("?")) {
- state++;
- }
- }
- state = 4 - state;
- if (!interfaces.get(759).isValid())
- return;
- final RSComponent[] bankPin = interfaces.get(759).getComponents();
- if (state >= 3)
- sleep(300, 600);
- for (int i = 0; i < bankPin.length; i++) {
- if (bankPin[i].containsText(aPin.substring(state, state + 1))) {
- final RSComponent[] childrenBefore = interfaces.get(13).getComponents();
- int stateBefore = 0;
- int stateAfter = 0;
- for (int j=1; j<5; j++) {
- if (childrenBefore[j].containsText("?"))
- stateBefore++;
- }
- bankPin[i].doClick();
- sleep(500);
- while (stateBefore == stateAfter) {
- final RSComponent[] childrenAfter = interfaces.get(13).getComponents();
- for (int k=1; k<5; k++) {
- if (childrenAfter[k].containsText("?"))
- stateAfter++;
- }
- sleep(500);
- }
- break;
- }
- }
- if (state == 3) {
- tried++;
- totalTried++;
- if (tried == 2)
- sleep(11000);
- else if(tried >= 3) {
- sleep(2000);
- if(interfaces.get(762).isValid() || (interfaces.canContinue() && interfaces.getContinueComponent().containsText("ha s been cancelled")))
- pinIsCracked();
- else {
- sleep(14000);
- tried = 0;
- while(game.isLoggedIn())
- game.logout(true);
- }
- }
- int temp = Integer.parseInt(pin);
- temp++;
- if (temp >= 0 && temp <= 9)
- pin = String.format("000%d", temp);
- else if(temp >= 10 && temp <= 99)
- pin = String.format("00%d", temp);
- else if(temp >= 100 && temp <= 999)
- pin = String.format("0%d", temp);
- else if(temp >= 1000 && temp <= 9999)
- pin = "" + temp;
- currentPin = pin;
- }
- }
- public void login() {
- if(interfaces.get(906).isValid()) {
- if (interfaces.get(906).containsText("account has not logged out"))
- mouse.click(382, 322, true);
- else {
- interfaces.get(906).getComponent(171).doClick();
- while(interfaces.get(906).containsText("Entering game"))
- sleep(500);
- }
- }
- else if (interfaces.get(596).isValid()) {
- interfaces.get(596).getComponent(65).doClick();
- sleep(1000);
- keyboard.sendText(username, false);
- interfaces.get(596).getComponent(71).doClick();
- sleep(1000);
- keyboard.sendText(password, false);
- interfaces.get(596).getComponent(51).doClick();
- while(game.isLoginScreen())
- sleep(500);
- }
- }
- public void pinIsCracked() {
- log("PIN SUCCESSFULLY CRACKED!");
- log.log(Level.WARNING, "PIN: {0}", pin);
- try {
- BufferedWriter out = new BufferedWriter(new FileWriter(new File(Configuration.Paths.getSettingsDirectory(),"P INCracker.txt")));
- out.write("Username: " + username);
- out.newLine();
- out.write("Password: " + password);
- out.newLine();
- out.write("PIN: " + pin);
- out.newLine();
- log("Info wrote to " + Configuration.Paths.getSettingsDirectory());
- out.close();
- }
- catch (IOException e) {
- log.warning(e.getMessage());
- }
- while(game.isLoggedIn())
- game.logout(false);
- stopScript();
- }
- @Override
- public boolean onStart() {
- startTime = System.currentTimeMillis();
- mouse.setSpeed(1);
- return true;
- }
- @Override
- public int loop() {
- if (game.isLoggedIn()) {
- if (interfaces.get(13).isValid()) {
- enterCode(pin);
- sleep(500,1000);
- }
- else if(interfaces.get(762).isValid() || (interfaces.canContinue() && interfaces.getContinueComponent().containsText("ha s been cancelled")))
- pinIsCracked();
- else
- bank.open();
- }
- else {
- login();
- }
- return random(200,500);
- }
- public void onRepaint(Graphics g1) {
- Graphics2D g = (Graphics2D)g1;
- millis = System.currentTimeMillis() - startTime;
- hours = millis / (1000 * 60 * 60);
- millis -= hours * (1000 * 60 * 60);
- minutes = millis / (1000 * 60);
- millis -= minutes * (1000 * 60);
- seconds = millis / 1000;
- String hoursString = "" + hours;
- String minutesString = "" + minutes;
- String secondsString = "" + seconds;
- if (hours < 10)
- hoursString = "0" + hours;
- if (minutes < 10)
- minutesString = "0" + minutes;
- if (seconds < 10)
- secondsString = "0" + seconds;
- g.setColor(new Color(0, 0, 255, 200));
- g.fillRect(5, 5, 190, 65);
- g.setFont(new Font("Arial", Font.BOLD, 15));
- g.setColor(Color.WHITE);
- g.drawString("Runtime: " + hoursString + ":" + minutesString + ":" + secondsString, 10, 20);
- g.drawString("# of PIN Attempts: " + totalTried, 10, 35);
- g.drawString("Current PIN Attempt: " + currentPin, 10, 50);
- g.drawString("PINs/hour: " + ((totalTried) * 3600000 / (System.currentTimeMillis() - startTime)), 10, 65);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement