10 REM ========================================================= 20 REM ===== KERAFYRM PASSWORD "RECOVERY" SYSTEM SIMULATOR ===== 30 REM ========================================================= 40 REM == EXECUTION START. BEGIN JUMP TO MAIN: 50 GOTO 5000 100 REM ======================================= 110 REM ===== SUBROUTINE: VERIFY PASSWORD ===== 120 REM == READ ONLY REGISTERS USED: P1 P2 P3 P4 P5 P6 P7 130 REM == V1 V2 V3 V4 V5 V6 V7 140 REM == WRITE ONLY REGISTERS USED: P0 150 REM == ACTION: VERIFIES IF THE REGISTERS P1-P7 MATCH UP WITH V1-V7 160 REM == IF THEY MATCH, P0 IS SET TO 1 170 REM == ELSE, P0 IS SET TO 0 180 REM ======================================= 200 IF P1 = V1 THEN 210 205 GOTO 300 210 IF P2 = V2 THEN 220 215 GOTO 300 220 IF P3 = V3 THEN 230 225 GOTO 300 230 IF P4 = V4 THEN 240 235 GOTO 300 240 IF P5 = V5 THEN 250 245 GOTO 300 250 IF P6 = V6 THEN 260 255 GOTO 300 260 IF P7 = V7 THEN 270 265 GOTO 300 270 REM ===== PASSWORD VERIFICATION SUCCESS ===== 280 LET P0 = 1 290 GOTO 350 300 REM ===== PASSWORD VERIFICATION FAILURE ===== 310 LET P0 = 0 320 GOTO 350 350 RETURN 360 REM ===== END PASSWORD VERIFICATION SUBROUTINE ===== 5000 REM ==================================== 5010 REM ===== MAIN PROGRAM BEGINS HERE ===== 5020 REM ==================================== 5030 PRINT "================================================" 5040 PRINT "===== KERAFYRM PASSWORD RECOVERY SIMULATOR =====" 5050 PRINT "================================================" 5060 PRINT "== THIS BASIC PROGRAM GENERATES A RANDOM 7 ==" 5070 PRINT "== DIGIT NUMBER TO SIMULATE A PASSWORD, THEN ==" 5080 PRINT "== PROCEEDS TO PERFORM A BRUTE-FORCE ATTACK ==" 5090 PRINT "== ON IT. ==" 5091 PRINT "================================================" 5092 PRINT "" 5095 PRINT "KR> MAIN PROGRAM LOADED. EXECUTION BEGINS." 5100 REM == STEP 0: INITIALIZE PASSWORD TO A RANDOM 7 DIGIT NUMBER 5101 REM == THAT IS BETWEEN 0 AND 9 INCLUSIVE. 5110 LET P1 = INT(10 * RND(0)) 5120 LET P2 = INT(10 * RND(0)) 5130 LET P3 = INT(10 * RND(0)) 5140 LET P4 = INT(10 * RND(0)) 5150 LET P5 = INT(10 * RND(0)) 5160 LET P6 = INT(10 * RND(0)) 5170 LET P7 = INT(10 * RND(0)) 5200 PRINT "KR> RANDOM 7 DIGIT PASSWORD SELECTED AND SAVED." 5210 PRINT "KR> BEGINNING BRUTE FORCE ATTACK..." 5300 REM == STEP 1: PERFORM BRUTE-FORCE ATTACK ON EVERY SINGLE 7 5310 REM == DIGIT COMBINATION. 6100 FOR V1 = 0 TO 9 6200 FOR V2 = 0 TO 9 6250 PRINT "KR> TESTING COMBINATIONS:[",V1,V2,0,0,0,0,0,"] TO [",V1,V2,9,9,9,9,9,"]... ",10*V1+V2,"% DONE" 6300 FOR V3 = 0 TO 9 6400 FOR V4 = 0 TO 9 6500 FOR V5 = 0 TO 9 6600 FOR V6 = 0 TO 9 6700 FOR V7 = 0 TO 9 7000 REM == CALL CHECKING FUNCTION: 7010 GOSUB 100 7020 IF P0 = 0 THEN 8000 7100 REM == IF WE GET HERE, THEN P1 = 1 AND TIME TO EXIT THE LOOP 7200 PRINT "KR> PASSWORD DISCOVERED:",V1, V2, V3, V4, V5, V6, V7 7300 REM == MAX OUT THE LOOP VARIABLES SO WE EXIT THE LOOP: 7310 LET V1 = 9 7320 LET V2 = 9 7330 LET V3 = 9 7340 LET V4 = 9 7350 LET V5 = 9 7360 LET V6 = 9 7370 LET V7 = 9 8000 REM == THIS IS THE CONTINUE LOCATION TO JUMP TO. 8040 NEXT V7 8050 NEXT V6 8060 NEXT V5 8070 NEXT V4 8080 NEXT V3 8090 NEXT V2 8100 NEXT V1 9980 PRINT "KR> EXECUTION COMPLETE." 9990 PRINT "" 10000 END