← Back to list

andrewl.us — crackme_1

Introduction

4d5ah · 2022-06-09 18:50 · 0 claps · 3.0 min read
#32xdbg #crackme #re #ui #lvl1
Open on Medium ↗

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