Advertisement
Guest User

Untitled

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