Tuesday Solution:
Username: MyUsername
Serial: T10-1129
|
==> |
Wow, this was fun Xor0! Obviously, there's a different crack for each day of the week. Sunday's answer is provided by HN1.
Here is a working solution for Monday:
Username: MyUsername
Serial: A10-57617274-686F68
Keyfile: https://www.dropbox.com/s/u0fezx00msic0tw/xor0.rox?dl=0
The important parts of the keyfile are the following:
bytes[0-3] = LittleEndian(0xDEADC0DE)
bytes[4] = Username[4] ^ Serial[5] = 0x46
bytes[27-31] = 0xFACE0FB ^ (bytes[4] * SUM(bytes[5-31]))
As you can see, the sum of bytes 5-31 "SUM(bytes[5-31])" is used in the formula to create bytes 27-31. I therefor decided to create a "dummy sum" based on bytes[5-26] all being 0xFF while bytes[27-31] are 0x00. This "dummy sum" ends up being 0x16E9. Then, when I calculate the correct value for bytes[27-31], I then subtract values from bytes[27-31] so that the sum of bytes[5-31] still adds up to this "dummy sum" of 0x16E9.
Looking forward to diving into tomorrow's key. |
==> |
@s4r Can you shed some light into what prime number properties can be leveraged here?
I was able to easily brute force the solution, but I feel like I am missing an easier solution.
Is there an easy way to solve 'a = b^x mod c' for x when you know a, b, and c? I've looked up various modular exponentiation properties but nothing seems to fit. |
==> |