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

Was this helpful?