Wizardlike

Challenge

Do you seek your destiny in these deplorable dungeons? If so, you may want to look elsewhere. Many have gone before you and honestly, they've cleared out the place of all monsters, ne'erdowells, bandits and every other sort of evil foe. The dungeons themselves have seen better days too. There's a lot of missing floors and key passages blocked off. You'd have to be a real wizard to make any progress in this sorry excuse for a dungeon! Download the game. 'w', 'a', 's', 'd' moves your character and 'Q' quits. You'll need to improvise some wizardly abilities to find the flag in this dungeon crawl. '.' is floor, '#' are walls, '<' are stairs up to previous level, and '>' are stairs down to next level.

Solution

There is an intended solution that probably involves changing your player's position (based on the hint that "With the right focus and preparation, you can teleport to anywhere on the map."). This writeup does not use that method. Instead, we identify the strings that make up each level and reformat them correctly such that the flag can be seen.
We use radare2 (which is mentioned in the challenge hints). Run r2 game to open the binary in radare. Then, run aaaa to analyze the binary. Next, run izz to get all the strings and you'll notice the below set of strings in your output:
45 0x0000481c 0x0000581c 2044 2044 .data ascii ......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................#..............#......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
46 0x00005018 0x00006018 2044 2044 .data ascii .....................................................................................................................................................................................................................................................#....................................#.................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
47 0x00005814 0x00006814 2044 2044 .data ascii ............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
48 0x00006010 0x00007010 1824 1825 .data ascii .........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................#................................................................................................#.....................................................................................................
49 0x00006740 0x00007740 2044 2044 .data ascii ######### #.......# ......#................................... #.......# ....................####.#####.#####..###. #........ .####.#..###..###..#.......#...#......#... #.......# .# #.#.#....# #.#.......#...###...#.... #.......# .####.#.#....# #.#.......#...#......#... #.......# .#....#..###..###...####...#...#......###. #.......# .#........................................ #.......# .......................................... #.......# #.......# #.......# #.......# #.......# #......># #########
50 0x00006f3c 0x00007f3c 2044 2044 .data ascii
51 0x00007738 0x00008738 2044 2044 .data ascii
52 0x00007f34 0x00008f34 2044 2044 .data ascii
53 0x00008730 0x00009730 1824 1825 .data ascii
54 0x00008e60 0x00009e60 2044 2044 .data ascii #####. ............................................................. #.<.#. ...............#..#.............##.......#..#........#....... #...#. .#..#.###......#..#.......#...#..#.####..#..#.###....#....... #...#. .#..#.#........####.......#.#.#..#...#...####.#...####....... #...#. .####.#...####....#.#####..#.#..###.####....#.#...####.#####. . ............................................................. . ............................................................. . ............................................................. #.... #...# #...# #...# #...# #...# #.>.# #####
55 0x0000965c 0x0000a65c 2044 2044 .data ascii
56 0x00009e58 0x0000ae58 2044 2044 .data ascii
57 0x0000a654 0x0000b654 2044 2044 .data ascii
58 0x0000ae50 0x0000be50 1824 1825 .data ascii
59 0x0000b580 0x0000c580 2044 2044 .data ascii ################# ....... #<..............#. ..###.. #...............#.. .#...#. #..............#......###.. #...#.......#...#.. .#...#. #..###.....###..#. ..###.. #...#...#...#...# ....... #......#>#......# ....... #...............# #...#.......#...# #..###.....###..# #...#.......#...# #...............# #...............# #...............# #################
60 0x0000bd7c 0x0000cd7c 2044 2044 .data ascii
61 0x0000c578 0x0000d578 2044 2044 .data ascii
62 0x0000cd74 0x0000dd74 2044 2044 .data ascii
63 0x0000d570 0x0000e570 1824 1825 .data ascii
64 0x0000dca0 0x0000eca0 2044 2044 .data ascii ... .. ....... .<. ####. .#####. ... ...#.. .#..... ... ...#....###... ..>#.. .#..... ####. .#..... .. ....... .......
65 0x0000e49c 0x0000f49c 2044 2044 .data ascii
66 0x0000ec98 0x0000fc98 2044 2044 .data ascii
67 0x0000f494 0x00010494 2044 2044 .data ascii
68 0x0000fc90 0x00010c90 1824 1825 .data ascii
69 0x000103c0 0x000113c0 2044 2044 .data ascii ######################## #<.............#.......# #..............#.#...#.# #..............#.#...#.# #..............#.#####.# #..............#.....#.# #..............#.....#.# #..............#.......# #..............#.......# ######################## ################ #..............# #..............# #..............#
70 0x00010bbc 0x00011bbc 2044 2044 .data ascii #..............# #..............# #..............# #..............# #.............># ################
71 0x000113b8 0x000123b8 2044 2044 .data ascii
72 0x00011bb4 0x00012bb4 2044 2044 .data ascii
73 0x000123b0 0x000133b0 1824 1825 .data ascii
74 0x00012ae0 0x00013ae0 2044 2044 .data ascii ....... .<..... ....... ....... ....... ....... ....... ....... ....... ....... ....... .....>. ....... ####### ....... .####.. .#...#. .####.. .#...#. .####.. .......
75 0x000132dc 0x000142dc 2044 2044 .data ascii .......
76 0x00013ad8 0x00014ad8 2044 2044 .data ascii
77 0x000142d4 0x000152d4 2044 2044 .data ascii
78 0x00014ad0 0x00015ad0 1824 1825 .data ascii
79 0x00015200 0x00016200 2044 2044 .data ascii ... .<......... ........... ... .. .. .. .. .. .. .. .............. ..##########.. .# #. .# ....... #. .# ..###.. #. .# .#...#. #. .# .#...#. #. .# .#...#. #. .# ..###.. #. .# ....... #. .# ....... #.
80 0x000159fc 0x000169fc 2044 2044 .data ascii .# #. ..##########.. .............>
81 0x000161f8 0x000171f8 2044 2044 .data ascii
82 0x000169f4 0x000179f4 2044 2044 .data ascii
83 0x000171f0 0x000181f0 1824 1825 .data ascii
84 0x00017920 0x00018920 2044 2044 .data ascii ######################### #<#......#.#.......###..# #.#.###..#.#.......##..## #.#.#.#..#.#.......#..### #.#.#.#..#.#.......#...## #...#....#..#......#....# #.######.##..###.###....# #.#.....................# #.###.#################.# #.......................# #########.###.#########.# #.......#.#.#.#.........# #.#...#.#.#...#.######### #.#...#.#.#.#.#.........# #.#####.#.#.#.#########.# #.....#.#.#.#.#.........# #.....#.#.#.#.#.######### #.......#.#.#.#.........# #.......#.#.#.#########.# #########.#.#.#...#...#.# #...........#.#.#.#.#.#.#
85 0x0001811c 0x0001911c 2044 2044 .data ascii #########...#.#.#.#.#.#.# #.......#...#.#.#.#.#.#.# ####.####...#.#.#.#.#.#.# ##..........#.#.#.#.#.#.# #.#..####...#.#.#.#.#.#.# #..#....#####.#.#.#.#.#.# #...#...#...#.#.#...#...# #....#........#.######### #...........#.#........># ########################.
86 0x00018918 0x00019918 2044 2044 .data ascii
87 0x00019114 0x0001a114 2044 2044 .data ascii
88 0x00019910 0x0001a910 1824 1825 .data ascii
89 0x0001a040 0x0001b040 2044 2044 .data ascii ... ........<. ..###..... .#...#.... .#####. .#...#. .#...#. ....... ....... . .
90 0x0001a83c 0x0001b83c 2044 2044 .data ascii . . . . .
91 0x0001b038 0x0001c038 2044 2044 .data ascii . . . . . .
92 0x0001b834 0x0001c834 2044 2044 .data ascii .. . .
93 0x0001c030 0x0001d030 1824 1825 .data ascii . . . . . . ... ... .>. ...
94 0x0001c760 0x0001d760 2044 2044 .data ascii <...................................................................................................................................................................................................#...####################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
95 0x0001cf5c 0x0001df5c 2044 2044 .data ascii #############################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################..............######################################################################################.#####.###....######################################################################################.#.......#....######################################################################################.###......#...######################################################################################.#.......#....######################################################################################.#####.###....######################################################################################..............######################################################################################...
96 0x0001d758 0x0001e758 2044 2044 .data ascii ...........#################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
97 0x0001df54 0x0001ef54 2044 2044 .data ascii ############################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
98 0x0001e750 0x0001f750 1824 1825 .data ascii ########################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################................................................................................................#.......................................................................................................
While scrolling through the word-wrapped version of these strings I noticed that some of them looked like the first few levels/floors of the game. I tried resizing my window and getting the levels to fit right. Sure enough, I came accross the string picoCTF{ in the first level:
49 0x00006740 0x00007740 2044 2044 .data ascii ######### #.......# ......#................................... #.......# ....................####.#####.#####..###. #........ .####.#..###..###..#.......#...#......#... #.......# .# #.#.#....# #.#.......#...###...#.... #.......# .####.#.#....# #.#.......#...#......#... #.......# .#....#..###..###...####...#...#......###. #.......# .#........................................ #.......# .......................................... #.......# #.......# #.......# #.......# #.......# #......># #########
When line breaks are placed correctly, the above looks like this:
#########
#.......# ......#...................................
#.......# ....................####.#####.#####..###.
#........ .####.#..###..###..#.......#...#......#...
#.......# .# #.#.#....# #.#.......#...###...#....
#.......# .####.#.#....# #.#.......#...#......#...
#.......# .#....#..###..###...####...#...#......###.
#.......# .#........................................
#.......# ..........................................
#.......#
#.......#
#.......#
#.......#
#.......#
#......>#
#########
Now, we just need to go through and reformat the rest of the levels by adding line breaks appropriately. This was made easy by using a text editor with settings allowing for text wrapping and a toggle for splitting words over multiple lines (specifically, I used gedit).
The next part of the flag comes from string 54:
54 0x00008e60 0x00009e60 2044 2044 .data ascii #####. ............................................................. #.<.#. ...............#..#.............##.......#..#........#....... #...#. .#..#.###......#..#.......#...#..#.####..#..#.###....#....... #...#. .#..#.#........####.......#.#.#..#...#...####.#...####....... #...#. .####.#...####....#.#####..#.#..###.####....#.#...####.#####. . ............................................................. . ............................................................. . ............................................................. #.... #...# #...# #...# #...# #...# #.>.# #####
Reformatted this looks like:
#####. .............................................................
#.<.#. ...............#..#.............##.......#..#........#.......
#...#. .#..#.###......#..#.......#...#..#.####..#..#.###....#.......
#...#. .#..#.#........####.......#.#.#..#...#...####.#...####.......
#...#. .####.#...####....#.#####..#.#..###.####....#.#...####.#####. . ............................................................. . ............................................................. . .............................................................
#....
#...#
#...#
#...#
#...#
#...#
#.>.#
#####
So, we now know that the flag begins with picoCTF{ur_4_w1z4rd_
Next, we have string 59:
59 0x0000b580 0x0000c580 2044 2044 .data ascii ################# ....... #<..............#. ..###.. #...............#.. .#...#. #..............#......###.. #...#.......#...#.. .#...#. #..###.....###..#. ..###.. #...#...#...#...# ....... #......#>#......# ....... #...............# #...#.......#...# #..###.....###..# #...#.......#...# #...............# #...............# #...............# #################
Reformatted:
################# .......
#<..............#. ..###..
#...............#.. .#...#.
#..............#......###..
#...#.......#...#.. .#...#.
#..###.....###..#. ..###..
#...#...#...#...# .......
#......#>#......# .......
#...............#
#...#.......#...#
#..###.....###..#
#...#.......#...#
#...............#
#...............#
#...............#
#################
So, we now have picoCTF{ur_4_w1z4rd_8.
Next is string 64:
64 0x0000dca0 0x0000eca0 2044 2044 .data ascii ... .. ....... .<. ####. .#####. ... ...#.. .#..... ... ...#....###... ..>#.. .#..... ####. .#..... .. ....... .......
Reformatted:
... .. .......
.<. ####. .#####.
... ...#.. .#.....
... ...#....###...
..>#.. .#.....
####. .#.....
.. .......
.......
So, we now have picoCTF{ur_4_w1z4rd_8F.
String 69 reformatted gets us picoCTF{ur_4_w1z4rd_8F4:
########################
#<.............#.......#
#..............#.#...#.#
#..............#.#...#.#
#..............#.#####.#
#..............#.....#.#
#..............#.....#.#
#..............#.......#
#..............#.......#
########################
################
#..............#
#..............#
#..............#
String 74 reformatted gets us picoCTF{ur_4_w1z4rd_8F4B:
.......
.<.....
.......
.......
.......
.......
.......
.......
.......
.......
.......
.....>.
.......
#######
.......
.####..
.#...#.
.####..
.#...#.
.####..
.......
String 79 reformatted gets us picoCTF{ur_4_w1z4rd_8F4B0:
...
.<.........
...........
... ..
..
..
..
..
..
..
..............
..##########..
.# #.
.# ....... #.
.# ..###.. #.
.# .#...#. #.
.# .#...#. #.
.# .#...#. #.
.# ..###.. #.
.# ....... #.
.# ....... #.
String 84 reformatted gets us picoCTF{ur_4_w1z4rd_8F4B04:
#########################
#<#......#.#.......###..#
#.#.###..#.#.......##..##
#.#.#.#..#.#.......#..###
#.#.#.#..#.#.......#...##
#...#....#..#......#....#
#.######.##..###.###....#
#.#.....................#
#.###.#################.#
#.......................#
#########.###.#########.#
#.......#.#.#.#.........#
#.#...#.#.#...#.#########
#.#...#.#.#.#.#.........#
#.#####.#.#.#.#########.#
#.....#.#.#.#.#.........#
#.....#.#.#.#.#.#########
#.......#.#.#.#.........#
#.......#.#.#.#########.#
#########.#.#.#...#...#.#
#...........#.#.#.#.#.#.#
String 89 reformatted gets us picoCTF{ur_4_w1z4rd_8F4B04A:
........<.
..###.....
.#...#....
.#####.
.#...#.
.#...#.
.......
.......
String 95 reformatted (roughly... not really sure what this one was supposed to be) gets us picoCTF{ur_4_w1z4rd_8F4B04AE}:
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
####################################################################################################
#########################################..............#############################################
#########################################.#####.###....#############################################
#########################################.#.......#....#############################################
#########################################.###......#...#############################################
#########################################.#.......#....#############################################
#########################################.#####.###....#############################################
#########################################..............#############################################
#########################################...
So, we now have the complete flag since we have encountered a }.

Flag

picoCTF{ur_4_w1z4rd_8F4B04AE}
Copy link
Edit on GitHub