From a4306e54861b131125dcc87e681afb335562a042 Mon Sep 17 00:00:00 2001 From: rebeccadoth Date: Fri, 19 Sep 2025 23:51:19 +0200 Subject: initial commit --- writeup.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 writeup.txt (limited to 'writeup.txt') diff --git a/writeup.txt b/writeup.txt new file mode 100644 index 0000000..d9ca2aa --- /dev/null +++ b/writeup.txt @@ -0,0 +1,8 @@ +First I loaded the exe into the debugger of my choice (x32dbg), then just looked at some of the variables and what they were, namely the actual generated key, the username, and what i call the "magic." Finding these was trivial, the more difficult part, actually finding where it generates the key, was what took me the longest. Started with just stepping through line by line to hopefully identify where the main loop was, then just kinda put breakpoints where they wouldn't get triggered just by the main loop to see which one would get tripped when I pressed the "Check It!" button. From there I just looked at what the program was doing, stepping through instruction by instruction, reading the assembly, and from there on I just wrote a short C program to generate the key for the given username. The actual keygen part was pretty simple, the whole process from download took me only about 2 hours. This is my first actual reverse engineering attempt at anything, and my first keygen, and the entire process was really fun! Found the little "easter egg" too :D + +Overall this was great as a first project, I learned a lot about using the debugger and it was a good refresher for my assembly knowledge too :) + +The provided keygen I wrote, although not pretty nor capable of realtime user input, it does work :D +Use build.bat/build.sh according to your platform. The build scripts require CMake, the windows version additionally requires Visual Studio 2022. Alternatively just compile with your favourite C compiler :) + +When I solved it the first time I didn't realise that my solution was actually only partially correct, because it would stop working when the username entered was longer than the "magic's" length, quickly worked that out tho and it works now with a username of any length :) \ No newline at end of file -- cgit v1.2.3