Author: AmunRha
This is just another string compare challenge, but this time every nibble is checked rather than every byte. And all the checks are inside multiple functions making it harder to navigate in a decompiler/disassembler. Once the player figures out the the elements in the array represent the nibbles of the flag, you can automate the whole process by joining the nibbles to make out bytes, hence retrieving the flag.
Every pepega_xx()
check does the same thing with a slight difference on their indexes, this is the template for all pepega_xx()
,
The function basically takes in a byte like 0xab
and checks if the first nibble is equal to the stored one and if the second nibble is equal to the stored on which is in the array final
, the two nibbles in this case are 0xa
and 0xb
This happens for every byte, write a python script to join all those nibbles together and u get your flag.