When we look at the second hint, it looks like python for the last three characters, so we took a look at the last six hex values (one byte = two hex values):
This is a good hint. When we convert the hex to characters and this to base64:
It looks like a flag. Unfortunately, it wasn't. So we tried to convert the hex values to characters and that to base64 without the last 6 values (remember hint 2):
Still no flag.
Now we tried a lot but nothing worked. After a while some new hints were released:
1. you have 25 bytes, you work on 22 bytes and 3 bytes separately.
2. flag format = e(22bytes) + e(3bytes)
3. which means d(e(22bytes)) + d(e(3bytes)) must be the same with the binary words. (have you checked this before?
4. it\\\'s base64, there is a possibility that d(x) == d(y)
5. we know you\\\'re confused!
Ok, you have to work seperately on 22 bytes and the last 3 bytes. That's a good hint. The first 22 bytes converted in base64 looks like:
and the last 3 bytes:
For hint two and three we wrote functions that cover it, but we didn't need them. Hint four looks like a collision in base64. After some reading we found out that base64 has collisions in the padding.
Ok, the last 3 bytes didn't have any padding because there are no "=". The first 22 bytes have padding. So we wrote this script: