Reverse Engineering
level 1.0
Reverse engineer this challenge to find the correct license key.
Let's provide an input which we can easily spot such as abcde
.
We can see that the program didn't actually mangle our input.
The program also tells us what the expected result is.
Since there is no mangling performed we can just input kxqhs
which is the ASCII representation of the expected input.
level 1.1
In this level the program does not print out the expected input.
Lets open babyrev_level1.1 in Ghidra.
On examining the .data section, we can see that the expected input is "hgsaa".
level 2.0
This challenge is now mangling your input using the
swap
mangler for indexes3
and4
.
We will provide the same initial input as before.
We can see that the fourth and fifth characters have been flipped. Let's keep this in mind for when we provide the actual key.
Looking at the expected result tells us what the actual key would look like after mangling is done.
Remember that the fourth and fifth bytes are flipped, so jkvft
is actual the key.
level 3.0
This challenge is now mangling your input using the
reverse
mangler.
This level also mangles our input using a reverse mangler.
As we can see, the order of our input bytes have been flipped, i.e. the LSB is now MSB and vice-versa.
Let's look at the expected result after mangling.
The expected result after reversing is excsd
, therefore the key dscxe
is what we have to provide as user input.
level 4.0
This challenge is now mangling your input using the
sort
mangler.
This one is similar to level 1.0.
As we can see our input hasn't actually been sorted.
We simply have to provide the expected result as the key.
Our key will be fggky
.
level 5.0
Each character is mapped to some other character .
If we provide the expected characters, we can see what characters they are mapped to.
So we must provide the string to which expected input is mapped (i.e. blede).
Last updated