Crackme: antilagvip's medium crackme
MD5: 406af7cd43808f1de221d36d8c7d12d6
SHA1: 736c3fee49a93c60731a2f137545b75311646f9f
SHA256: 588211672f26f28731da0d30f2691f23542ea7a825f553a5edc9087dbf52b86e
This is listed as a C/C++ x64 executable with a difficulty rating of 3.0. The author is antilagvip and the executable is written for Windows.
The authors description:
the right key get the code.. sounds simple right?
This was a fun challenge. I went through the motions. I loaded this in Detect it Easy. It isn't packed. It's a console application. Strings aren't encoded/encrypted. I also loaded it into PE Bear and just looked around. Nothing interesting jumped out at me.
I've talked about how to find the main function in previous posts so I'm just going jump in and say that it is located at 0x140001180. Pretty basic stuff, it prompts you for a key and waits for input. It calls a function that validates whether your key is valid and if it is valid, it sets the flag in the passed in buffer. Then it outputs whether you got it or not. Patching to the goodboy is trivial but you won't be getting a valid flag.
So let's take a lock at the validation function. Again, we could force the program to return the goodboy and we might even be able to get the program to execute the algorithm that populates the flag but whether it is correct, we will never know. There are some input checks in the beginning and then we see a hashing algorithm. If the result of our input results in the hash value of 0x683b236d, we have a valid key. The input length must be an odd number and greater than or equal to 9.
Here's is some code that brute forces correct key values.
At the time of running this, my program is still executing.. maybe I should have implemented multi-threading but also... I don't even need more than one key so there's that.
The 13 character key didn't seem to work but the others that I tested did. I also tested with multiple 9 character key values and they all worked.
Comments
Post a Comment