Writeup for CrackMe challenge Simples

Challenge ID: 5ab77f5f33c5d40ad448c807

Download the challenge file

Solution on GitHub

x32dbg_call_stack


Approach 1 – Black-Box Interaction (Brute-Force)

  1. Initial run
    Launching the executable produced a welcome prompt but ignored any keyboard input.

    Console welcome prompt

  2. Process inspection
    With Sysinternals Process Explorer I discovered a listening socket on TCP 31279 and several interesting string references.

    Process Explorer view

  3. Triggering the program
    Sending a plain HTTP request to http://127.0.0.1:31279/ caused new output to appear in the console window.

    Browser request Console after request


Approach 2 – Static Analysis & Reverse Engineering

  1. Loading the binary
    The executable was opened in Binary Ninja.

  2. String & symbol reconnaissance

    • Located welcome, success, and error messages in the Strings view.
    • Symbol inspection revealed typical Winsock APIs (WSAStartup, socket, bind, etc.).

    Strings view

  3. Control-flow graph analysis
    Focusing on the function that prints the welcome message, I annotated each call:

    WSAStartup annotation
    Port discovery

  4. Linear High Level IL
    The decompiler clarified the high-level logic:

    1. Initialize Winsock.
    2. Create a TCP socket bound to 127.0.0.1:31279.
    3. Enter a while loop waiting for data.
    4. Upon receiving any data, print the success banner and exit.

    Win-condition loop


Solution

Send a single packet e.g., curl http://127.0.0.1:31279/ to satisfy the win condition.
No specific payload or key is required; any data triggers the win message.


Takeaways

Extras - x32dbg Screenshots



Tags: Reverse Engineering, Assembly, Binary Ninja, x86dbg, Featured

← Back home