crackmes.one

ayyMike's JCrackMe

Author:
ayyMike

Language:
C/C++

Upload:
3:05 AM 08/30/2019

Level:
3

Platform
Windows

Description

The pass itself is very simple, but the part that is tricky is the obfuscation.

coyote_0x90 on 5:19 AM 10/27/2019: Spoilers below! [+] CrackMe made by mike.ac#2770. [+] Tune credits to cncpp.divilabs.com. Please enter the secret password: 55-1-1-1 Press any key to continue . . . It plays the Mario song on the PC speakers when you are successful. The 1s in the password can be replaced with any hex number, as long as there are 4 numbers total and the first is 55 (the first number is compared against an instruction in memory). The trick is that jumps are written into the executable code while it is running, and then later removed, so it is difficult to follow what is going on unless you step through it. The code scans for a specific magic number and replaces it with a jump when the jump should be taken, and replaces it afterwards. Unfortunately, it crashes after the song is done, but I have figured out why. The reason for the crash at the end, even if you succeed, is that the same magic number is used twice, 0F DA DD EE 0F. This magic number is used for the last jump, but since it is used twice, that last jump does not get written in, and some previous jump gets written instead. But, the chiptunes still play. It is less satisfying to win and still crash, so I patched out the last jump to get it to not crash. After the song is done, it calls system("pause").