How to solve Pride #1 CrackMe Tutorial - Beginner Level
Support us on Patreon: http://bit.ly/38mnveC
A CrackMe is a program that is intentionally made for learning reverse engineering legally. We are not doing anything illegal in this video. CrackMes are common learning tools for ethical hackers. Even antivirus companies create CrackMes for ethical reasons, see this Malwarebytes article:
https://blog.malwarebytes.com/malwarebytes-news/2017/11/how-to-solve-the-malwarebytes-crackme-a-step-by-step-tutorial/
This is a fairly popular CrackMe tutorial from Pride with a very simple XOR algorithm, it asks you for a username and a serial. The serial is derived from the username. We teach you how to use OllyDbg to reverse engineer the serial generation algorithm.
Time stamps:
0:00 Introduction
0:07 Detecting program’s language
0:23 Testing program
0:42 Analyzing program
1:40 Finding serial
4:52 Making Keygen
In this video, you will be walked through solving Pride #1 crackme tutorial. It is a simple command line program that asks for a name and serial and tries to validate them. Since programs written in different languages can be reversed differently, the first step is to determine which language the crackme was written in. There is a range of tools that can assist with this process, but PEiD is the one that was used. After determining it was written in C++, it is loaded into OllyDbg for analysis. Since the program ends with “Press any key to continue . . .”, it is mostly calling the “pause” command, so a call to system(“pause”) would be a good place to start looking. Before the call, there are messages for the serial being wrong or right, so it seems like the right place. So, putting a breakpoint on the compare instruction and examining the registers and stack data is the way to start thinking about a solution. After entering a random name and serial, the execution will break and viewing the registers will reveal that the entered serial is being compared to some value on the stack. So, trace back to where this value is being set and put a breakpoint there. Once the program is restarted, the execution will stop after entering the name to compute the serial. Trying that value would inevitably show it is the correct serial.
Just finding a correction serial is not enough for this crackme. Now, it is the time to create a keygen. Since the point where the correct serial is being calculated is already known, that portion of code needs to be analyzed. After testing few names, you will notice the serial is calculated based on the name length added to a constant and then xored by a key. So, write a small program the replicate this process and test its output, which will prove to be a correct serial.
After viewing this video, you will have the knowledge to use OllyDbg to debug programs and some of the strategies to find and analyze interesting parts of the code.
Discussion & Download : https://bit.ly/3hNOG6t
Donate on our Forum : http://bit.ly/2HkOco9
Follow us on Facebook : http://bit.ly/2vvHfhk
Follow us on Twitter : http://bit.ly/3bC7J1i
Follow us on Twitch : http://bit.ly/39ywOZ2
Follow us on Reddit : http://bit.ly/3bvOB57
Follow us on GitHub : http://bit.ly/2HoNXIS
Follow us on Instagram : http://bit.ly/2SoDOlu