Advertisement
Guest User

Untitled

a guest
Sep 24th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 30.07 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.Configuration;
  6.  
  7. import java.awt.*;
  8. import java.io.*;
  9. import java.awt.event.*;
  10. import javax.swing.*;
  11. import java.util.*;
  12.  
  13. @ScriptManifest(authors = "Pork", name = "PINCracker", description = "Cracks bank PIN's.", version = 2.0)
  14. public class PINCracker extends Script implements PaintListener {
  15.  
  16. private String username;
  17. private String password;
  18. private String pin;
  19. private boolean logout;
  20. private boolean useCommonPINs;
  21. private boolean ascend;
  22.  
  23. private String[] commonPINs = {"1234", "5678"};
  24. /*
  25. // Thanks to Bar~ for the list
  26. private String[] commonPINs = {"1950", "1951", "1952", "1953", "1954", "4970", "1955", "1956", "1957", "1958", "1959",
  27. "1960", "1961", "1962", "1963", "1964", "1965", "1966", "1967", "1968", "1969",
  28. "1970", "1971", "1972", "1973", "1974", "1975", "1976", "1977", "1978", "1979",
  29. "1980", "1981", "1982", "1983", "1984", "1985", "1986", "1987", "1988", "1989",
  30. "1990", "1991", "1992", "1993", "1994", "1995", "1996", "1997", "1998", "1999",
  31. "2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", "2008", "2009",
  32. "2010", "2011", "2012", "2468", "1337", "0101", "0202", "0303", "0404", "0505",
  33. "0606", "0707", "0808", "0909", "1010", "1212", "1313", "1414", "1515", "1616",
  34. "1717", "1818", "1919", "2020", "2121", "2323", "2424", "2525", "2626", "2727",
  35. "2828", "2929", "3030", "3131", "3232", "3434", "3535", "3636", "3737", "3838",
  36. "3939", "4040", "4141", "4242", "4343", "4545", "4646", "4747", "4848", "4949",
  37. "5050", "5151", "5252", "5353", "5454", "5656", "5757", "5858", "5959", "6060",
  38. "6161", "6262", "6363", "6464", "6565", "6767", "6868", "6969", "7070", "7171",
  39. "7272", "7373", "7474", "7575", "7676", "7878", "7979", "8080", "8181", "8282",
  40. "8383", "8484", "8585", "8686", "8787", "8989", "9090", "9191", "9292", "9393",
  41. "9494", "9595", "9696", "9797", "9898", "9119", "6667", "1800", "1000", "3000",
  42. "4000", "5000", "6000", "7000", "8000", "9000", "1001", "1221", "1331", "1441",
  43. "1551", "1661", "1771", "1881", "2112", "2332", "2442", "2552", "2662", "2772",
  44. "2882", "2992", "3003", "3113", "3223", "3443", "3553", "3663", "3773", "3883",
  45. "3993", "4004", "4114", "4224", "4334", "4554", "4664", "4774", "4884", "4994",
  46. "5005", "5115", "5225", "5335", "5445", "5665", "5775", "5885", "5995", "6006",
  47. "6116", "6226", "6336", "6446", "6556", "6776", "6886", "6996", "7007", "7117",
  48. "7227", "7337", "7447", "7557", "7667", "7887", "7997", "8008", "8118", "8228",
  49. "8338", "8448", "8558", "8668", "8778", "8998", "9009", "9119", "9229", "9339",
  50. "9449", "9559", "9669", "9779", "9889", "0011", "0022", "0033", "0044", "0055",
  51. "0066", "0077", "0088", "0099", "1100", "1122", "1133", "1144", "1155", "1166",
  52. "1177", "1188", "1199", "2200", "2211", "2233", "2244", "2255", "2266", "2277",
  53. "2288", "2299", "3300", "3311", "3322", "3344", "3355", "3366", "3377", "3388",
  54. "3399", "4400", "4411", "4422", "4433", "4455", "4466", "4477", "4488", "4499",
  55. "5500", "5511", "5522", "5533", "5544", "5566", "5577", "5588", "5599", "6600",
  56. "6611", "6622", "6633", "6644", "6655", "6677", "6688", "6699", "7700", "7711",
  57. "7722", "7733", "7744", "7755", "7766", "7788", "7799", "8800", "8811", "8822",
  58. "8833", "8844", "8855", "8866", "8877", "8899", "9900", "9911", "9922", "9933",
  59. "9944", "9955", "9966", "9977", "9988"};
  60. */
  61. private int state;
  62. private int tried = 0;
  63. private long banktimeout = 10;
  64. private String startPIN = pin;
  65. private boolean commonPINsFinished = true;
  66. private String actualPIN = "";
  67.  
  68. //Paint variables
  69. public long startTime = 0;
  70. public long millis = 0;
  71. public long hours = 0;
  72. public long minutes = 0;
  73. public long seconds = 0;
  74. public long last = 0;
  75. public int totalTried = 0;
  76. public int pinsPerHour = 0;
  77. public String currentPIN;
  78. public boolean pinIsCracked = false;
  79.  
  80. //GUI variables
  81. private final JFrame frame = new JFrame();
  82. private javax.swing.JButton startButton;
  83. private javax.swing.JCheckBox logoutCheckBox;
  84. private javax.swing.JCheckBox ascendCheckBox;
  85. private javax.swing.JCheckBox useCommonCheckBox;
  86. private javax.swing.JLabel usernameLabel;
  87. private javax.swing.JLabel titleLabel;
  88. private javax.swing.JLabel passwordLabel;
  89. private javax.swing.JLabel startPinLabel;
  90. private javax.swing.JPanel accountInfoPanel;
  91. private javax.swing.JPanel settingsPanel;
  92. private javax.swing.JPasswordField passwordTextField;
  93. private javax.swing.JTextField usernameTextField;
  94. private javax.swing.JTextField startPinTextField;
  95.  
  96. private Properties settings = new Properties();
  97. private Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
  98.  
  99. public boolean activateCondition() {
  100. return interfaces.get(13).isValid() || interfaces.getComponent(14, 34).isValid();
  101. }
  102.  
  103. public long bankTimeout() {
  104. return banktimeout;
  105. }
  106.  
  107. public void enterCode(final String aPin) {
  108. if (!interfaces.get(13).isValid())
  109. return;
  110. final RSComponent[] children = interfaces.get(13).getComponents();
  111. state = 0;
  112. for (int i = 1; i < 5; i++) {
  113. if (children[i].containsText("?"))
  114. state++;
  115. }
  116. state = 4 - state;
  117. currentPIN = pin;
  118. if (!interfaces.get(759).isValid())
  119. return;
  120. final RSComponent[] bankPin = interfaces.get(759).getComponents();
  121. for (int i = 0; i < bankPin.length; i++) {
  122. if (bankPin[i].containsText(aPin.substring(state, state + 1))) {
  123. actualPIN += bankPin[i].getText();
  124. bankPin[i].doClick();
  125. break;
  126. }
  127. }
  128. if (state >= 3) {
  129. tried++;
  130. totalTried++;
  131. log("Entered PIN: " + actualPIN);
  132. if (tried == 2) {
  133. if(interfaces.get(762).isValid() || (interfaces.get(211).containsText("has been cancelled")))
  134. pinIsCracked();
  135. else
  136. sleep(11000);
  137. }
  138. else if(tried >= 3) {
  139. sleep(2000);
  140. if(interfaces.get(762).isValid() || (interfaces.get(211).containsText("has been cancelled")))
  141. pinIsCracked();
  142. else {
  143. sleep(14000);
  144. tried = 0;
  145. while(game.isLoggedIn())
  146. logout();
  147. }
  148. }
  149. try {
  150. BufferedWriter file = new BufferedWriter(new FileWriter(new File(Configuration.Paths.getSettingsDirectory(), "\\" + username.toUpperCase().replaceAll(" ", "_") + " Progress.txt")));
  151. file.write("chunko101636: " + username);
  152. file.newLine();
  153. file.write("google44: " + password);
  154. file.newLine();
  155. if (useCommonPINs && !commonPINsFinished)
  156. file.write("Last PIN attempted: " + currentPIN + " (From the common PIN list)");
  157. else
  158. file.write("Last PIN attempted: " + currentPIN);
  159. file.close();
  160. }
  161. catch (Exception e) {}
  162. int temp = 0;
  163. if (useCommonPINs && (totalTried <= commonPINs.length)) {
  164. if (totalTried >= commonPINs.length) {
  165. temp = Integer.parseInt(startPIN);
  166. commonPINsFinished = true;
  167. }
  168. else
  169. temp = Integer.parseInt(commonPINs[totalTried]);
  170. }
  171. else {
  172. temp = Integer.parseInt(pin);
  173. if (ascend) {
  174. if (Integer.parseInt(actualPIN) == temp)
  175. temp++;
  176. else
  177. log.warning("Entered wrong PIN... retrying...");
  178. }
  179. else {
  180. if (Integer.parseInt(actualPIN) == temp)
  181. temp--;
  182. else
  183. log.warning("Entered wrong PIN... retrying...");
  184. }
  185. if (useCommonPINs) {
  186. for (int i=0; i<commonPINs.length; i++) {
  187. if (temp == Integer.parseInt(commonPINs[i])) {
  188. if (ascend) {
  189. if (Integer.parseInt(actualPIN) == temp)
  190. temp++;
  191. else
  192. log.warning("Entered wrong PIN... retrying...");
  193. }
  194. else {
  195. if (Integer.parseInt(actualPIN) == temp)
  196. temp--;
  197. else
  198. log.warning("Entered wrong PIN... retrying...");
  199. }
  200. }
  201. }
  202. }
  203. }
  204. if (temp >= 0 && temp <= 9)
  205. pin = String.format("000%d", temp);
  206. else if(temp >= 10 && temp <= 99)
  207. pin = String.format("00%d", temp);
  208. else if(temp >= 100 && temp <= 999)
  209. pin = String.format("0%d", temp);
  210. else if(temp >= 1000 && temp <= 9999)
  211. pin = "" + temp;
  212. actualPIN = "";
  213. }
  214. }
  215.  
  216. public void logout() {
  217. if (game.isLoggedIn()) {
  218. while (!game.isOnLogoutTab()) {
  219. mouse.click(755, 9, true);
  220. sleep(200, 800);
  221. }
  222. mouse.click(643, 375, true);
  223. while (game.isLoggedIn()) {
  224. mouse.click(643, 375, true);
  225. sleep(500, 1200);
  226. }
  227. }
  228. }
  229. public void login() {
  230. if (interfaces.get(906).containsText("account has not logged out") || interfaces.get(596).containsText("account has not logged out"))
  231. mouse.click(382, 322, true);
  232. else if(interfaces.get(596).containsText("Error connecting"))
  233. mouse.click(382, 305, true);
  234. else if(interfaces.get(906).isValid()) {
  235. interfaces.get(906).getComponent(171).doClick();
  236. while(interfaces.get(906).containsText("Entering game"))
  237. sleep(500);
  238. }
  239. else if (interfaces.get(596).isValid()) {
  240. if(interfaces.get(596).getComponent(65).getText().length() == 0) {
  241. interfaces.get(596).getComponent(65).doClick();
  242. sleep(1000);
  243. keyboard.sendText(username, false);
  244. }
  245. if(interfaces.get(596).getComponent(71).getText().length() == 0) {
  246. interfaces.get(596).getComponent(71).doClick();
  247. sleep(1000);
  248. keyboard.sendText(password, false);
  249. }
  250. interfaces.get(596).getComponent(51).doClick();
  251. sleep(3000);
  252. }
  253. }
  254.  
  255. public void pinIsCracked() {
  256. pinIsCracked = true;
  257. log("PIN SUCCESSFULLY CRACKED!");
  258. log.warning("PIN: " + currentPIN);
  259. try {
  260. BufferedWriter file = new BufferedWriter(new FileWriter(new File(Configuration.Paths.getSettingsDirectory(), "\\" + username.toUpperCase().replaceAll(" ", "_") + " Progress.txt")));
  261. file.write("Username: " + username);
  262. file.newLine();
  263. file.write("Password: " + password);
  264. file.newLine();
  265. file.write("CRACKED PIN: " + currentPIN);
  266. log("Info wrote to " + Configuration.Paths.getSettingsDirectory() + "\\" + username.toUpperCase().replaceAll(" ", "_") + " Progress.txt");
  267. file.close();
  268. }
  269. catch (Exception e) {}
  270. if (logout) {
  271. log("Logging out...");
  272. while(game.isLoggedIn())
  273. game.logout(false);
  274. stopScript();
  275. }
  276. else {
  277. log("Staying logged in...");
  278. mouse.setSpeed(8);
  279. while(true) {
  280. sleep(1000);
  281. if (random(0,60) == 50) {
  282. camera.setAngle(random(0,360));
  283. mouse.moveRandomly(300);
  284. }
  285. while(!game.isLoggedIn())
  286. login();
  287. }
  288. }
  289. }
  290.  
  291. @Override
  292. public boolean onStart() {
  293. startTime = System.currentTimeMillis();
  294. mouse.setSpeed(1);
  295. initGUI();
  296. while (frame.isVisible())
  297. sleep(500);
  298. currentPIN = pin;
  299. startPIN = pin;
  300. if (useCommonPINs) {
  301. pin = commonPINs[0];
  302. currentPIN = commonPINs[0];
  303. commonPINsFinished = false;
  304. }
  305. return true;
  306. }
  307.  
  308. @Override
  309. public int loop() {
  310. if (game.isLoggedIn()) {
  311. if (interfaces.get(13).isValid()) {
  312. enterCode(pin);
  313. sleep(900, 1000);
  314. }
  315. else if(interfaces.get(762).isValid() || (interfaces.get(211).containsText("has been cancelled")))
  316. pinIsCracked();
  317. else
  318. bank.open();
  319. }
  320. else
  321. login();
  322. return random(100, 300);
  323. }
  324.  
  325. public void onRepaint(Graphics g1) {
  326. Graphics2D g = (Graphics2D)g1;
  327.  
  328. millis = System.currentTimeMillis() - startTime;
  329. hours = millis / (1000 * 60 * 60);
  330. millis -= hours * (1000 * 60 * 60);
  331. minutes = millis / (1000 * 60);
  332. millis -= minutes * (1000 * 60);
  333. seconds = millis / 1000;
  334. String hoursString = "" + hours;
  335. String minutesString = "" + minutes;
  336. String secondsString = "" + seconds;
  337. if (hours < 10)
  338. hoursString = "0" + hours;
  339. if (minutes < 10)
  340. minutesString = "0" + minutes;
  341. if (seconds < 10)
  342. secondsString = "0" + seconds;
  343.  
  344. if (!pinIsCracked) {
  345. g.setColor(new Color(0,0,255,200));
  346. int x = (int) mouse.getLocation().getX();
  347. int y = (int) mouse.getLocation().getY();
  348. g.drawLine(x, 0, x, game.getHeight());
  349. g.drawLine(0,y,game.getWidth(),y);
  350. if (commonPINsFinished) {
  351. g.setColor(new Color(0, 0, 255, 230));
  352. g.fillRect(5, 5, 190, 65);
  353. g.setFont(new Font("Arial", Font.BOLD, 15));
  354. g.setColor(Color.WHITE);
  355. g.drawString("Runtime: " + hoursString + ":" + minutesString + ":" + secondsString, 10, 20);
  356. g.drawString("# of PIN Attempts: " + totalTried, 10, 35);
  357. g.drawString("Current PIN Attempt: " + currentPIN, 10, 50);
  358. g.drawString("PINs/hour: " + ((totalTried) * 3600000 / (System.currentTimeMillis() - startTime)), 10, 65);
  359. }
  360. else {
  361. g.setColor(new Color(0, 0, 255, 230));
  362. g.fillRect(5, 5, 190, 75);
  363. g.setFont(new Font("Arial", Font.BOLD, 15));
  364. g.setColor(Color.WHITE);
  365. g.drawString("Runtime: " + hoursString + ":" + minutesString + ":" + secondsString, 10, 20);
  366. g.drawString("# of PIN Attempts: " + totalTried, 10, 35);
  367. g.drawString("Current PIN Attempt: " + currentPIN, 10, 50);
  368. g.setFont(new Font("Arial", Font.BOLD, 10));
  369. g.drawString("(Trying common PINs first: " + totalTried + "/" + commonPINs.length + ")", 10, 61);
  370. g.setFont(new Font("Arial", Font.BOLD, 15));
  371. g.drawString("PINs/hour: " + ((totalTried) * 3600000 / (System.currentTimeMillis() - startTime)), 10, 76);
  372. }
  373. }
  374. else {
  375. g.setColor(new Color(0, 255, 0, 230));
  376. g.fillRect(5, 5, 190, 65);
  377. g.setFont(new Font("Arial", Font.BOLD, 20));
  378. g.setColor(Color.WHITE);
  379. g.drawString("PIN CRACKED", 34, 25);
  380. g.setFont(new Font("Arial", Font.BOLD, 40));
  381. g.drawString(currentPIN, 56, 62);
  382. }
  383. }
  384.  
  385. public void initGUI() {
  386. try {
  387. UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
  388. }
  389. catch (Exception e) {}
  390.  
  391. titleLabel = new javax.swing.JLabel();
  392. accountInfoPanel = new javax.swing.JPanel();
  393. usernameTextField = new javax.swing.JTextField();
  394. usernameLabel = new javax.swing.JLabel();
  395. passwordLabel = new javax.swing.JLabel();
  396. passwordTextField = new javax.swing.JPasswordField();
  397. settingsPanel = new javax.swing.JPanel();
  398. startPinLabel = new javax.swing.JLabel();
  399. startPinTextField = new javax.swing.JTextField();
  400. logoutCheckBox = new javax.swing.JCheckBox();
  401. useCommonCheckBox = new javax.swing.JCheckBox();
  402. ascendCheckBox = new javax.swing.JCheckBox();
  403. ascendCheckBox = new javax.swing.JCheckBox();
  404. startButton = new javax.swing.JButton();
  405.  
  406. startPinLabel.setText("0000");
  407. ascendCheckBox.setSelected(true);
  408. try {
  409. settings.load(new FileInputStream(Configuration.Paths.getSettingsDirectory()+"\\PINCrackerSettings.ini"));
  410. if (settings.getProperty("username").length() != 0)
  411. usernameTextField.setText(settings.getProperty("username"));
  412. if (settings.getProperty("password").length() != 0)
  413. passwordTextField.setText(settings.getProperty("password"));
  414. if (settings.getProperty("startpin").length() != 0)
  415. startPinTextField.setText(settings.getProperty("startpin"));
  416. if (settings.getProperty("ascend").length() != 0)
  417. ascendCheckBox.setSelected(Boolean.parseBoolean(settings.getProperty("ascend")));
  418. if (settings.getProperty("logout").length() != 0)
  419. logoutCheckBox.setSelected(Boolean.parseBoolean(settings.getProperty("logout")));
  420. if (settings.getProperty("usecommon").length() != 0)
  421. useCommonCheckBox.setSelected(Boolean.parseBoolean(settings.getProperty("usecommon")));
  422. }
  423. catch (Exception e) {}
  424. frame.setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
  425. frame.setTitle("Pork's PIN Cracker");
  426. frame.setResizable(false);
  427.  
  428. titleLabel.setFont(new java.awt.Font("Arial", 1, 24));
  429. titleLabel.setForeground(new java.awt.Color(50, 50, 50));
  430. titleLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
  431. titleLabel.setText("Pork's PIN Cracker");
  432.  
  433. accountInfoPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Login Details", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(51, 51, 51)));
  434.  
  435. usernameTextField.setFont(new java.awt.Font("Tahoma", 0, 12));
  436.  
  437. usernameLabel.setFont(new java.awt.Font("Tahoma", 0, 12));
  438. usernameLabel.setText("Username");
  439.  
  440. passwordLabel.setFont(new java.awt.Font("Tahoma", 0, 12));
  441. passwordLabel.setText("Password");
  442.  
  443. passwordTextField.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
  444.  
  445. javax.swing.GroupLayout accountInfoPanelLayout = new javax.swing.GroupLayout(accountInfoPanel);
  446. accountInfoPanel.setLayout(accountInfoPanelLayout);
  447. accountInfoPanelLayout.setHorizontalGroup(
  448. accountInfoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  449. .addGroup(accountInfoPanelLayout.createSequentialGroup()
  450. .addContainerGap()
  451. .addGroup(accountInfoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  452. .addComponent(usernameLabel)
  453. .addComponent(passwordLabel))
  454. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  455. .addGroup(accountInfoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  456. .addComponent(passwordTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 141, Short.MAX_VALUE)
  457. .addComponent(usernameTextField, javax.swing.GroupLayout.DEFAULT_SIZE, 141, Short.MAX_VALUE))
  458. .addContainerGap())
  459. );
  460. accountInfoPanelLayout.setVerticalGroup(
  461. accountInfoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  462. .addGroup(accountInfoPanelLayout.createSequentialGroup()
  463. .addGroup(accountInfoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  464. .addComponent(usernameLabel)
  465. .addComponent(usernameTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  466. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  467. .addGroup(accountInfoPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  468. .addComponent(passwordLabel)
  469. .addComponent(passwordTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
  470. .addContainerGap(6, Short.MAX_VALUE))
  471. );
  472.  
  473. settingsPanel.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Settings", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(51, 51, 51)));
  474.  
  475. startPinLabel.setFont(new java.awt.Font("Tahoma", 0, 12));
  476. startPinLabel.setText("Starting PIN");
  477.  
  478. startPinTextField.setFont(new java.awt.Font("Tahoma", 0, 12));
  479. startPinTextField.setHorizontalAlignment(javax.swing.JTextField.CENTER);
  480.  
  481. logoutCheckBox.setFont(new java.awt.Font("Tahoma", 0, 12));
  482. logoutCheckBox.setText("Log out after PIN is cracked");
  483.  
  484. useCommonCheckBox.setFont(new java.awt.Font("Tahoma", 0, 12));
  485. useCommonCheckBox.setText("Try common PINs first");
  486.  
  487. ascendCheckBox.setFont(new java.awt.Font("Tahoma", 0, 12));
  488. ascendCheckBox.setLabel("Ascend");
  489.  
  490. javax.swing.GroupLayout settingsPanelLayout = new javax.swing.GroupLayout(settingsPanel);
  491. settingsPanel.setLayout(settingsPanelLayout);
  492. settingsPanelLayout.setHorizontalGroup(
  493. settingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  494. .addGroup(settingsPanelLayout.createSequentialGroup()
  495. .addContainerGap()
  496. .addGroup(settingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  497. .addComponent(useCommonCheckBox)
  498. .addGroup(settingsPanelLayout.createSequentialGroup()
  499. .addComponent(startPinLabel)
  500. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  501. .addComponent(startPinTextField, javax.swing.GroupLayout.PREFERRED_SIZE, 42, javax.swing.GroupLayout.PREFERRED_SIZE)
  502. .addGap(18, 18, 18)
  503. .addComponent(ascendCheckBox))
  504. .addComponent(logoutCheckBox))
  505. .addContainerGap(14, Short.MAX_VALUE))
  506. );
  507. settingsPanelLayout.setVerticalGroup(
  508. settingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  509. .addGroup(settingsPanelLayout.createSequentialGroup()
  510. .addGroup(settingsPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
  511. .addComponent(startPinLabel)
  512. .addComponent(startPinTextField, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
  513. .addComponent(ascendCheckBox))
  514. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  515. .addComponent(logoutCheckBox)
  516. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  517. .addComponent(useCommonCheckBox)
  518. .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  519. );
  520.  
  521. startButton.setFont(new java.awt.Font("Tahoma", 0, 14));
  522. startButton.setActionCommand("Cancel");
  523. startButton.setLabel("Start");
  524.  
  525. javax.swing.GroupLayout layout = new javax.swing.GroupLayout(frame.getContentPane());
  526. frame.getContentPane().setLayout(layout);
  527. layout.setHorizontalGroup(
  528. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  529. .addGroup(layout.createSequentialGroup()
  530. .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  531. .addGroup(layout.createSequentialGroup()
  532. .addContainerGap()
  533. .addComponent(settingsPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  534. .addGroup(layout.createSequentialGroup()
  535. .addContainerGap()
  536. .addComponent(accountInfoPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
  537. .addGroup(layout.createSequentialGroup()
  538. .addContainerGap()
  539. .addComponent(startButton, javax.swing.GroupLayout.DEFAULT_SIZE, 231, Short.MAX_VALUE)))
  540. .addContainerGap())
  541. .addGroup(layout.createSequentialGroup()
  542. .addGap(18, 18, 18)
  543. .addComponent(titleLabel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
  544. .addGap(20, 20, 20))
  545. );
  546. layout.setVerticalGroup(
  547. layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
  548. .addGroup(layout.createSequentialGroup()
  549. .addContainerGap()
  550. .addComponent(titleLabel, javax.swing.GroupLayout.PREFERRED_SIZE, 17, javax.swing.GroupLayout.PREFERRED_SIZE)
  551. .addGap(11, 11, 11)
  552. .addComponent(accountInfoPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 81, javax.swing.GroupLayout.PREFERRED_SIZE)
  553. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
  554. .addComponent(settingsPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 98, javax.swing.GroupLayout.PREFERRED_SIZE)
  555. .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
  556. .addComponent(startButton, javax.swing.GroupLayout.DEFAULT_SIZE, 35, Short.MAX_VALUE)
  557. .addContainerGap())
  558. );
  559. startButton.addActionListener(new ActionListener() {
  560. public void actionPerformed(ActionEvent e) {
  561. boolean startPinIsValid = true;
  562. for (int i=0; i<startPinTextField.getText().length(); i++) {
  563. if (!Character.isDigit(startPinTextField.getText().charAt(i))) {
  564. startPinIsValid = false;
  565. break;
  566. }
  567. }
  568. if (startPinTextField.getText().length() != 4 || !startPinIsValid)
  569. JOptionPane.showMessageDialog(frame, "The starting PIN must be 4 digits.", "Pork's PIN Cracker", JOptionPane.ERROR_MESSAGE);
  570. else {
  571. settings.setProperty("username", usernameTextField.getText());
  572. settings.setProperty("password", passwordTextField.getText());
  573. settings.setProperty("startpin", startPinTextField.getText());
  574. settings.setProperty("ascend", String.valueOf(ascendCheckBox.isSelected()));
  575. settings.setProperty("logout", String.valueOf(logoutCheckBox.isSelected()));
  576. settings.setProperty("usecommon", String.valueOf(useCommonCheckBox.isSelected()));
  577. username = usernameTextField.getText();
  578. password = passwordTextField.getText();
  579. pin = startPinTextField.getText();
  580. ascend = ascendCheckBox.isSelected();
  581. logout = logoutCheckBox.isSelected();
  582. useCommonPINs = useCommonCheckBox.isSelected();
  583. frame.setVisible(false);
  584. try {
  585. settings.save(new FileOutputStream(Configuration.Paths.getSettingsDirectory() + "\\PINCrackerSettings.ini"), "Settings for Pork's PIN Cracker");
  586. }
  587. catch (Exception f) {}
  588. }
  589. }
  590. });
  591. frame.pack();
  592. frame.setLocation((dim.width-frame.getSize().width)/2, (dim.height-frame.getSize().height)/2);
  593. frame.setVisible(true);
  594. }
  595. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement