Philippe Dourassov

@pilvar

Joined on Jun 18, 2023

  • Before reading this, I have to warn you that my main methodology during CTFs is not to understand everything, but only approximatively understand what is needed, do assumptions, and if things don't work, correct my assumption, and these challenges were the perfect example of how messy this can become. However, I somehow got the two first bloods on them, so the strategy seems to somewhat work. I hope I will be able to write these writeups in an understandable way :) (Also I might write wrong stuff. If so, please lmk by sending a DM to my discord pilvar) futuredisk 22 solves I'm from the year 2123. Here's what I did: Mounted my 10 exabyte flash drive fallocate -l 8E haystack.bin
     Like  Bookmark
  • Written by organizers Rev BackTo1986 We can analyze the main executable after unpacking the initramfs. It's a statically linked, stripped binary that implements a breakout-like game. In the init phase we open the file /dev/prob which later is used to read 200 bytes at a time to create the grid on the screen. The previous grid and the current grid are combined (I used xor, but more likely to have been a subtraction) to create the new grid of 10x20 breakout blocks. We can either write a program and put it in the initramfs or we can find the data for the prob file in the kernel (it is hardcoded and not dynamically generated, so we can just extract it, there are references to rust drivers, but I didn't care enough about the actual implementation as I saw the hardcoded data). I used the kernel ELF file which is extracted from the bzImage using binwalk.
     Like  Bookmark