$ ctf42

Flag_Pointer_Register

Reverse No technique tags yet.
Difficulty Not rated yet

Author: hoover

Flag format: NNS{...}

by hoover Reverse Engineering beginner New to reverse engineering? This beginner challenge is an introduction to the Windows x64 calling convention and how arguments are passed in registers.

The provided x86-64 .exe decodes the flag successfully, yet it still prints the wrong message. Somewhere between the decoder and WriteFile, a perfectly good pointer ends up in the wrong place.

Open it in a debugger such as x64dbg or IDA Free and follow the final function calls. Watch the value returned in RAX, then inspect how RCX, RDX, R8, and R9 are prepared before the output call.

Put the correct pointer into the register where WriteFile expects its buffer. Repair it live in the debugger and step through the program again.

Writeups

Official

No official writeup linked.

Community

No community writeups yet. Solved it? Share how.

Log in to add a community writeup.