easy as pi
Challenge type
crypto
Description
sir cumference would be so proud…
Challenge solve
The starting point for most challenges where we are only provided with an image is to check it for any hidden information.
There are many tools available for this, but a good place to start is with the strings
command (usually built in on a Unix environment, and easily installable on other platforms). This command returns all strings of printable characters stored in a file.
Another option is to use an online image forensics tool. My go-to would be Forensically:
Forensically - free online photo forensics tool
This site has lots of options for analysing images, but for this challenge we only really need to use String Extraction
.
Using either of these tools, we eventually come across this vaguely familiar number:
3.150591653679882137363533392178502894197168299365114821964934592306715405275308898537033824442116076881148176413381205738082833709460582132626459
Given all the challenge clues so far seem to be leading us to one thing, lets compare this string with pi:
3.150591653679882137363533392178502894197168299365114821964934592306715405275308898537033824442116076881148176413381205738082833709460582132626459
3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359
Now there’s a few things we could try here.
Co-ordinates?
Doesn’t look particularly relevant.
Maybe finding the difference?
0.00899900009008889890089000889900000999999889999000900098998999999889899898909989990899899909999900889900008990009889909098898909990999990090109959
Again, nothing jumps out as us here.
If we think about what this challenge is leading us to, there must be some information encoded in this string somehow. Maybe there is some pattern to the differing digits between this string and pi?
Time to go to python! Let’s mark all differences as 0, and all similarities as 1.
Aha! That looks like binary, lets head to CyberChef which should be able to decode it.
And our flag is: æä$b÷çf·å£cg¢å¤$g¤.
Wait, that doesn’t look right. Maybe we should try decoding it the other way round?
..Û....H.\..].[Û.[.
still doesn’t look right. Maybe its a padding issue? Lets try looking at just the fractional-part of the two strings.
011001000110111101101110011101000010000001100010011001010010000001101001011100100111001001100001011101000110100101101111011011100110000101101100
Finally, we get our flag: dont be irrational