This is the another post about Microcorruption CTF where we’ll be solving the NEW ORLEANS challenge. So let’s start.
This is the first DIY Microcorruption Challenge as it no longer guides & gives hints to exploit the code. You have to figure it out all by yourself.
So let’s proceed to solve this level.
I always start by examining the
This code is similar to previous one & the code flow is super simple to understand.
create_password routine is run to create the password then
a user input is taken via
get_password routine & then the input is checked
Now let’s examine the create_password routine.
This routine seems to move bytes using
mov.b at incrementing offsets relative to
& the last one moves a null byte to last memory location. So it’s probably the password
we are looking for.
Now let’s examine the check_password routine.
This routine has the same offsets at address
0x44c2 as we had in the create_password routine.
We can easily interpret that create_password writes the password to memory, check_password
just compares those bytes to the ones entered by the user.
The real password is in the code itself in form of hex. We just have to enter it. So, to solve this challenge just extract the bytes moved in r15 in create_password routine & pass it through.
This was also an easy one & I tried to keep it short & simple
& didn’t went much deeper. Hope you understood it.
That’s it for this one.
Good Bye !!!