The binary is from here: https://files.fm/u/qtqmhhdd
I've been attempting this a couple of days. It's an ELF-64 bit file and I've gdb and IDA to see how it works for a while. You can run the file by
./reverse1.bin TEST (outputs a fail message)
In gdb it runs a _Z5checkPc function and you can use "disas check". It uses the flag from address
0x601038 which is
But I don't see it where it actually gets used in the code.
From the check function it seems to does a bunch of operations (or, add, ...) to your arg. I thought it would do a compare to see determine if it "fails" or "success" at
0x00000000004005b0 but that is not right, strangely.
Any insights on what to do?