Advertisement
Guest User

Untitled

a guest
Sep 21st, 2017
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.70 KB | None | 0 0
  1. import org.rsbot.script.Script;
  2. import org.rsbot.script.ScriptManifest;
  3. import org.rsbot.script.wrappers.RSComponent;
  4. import org.rsbot.event.listeners.PaintListener;
  5. import org.rsbot.util.GlobalConfiguration;
  6. import java.awt.*;
  7. import java.io.*;
  8.  
  9. @ScriptManifest(authors = "Pork", name = "PINCracker", description = "Cracks bank PIN's.", version = 1.1)
  10. public class PINCracker extends Script implements PaintListener {
  11.  
  12. private String username = "grazy frog94"; // Change "username" to your RuneScape username
  13. private String password = "frisk1"; // Change "password" to your RuneScape password
  14. private String pin = "1200"; // Change "0000" to the PIN you want to start cracking from
  15. private boolean logout = true; // Change "true" to "false" if you want to stay logged in after the PIN is cracked
  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. public boolean pinIsCracked = false;
  33.  
  34. public boolean activateCondition() {
  35. return interfaces.get(13).isValid() || interfaces.getComponent(14, 34).isValid();
  36. }
  37.  
  38. public long bankTimeout() {
  39. return banktimeout;
  40. }
  41.  
  42. public void enterCode(final String aPin) {
  43. if (!interfaces.get(13).isValid())
  44. return;
  45. final RSComponent[] children = interfaces.get(13).getComponents();
  46. state = 0;
  47. for (int i = 1; i < 5; i++) {
  48. if (children[i].containsText("?")) {
  49. state++;
  50. }
  51. }
  52. state = 4 - state;
  53. currentPin = pin;
  54. if (!interfaces.get(759).isValid())
  55. return;
  56. final RSComponent[] bankPin = interfaces.get(759).getComponents();
  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. sleep(300, 600);
  81. tried++;
  82. totalTried++;
  83. if (tried == 2)
  84. sleep(11000);
  85. else if(tried >= 3) {
  86. sleep(2000);
  87. if(interfaces.get(762).isValid() || (interfaces.canContinue() && interfaces.getContinueComponent().containsText("has been cancelled")))
  88. pinIsCracked();
  89. else {
  90. sleep(14000);
  91. tried = 0;
  92. while(game.isLoggedIn())
  93. game.logout(true);
  94. }
  95. }
  96. int temp = Integer.parseInt(pin);
  97. temp++;
  98. if (temp >= 0 && temp <= 9)
  99. pin = String.format("000%d", temp);
  100. else if(temp >= 10 && temp <= 99)
  101. pin = String.format("00%d", temp);
  102. else if(temp >= 100 && temp <= 999)
  103. pin = String.format("0%d", temp);
  104. else if(temp >= 1000 && temp <= 9999)
  105. pin = "" + temp;
  106. }
  107. }
  108.  
  109. public void login() {
  110. if (interfaces.get(906).containsText("account has not logged out") || interfaces.get(596).containsText("account has not logged out"))
  111. mouse.click(382, 322, true);
  112. else if(interfaces.get(596).containsText("Error connecting"))
  113. mouse.click(382, 305, true);
  114. else if(interfaces.get(906).isValid()) {
  115. interfaces.get(906).getComponent(171).doClick();
  116. while(interfaces.get(906).containsText("Entering game"))
  117. sleep(500);
  118. }
  119. else if (interfaces.get(596).isValid()) {
  120. if(interfaces.get(596).getComponent(65).getText().length() == 0) {
  121. interfaces.get(596).getComponent(65).doClick();
  122. sleep(1000);
  123. keyboard.sendText(username, false);
  124. }
  125. if(interfaces.get(596).getComponent(71).getText().length() == 0) {
  126. interfaces.get(596).getComponent(71).doClick();
  127. sleep(1000);
  128. keyboard.sendText(password, false);
  129. }
  130. interfaces.get(596).getComponent(51).doClick();
  131. sleep(3000);
  132. }
  133. }
  134.  
  135. public void pinIsCracked() {
  136. pinIsCracked = true;
  137. log("PIN SUCCESSFULLY CRACKED!");
  138. log.warning("PIN: " + currentPin);
  139. try {
  140. BufferedWriter out = new BufferedWriter(new FileWriter(new File(GlobalConfiguration.Paths.getSettingsDirectory(),"PINCracker.txt")));
  141. out.write("Username: " + username);
  142. out.newLine();
  143. out.write("Password: " + password);
  144. out.newLine();
  145. out.write("PIN: " + currentPin);
  146. log("Info wrote to " + GlobalConfiguration.Paths.getSettingsDirectory() + "\\PINCracker.txt");
  147. out.close();
  148. }
  149. catch (IOException e) {
  150. log.warning(e.getMessage());
  151. }
  152. if (logout) {
  153. log("Logging out...");
  154. while(game.isLoggedIn())
  155. game.logout(false);
  156. stopScript();
  157. }
  158. else {
  159. log("Staying logged in...");
  160. mouse.setSpeed(8);
  161. while(true) {
  162. sleep(1000);
  163. if (random(0,50) == 50) {
  164. camera.setAngle(random(0,360));
  165. mouse.moveRandomly(300);
  166. }
  167. while(!game.isLoggedIn())
  168. login();
  169. }
  170. }
  171. }
  172.  
  173. public boolean onStart() {
  174. startTime = System.currentTimeMillis();
  175. mouse.setSpeed(1);
  176. return true;
  177. }
  178.  
  179. @Override
  180. public int loop() {
  181. if (game.isLoggedIn()) {
  182. if (interfaces.get(13).isValid()) {
  183. enterCode(pin);
  184. sleep(500,1000);
  185. }
  186. else if(interfaces.get(762).isValid() || (interfaces.canContinue() && interfaces.getContinueComponent().containsText("has been cancelled")))
  187. pinIsCracked();
  188. else
  189. bank.open();
  190. }
  191. else
  192. login();
  193. return random(200,500);
  194. }
  195.  
  196. public void onRepaint(Graphics g1) {
  197. Graphics2D g = (Graphics2D)g1;
  198.  
  199. millis = System.currentTimeMillis() - startTime;
  200. hours = millis / (1000 * 60 * 60);
  201. millis -= hours * (1000 * 60 * 60);
  202. minutes = millis / (1000 * 60);
  203. millis -= minutes * (1000 * 60);
  204. seconds = millis / 1000;
  205. String hoursString = "" + hours;
  206. String minutesString = "" + minutes;
  207. String secondsString = "" + seconds;
  208. if (hours < 10)
  209. hoursString = "0" + hours;
  210. if (minutes < 10)
  211. minutesString = "0" + minutes;
  212. if (seconds < 10)
  213. secondsString = "0" + seconds;
  214.  
  215. if (!pinIsCracked) {
  216. g.setColor(new Color(0, 0, 255, 220));
  217. g.fillRect(5, 5, 190, 65);
  218. g.setFont(new Font("Arial", Font.BOLD, 15));
  219. g.setColor(Color.WHITE);
  220. g.drawString("Runtime: " + hoursString + ":" + minutesString + ":" + secondsString, 10, 20);
  221. g.drawString("# of PIN Attempts: " + totalTried, 10, 35);
  222. g.drawString("Current PIN Attempt: " + currentPin, 10, 50);
  223. g.drawString("PINs/hour: " + ((totalTried) * 3600000 / (System.currentTimeMillis() - startTime)), 10, 65);
  224. }
  225. else {
  226. g.setColor(new Color(0, 255, 0, 220));
  227. g.fillRect(5, 5, 190, 65);
  228. g.setFont(new Font("Arial", Font.BOLD, 20));
  229. g.setColor(Color.WHITE);
  230. g.drawString("PIN CRACKED", 34, 25);
  231. g.setFont(new Font("Arial", Font.BOLD, 40));
  232. g.drawString(currentPin, 56, 62);
  233. }
  234. }
  235. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement