Path: blob/master/payloads/examples/Example_Payloads/konami_cave.txt
2968 views
REM Boots as STORAGE, starts a game of cave in a text editor after konami code1REM COMPATABILITY:2REM DuckyScript 3.034REM TARGET:5REM Any host that will reflect CAPSLOCK67REM DEPLOYMENT:8REM Plug in Ducky. To Start a game of cave:9REM Open PayloadStudio Console, notepad or text editor, make sure cursor is active there10REM Press the button on the Ducky11REM Press CAPSLOCK on the host machine lock 5 times12REM Press the Duck button to confirm and start game13REM Good luck!1415ATTACKMODE STORAGE16LED_G17WAIT_FOR_BUTTON_PRESS18LED_OFF19ATTACKMODE HID STORAGE20LED_G21WAIT_FOR_CAPS_CHANGE22LED_OFF23WAIT_FOR_CAPS_CHANGE24LED_G25WAIT_FOR_CAPS_CHANGE26LED_OFF27WAIT_FOR_CAPS_CHANGE28LED_G29WAIT_FOR_CAPS_CHANGE30LED_R31WAIT_FOR_BUTTON_PRESS32LED_G3334DEFINE RIGHT 035DEFINE LEFT 136DEFINE GAME_MAX_WIDTH 4037DEFINE GAME_SPEED 20038VAR $mode = RIGHT39VAR $lock_state = FALSE40VAR $score = 041VAR $running = TRUE42VAR $direction_changes = 04344VAR $D = 045VAR $INPUT = 046VAR $MOD = 047VAR $P = FALSE48FUNCTION PRINTDIGIT()49IF ($D == 0) THEN50STRING 051ELSE IF ($D == 1) THEN52STRING 153ELSE IF ($D == 2) THEN54STRING 255ELSE IF ($D == 3) THEN56STRING 357ELSE IF ($D == 4) THEN58STRING 459ELSE IF ($D == 5) THEN60STRING 561ELSE IF ($D == 6) THEN62STRING 663ELSE IF ($D == 7) THEN64STRING 765ELSE IF ($D == 8) THEN66STRING 867ELSE IF ($D == 9) THEN68STRING 969ELSE70STRING ?71END_IF72END_FUNCTION73FUNCTION CONSUME()74$D = 075WHILE ($INPUT >= $MOD)76$D = ($D + 1)77$INPUT = ($INPUT - $MOD)78END_WHILE79IF (($D > 0) || ($P == TRUE)) THEN80$P = TRUE81PRINTDIGIT()82END_IF83END_FUNCTION84FUNCTION TRANSLATE_INT()85$P = FALSE86IF ( $INPUT >= 10000) THEN87$MOD = 1000088CONSUME()89END_IF90IF (($INPUT >= 1000) || ($P == TRUE)) THEN91$MOD = 100092CONSUME()93END_IF94IF (($INPUT >= 100) || ($P == TRUE)) THEN95$MOD = 10096CONSUME()97END_IF98IF (($INPUT >= 10) || ($P == TRUE)) THEN99$MOD = 10100CONSUME()101END_IF()102$D = $INPUT103PRINTDIGIT()104ENTER105END_FUNCTION106FUNCTION TRANSLATE_BOOL()107IF ($INPUT == TRUE) THEN108STRING TRUE109ELSE IF ($INPUT == FALSE) THEN110STRING FALSE111ELSE112STRING ?113END_IF114ENTER115END_FUNCTION116117VAR $CD = 3118FUNCTION COUNTDOWN()119WHILE ( $CD > 0 )120STRING .121$CD = ($CD - 1)122DELAY 1000123END_WHILE124END_FUNCTION125126FUNCTION ENSURE_CAPS_OFF()127IF ($_CAPSLOCK_ON == TRUE) THEN128CAPSLOCK129END_IF130END_FUNCTION131132FUNCTION init()133$_RANDOM_MIN = 9134$_RANDOM_MAX = 19135VAR $l_wall = $_RANDOM_INT136$_RANDOM_MIN = 20137$_RANDOM_MAX = 29138VAR $player = $_RANDOM_INT139$_RANDOM_MIN = 30140$_RANDOM_MAX = 40141VAR $r_wall = $_RANDOM_INT142END_FUNCTION143144FUNCTION check_input()145VAR $changed = FALSE146IF ($_CAPSLOCK_ON != $lock_state) THEN147$lock_state = $_CAPSLOCK_ON148$direction_changes = ($direction_changes + 1)149IF ($mode == RIGHT) THEN150$mode = LEFT151ELSE152$mode = RIGHT153END_IF154END_IF155END_FUNCTION156157FUNCTION end_game()158LED_R159$running = FALSE160END_FUNCTION161162FUNCTION move_walls()163$_RANDOM_MIN = 0164$_RANDOM_MAX = 100165VAR $CHANCE = $_RANDOM_INT166167IF ($CHANCE > 45) THEN168IF ($l_wall < GAME_MAX_WIDTH) THEN169$l_wall = ($l_wall + 1)170REM STRING l+171END_IF172ELSE173IF ($l_wall > 0) THEN174$l_wall = ($l_wall - 1)175REM STRING l-176ELSE177$l_wall = ($l_wall + 1)178END_IF179END_IF180181$CHANCE = $_RANDOM_INT182IF ($CHANCE > 45) THEN183IF ($r_wall > 0) THEN184$r_wall = ($r_wall - 1)185REM STRING r-186END_IF187ELSE188IF ($r_wall < GAME_MAX_WIDTH) THEN189$r_wall = ($r_wall + 1)190REM STRING r+191ELSE192$r_wall = ($r_wall - 1)193END_IF194END_IF195REM ENTER196END_FUNCTION197198FUNCTION move_player()199IF ($mode == RIGHT) THEN200IF ($player < GAME_MAX_WIDTH) THEN201$player = ($player + 1)202END_IF203ELSE IF ($mode == LEFT) THEN204IF ($player > 0) THEN205$player = ($player - 1)206END_IF207END_IF208END_FUNCTION209210FUNCTION draw()211IF (($player <= $l_wall) || ($player >= $r_wall)) THEN212end_game()213STRING BONK214RETURN 0215END_IF216217VAR $l_inside_whitespace = (($player - $l_wall) - 1)218VAR $r_inside_whitespace = (($r_wall - $player) - 1)219IF ($l_wall > 1) THEN220VAR $l_outside_whitespace = ($l_wall - 1)221WHILE ($l_outside_whitespace > 0)222SPACE223$l_outside_whitespace = ($l_outside_whitespace - 1)224END_WHILE225END_IF226STRING |227WHILE ($l_inside_whitespace > 0)228SPACE229$l_inside_whitespace = ($l_inside_whitespace - 1)230END_WHILE231IF ($mode == RIGHT) THEN232STRING >233ELSE IF ($mode == LEFT) THEN234STRING <235END_IF236WHILE ($r_inside_whitespace > 0)237SPACE238$r_inside_whitespace = ($r_inside_whitespace - 1)239END_WHILE240STRING |241ENTER242$score = ($score + 1)243RETURN 0244END_FUNCTION245246FUNCTION run()247check_input()248move_walls()249check_input()250move_player()251check_input()252draw()253END_FUNCTION254255FUNCTION play_cave()256WHILE TRUE257ENSURE_CAPS_OFF()258$score = 0259LED_G260ENTER261STRING Game Starting in 3s262$CD = 3263COUNTDOWN()264ENTER265STRING GOOD LUCK!266ENTER267ENTER268init()269WHILE ($running == TRUE)270DELAY GAME_SPEED271run()272END_WHILE273ENSURE_CAPS_OFF()274ENTER275STRING Left wall276$INPUT = $l_wall277TRANSLATE_INT()278STRING Right wall:279$INPUT = $r_wall280TRANSLATE_INT()281STRING Player position:282$INPUT = $player283TRANSLATE_INT()284STRING GAME OVER. SCORE:285$INPUT = $score286TRANSLATE_INT()287STRING Player Moves:288$INPUT = $direction_changes289TRANSLATE_INT()290DELAY 1000291STRING Press CAPS to play again.292WAIT_FOR_CAPS_CHANGE293$running = TRUE294DELAY 100295END_WHILE296END_FUNCTION297298BUTTON_DEF299end_game()300END_BUTTON301302play_cave()303304