For the complete documentation index, see llms.txt. This page is also available as Markdown.

Challenge Name

Problem

The name of the game is speed. Are you quick enough to solve this problem and keep it above 50 mph? need-for-speed.

Solution

  1. Run the program `chmod +x need-for-speed && ./need-for-speed:

     Keep this thing over 50 mph!
     ============================
    
     Creating key...
     Not fast enough. BOOM!
  2. Run the program in GDB and ignore SIGALRM messages:

     $ gdb ./need-for-speed
     (gdb) handle SIGALRM ignore
     Signal        Stop      Print   Pass to program Description
     SIGALRM       No        No      No              Alarm clock
     (gdb) r
     Starting program: ~/Documents/PicoCTF/Reverse Engineering/Need For Speed/need-for-speed 
     Keep this thing over 50 mph!
     ============================
    
     Creating key...
     Finished
     Printing flag:
     PICOCTF{Good job keeping bus #3b89d39c speeding along!}
     [Inferior 1 (process 66066) exited normally]

    More Info: StackOverflow

  3. Alternative Method 1: Run in GDB and skip the set_timer() function:

    ``` (gdb) break set_timer Breakpoint 1 at 0x883 (gdb) r Starting program: ~/Documents/PicoCTF/Reverse Engineering/Need For Speed/need-for-speed

    Keep this thing over 50 mph!

  1. Alternative Method 2: Only calling the needed functions:

  2. Alternative Method 3: Bypass the long loop:

    The key value can be found with Ghidra.

  3. The significant functions as decompiled by Ghidra can be found in ghidra.c

Flag

PICOCTF{Good job keeping bus #3b89d39c speeding along!}

Last updated