New Orleans
Last updated
Last updated
We can set a breakpoint at main using the break main
command.
We can see that the breakpoint has been set.
If we continue through the program using the continue
or c
command, the program has stopped execution at the breakpoint.
The program calls the following functions:
create_password
: Creates and sets a password for the lock.
get_password
: Takes user input.
check_password
: Checks if user input is correct.
The create_password
function seems interesting. Let's set a breakpoint there using break 447e
and continue execution flow using c
.
As we can see we are now inside the create_password
function. Note that we could have directly jumped into this program using let pc = 447e
command.
So this function sets the value of r15
to be equal to the address 0x2400
in memory.
And then it moves some characters which seem to be our password into that memory address.
Let's set a breakpoint at 44ac
and continue
the execution.
Once we hit the breakpoint we can check the memory location using the R 2400
command
Or we can just look in the Live Memory Dump section.
So the string that was read into memory was _jkp!Mr
.
Let's continue to where we are prompted for the passsword.
If we send
this password to the lock, we get the following message:
We have successfully unlocked the door and can get the Cy Yombinator bearer bonds
or whatever they are called.