andrewl.us — crackme_1
Introduction
andrewl.us — crackme_1
Introduction
Language: C/C++
Platform: Windows
Arch: x32
Crackmes.one: https://crackmes.one/crackme/5ab77f6433c5d40ad448cae3
Debugging/Reversing
Yay I am back!, after some rest for 2022 new year (nope, I worked for Pentesting project.. :D ) let’s look at another crackMe which actually the one I picked before but it was kinda long or I wasn’t on mood to crack it tbh I lost a bit in it and skipped it for a while but I know the real learning comes with some pushing like if something becomes easier then probably you are learning less so that one was pushing me (cuz it was doing stuff with UI) so I skipped it, I was lazy but anyway I decided the crack and I did of course :D

This is how it looks, let’s load it on 32xdbg!
Before I was trying to find where the input data is being compared but I kind of got lost in some lib which actually generates that UI but today I followed different approach and it was soo easy to crack it!
I went to symbols tab as

and double-clicked to “crackme1.exe”

Boom this is our probably crackme main function so left a breakpoint there and hit run then UI will appear so fill something in “Name” and “Serial” anddd click “Check” button and it will end up in main funciton.
There is also something interesting that the User is being set right after main function so if you scroll down little bit, you will see something like this:

So this string “GMHMLGI” is used for User and for Serial. Well serial is of course result of some calculation that program does with that string “GMHMLGI”.

Alright according to calculation, we can say that each character of the string is being forced with “0x7F” value which is “127” in decimal.

Here, right before our inputted serial, we can see that calculation result is being written (in dump).

Ok, we got some numbers let’s try it with string we found.

Boom, we found the Serial and User :)
Let’s crack it so that it can work with different serial.

This code above shows where it does comparison. So all we need is to patch it and this function should return “1” in order to get WINNER message so let’s patch it and make it always return “1”.
So change it from “0x0” to “0x1” like this.

and boom!

Save it as new exe:

That’s all!
Conclusion
Thanks to writer, as I re-experienced something I knew which is “Always take a break when you are stuck”.
REv3rs3Th3P14n3t
메타데이터
- post_id
- 31068dd1fbb3
- slug
- andrewl-us-crackme-1-31068dd1fbb3
- url
- https://medium.com/@4d5ah/andrewl-us-crackme-1-31068dd1fbb3
- canonical_url
- https://medium.com/@4d5ah/andrewl-us-crackme-1-31068dd1fbb3
- author_url
- https://medium.com/@4d5ah
- status
- ok
- fetched_at
- 2026-07-27 00:46:47