The hex bytes displayed on those blocks were then the values on that memory address. The memory read from left to right, so the layout was The entire screen we saw, which was a space of blocks, was actually the memory of the machine, meaning the address of the machine ranged from 0x0 to 0x176. With a further look into the source code and a few trial-and-errors with the blocks, we figured out how the entire game works: Shellcode Mechanism However, the processor-looking block and a line of hex values at the top of the screen was something not in Baba is You. The special rule is that is you will make the player able to control that thing on the board, just like Baba is You. You could make a new rule by pushing the blocks around and putting them together, or break existing rules by splitting the blocks up. So zero referred to the little hacker boy icon in the middle of the screen, this could be easily checked by moving zero using arrow keys ice referred to ice blocks surrounding the middle part of the screen, and a line of ice blocks at the top.Īny such “rule” consisted of three blocks that looked like reading from left to right or top to bottom would be enforced in the game world. The former meant that we were currently in control of zero, and the latter meant that everything should stop in front of ice. On the top we had two “rules,” zero is you and ice is stop. With some prior experience with Baba is You, I immediately knew what’s going on. OOO’s internet is down so we were not able to use sync to communicate with the server, but they kindly sent us the level1 file so that we can look into this level first. The decompiled source code also helped us figure out the format of level files and rules of the game, which I will talk about later. We also implemented custom functionalities to the game, such as undoing a move, which was just to replay the moves. Once we had the extracted game, my teammates could run the game on Windows and MacOS without problems. Although there were some decompile errors, we were getting most part of the game in source code form. And using the aforementioned decompiler, we could turn these bytecodes back into their. Using an existing extractor extremecoders-re/pyinstxtractor, we were able to extract every. A quick strings of the zero-is-you elf binary showed things like _MEIPASS2, and a quick Google search told us that this was a program packed by PyInstaller. As for what data it actually transmitted, we’ll get back to it in a sec.Īfter gave us the hint that the entire game is written in Python, as a Game Data-Mine Professional™, without playing the game first, I dove directly into extracting the game data. There’s nothing interested about sync, it just uploads and downloads to and from the server. Using an existing decompiler like rocky/python-decompile3, we were able to decompile sync into a Python source code. It was not a text file, so it must be a compiled Python byte-code like. start was a shell script that simply run zero-is-you binary within the build folder.įor sync, since we needed to run it by python3, it must be a Python program. Within the provided package game_client.tgz, there were a few files, README, start, sync, and a build folder. I really recommend you trying out Baba is You, but for a smol brain like me, I can’t finish the game without referencing a walkthrough, sad. I will explain this more in the following. The twist with Baba is You is that the blocks themselves can be a part of an instruction that tells how the game world functions. There are some famous modern development of this classic genre, like A Good Snowman Is Hard To Build or Stephen’s Sausage Roll. (insert mind-blown meme pic here)įor those without prior experience in Baba is You, the game is a Sokoban-kind puzzle game, where the player can push different blocks into different places. What’s nice about the original game is that it’s already Turing complete, and just to add shellcode execution onto it, woah, you just opened the gate to another dimension. I enjoyed each and every King of the Hill challenge, and I got enough rest during the time off when it’s daytime in China, very healthy lifestyle indeed. I was sure the challenges would keep me busy whilst not stress me out during the game, as there would be one and only one completely new challenge each day. I was the only one doing the KoH challenge in our team, and I was doing fairly okay, so I decided to be a KoH player for the finals. A week before the game, Tea Deliverers split up into four sub-teams and held an inner competition using some of the past challenges with some minor tweaks.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |