If you are pretty sure that you know how to trigger collision in unordered_map, then congrats!
But I myself, with the knowledge of source code, spent around 2 hrs to find a working solution; the point is you absolutely have to have a deep dive into GCC source code, and that's the whole idea around this crackme.
even if you compile a similar code with a different version of GCC, your current solution might not work.
Sure there are blogs that explain how to trigger lots of collisions for GCC x.y, but AFAIK they don't work for this one.
And still, the bonus task is pretty good. you might hash input integers using SHA1, and then there would absolutely be no way to efficiently find a couple of collisions, let alone lots of them, but the intended way to do this is to make minimal changes to some simple reference unordered_map code. |
==> |
As a hint,
The first line of input (stdin) takes n.
After that it reads n numbers, your carefully crafted sequence.
Also, it can be proved that from the set of all sequences of a
fixed length n, the code finishes fastest for the ones with the same numbers repeated |
==> |
I really doubt your solution
Please verify that the binary isn't still waiting for more numbers, as it should answer in at most 100 seconds on a modern CPU
Also, the numbers should be carefully chosen, a random or a long sequence won't magically work
Anyway if you're sure, you can post the sequence you used |
==> |
Wow no one has solved it yet!
As a hint, this code calculates xor basis,
So write a similar code, compile it and compare it to this one to find out what else this one does
https://codeforces.com/blog/entry/68953 |
==> |
I am new to RE
I found how to smash the stack
but apparently my GLIBC prevents that
is it intended or I am done? |
==> |
some cyphers are bad!
|
==> |