![]() |
keygenning4newbies Crackme 1 coded by the analyst [UCF/ID] - نسخة قابلة للطباعة +- الفريق العربي للهندسة العكسية (https://www.at4re.net/f) +-- قسم : ENGLISH FORUM (https://www.at4re.net/f/forum-6.html) +--- قسم : Tutorials (https://www.at4re.net/f/forum-14.html) +--- الموضوع : keygenning4newbies Crackme 1 coded by the analyst [UCF/ID] (/thread-4624.html) الصفحات:
1
2
|
keygenning4newbies Crackme 1 coded by the analyst [UCF/ID] - Stingered - 01-07-2025 Goal: code a keygen, write a tutorial. regards, the analyst.
code:
C-Assembly debug output (.COD file): https://stackoverflow.com/questions/8355205/how-to-view-the-cod-file-generated-by-vc-compiler *Use Notepad ++ to select the Language by clicking Language->A->Assembly, to view more easily. ; 125 : // Generate serial# from hard-coded username ; 126 : // While loop runs as long as "i" is less than len. Here, "len" is the length of the username string ; 127 : while (i < len) 0008e 8b 45 54 mov eax, DWORD PTR len$[rbp] 00091 39 45 74 cmp DWORD PTR i$[rbp], eax 00094 7d 35 jge SHORT $LN3@main ; 128 : { ; 129 : // i++ increments the value of i by 1 ; 130 : i++; 00096 8b 45 74 mov eax, DWORD PTR i$[rbp] 00099 ff c0 inc eax 0009b 89 45 74 mov DWORD PTR i$[rbp], eax ; 131 : ; 132 : // Accesses the (i-1)-th character in the username array ; 133 : // The^ operator performs a bitwise XOR operation between the character at username[i - 1] ; 134 : // and the current value of i ; 135 : // The result of the XOR operation is stored in the variable eax ; 136 : eax = username[i - 1] ^ i; 0009e 8b 45 74 mov eax, DWORD PTR i$[rbp] 000a1 ff c8 dec eax 000a3 48 98 cdqe 000a5 0f be 44 05 08 movsx eax, BYTE PTR username$[rbp+rax] 000aa 33 45 74 xor eax, DWORD PTR i$[rbp] 000ad 89 85 94 00 00 00 mov DWORD PTR eax$[rbp], eax ; 137 : ; 138 : // adds the value of eax to ebx ; 139 : ebx += eax; 000b3 8b 85 94 00 00 00 mov eax, DWORD PTR eax$[rbp] 000b9 8b 8d b4 00 00 00 mov ecx, DWORD PTR ebx$[rbp] 000bf 03 c8 add ecx, eax 000c1 8b c1 mov eax, ecx 000c3 89 85 b4 00 00 00 mov DWORD PTR ebx$[rbp], eax ; 140 : } 000c9 eb c3 jmp SHORT $LN2@main $LN3@main: ; 141 : // Multiplies the value of eax by 6 and stores the result back in eax ; 142 : eax *= 6; 000cb 6b 85 94 00 00 00 06 imul eax, DWORD PTR eax$[rbp], 6 000d2 89 85 94 00 00 00 mov DWORD PTR eax$[rbp], eax ; 143 : ; 144 : // shifts the bits in ebx to the left by 7 positions. This is equivalent to multiplying ebx ; 145 : // by 2 to the 7th power, or 128 ; 146 : ebx <<= 7; 000d8 8b 85 b4 00 00 00 mov eax, DWORD PTR ebx$[rbp] 000de c1 e0 07 shl eax, 7 000e1 89 85 b4 00 00 00 mov DWORD PTR ebx$[rbp], eax ; 147 : ; 148 : // Adds the value of ebx to eax ; 149 : eax += ebx; 000e7 8b 85 b4 00 00 00 mov eax, DWORD PTR ebx$[rbp] 000ed 8b 8d 94 00 00 00 mov ecx, DWORD PTR eax$[rbp] 000f3 03 c8 add ecx, eax 000f5 8b c1 mov eax, ecx 000f7 89 85 94 00 00 00 mov DWORD PTR eax$[rbp], eax ; 150 : ; 151 : // Print serial# as hex ; 152 : printf("Serial# from Username, aaaaa (hard-coded) in hex: %X\n", eax); 000fd 8b 95 94 00 00 00 mov edx, DWORD PTR eax$[rbp] 00103 48 8d 0d 00 00 00 00 lea rcx, OFFSET FLAT:??_C@_0DG@GGDILAPF@Serial?$CD?5from?5Username?0?5aaaaa?5?$CIh@ 0010a e8 00 00 00 00 call printf 0010f 90 npad 1 ; 153 : printf("Serial# from Username, aaaaa as decimal: %d\n", eax); Why am I providing this write-up? I'm hoping to get people to start learning to keygen. I've aspired to do this for years. And after reading all the TUTs I really never got anywhere. Then a friend (you know who you are), got me back into coding/keygenning. Now don't get me wrong, I've been cracking /patching s/w for years, but could never make the leap (and still have gotten there, but I'm getting closer and closer every day). Still, it's not easy, and you must be persistent. And what I mean by that, is that you need to have goals: Learn to code. Picha language and stick to that language Learn to debug that code, meaning write simple programs and walk through them in a debugger Debug with and without source code to understand what you are looking at, meaning assembly language Once you get good at these things, then you will be able to do what might seem impossible - convert the assembly to a higher-level language (I suggest C, but to each their own) The conversion is what has stumped me, for years. Why? Because I wasn't willing to do the work. Get the foundation to build on. Without the foundation, you'll just never get there. Sure, I could find the assembly location for the generation of the keygen (if not too complex), cut/paste, and use an existing TUT to make it work. But I never felt good about it, and I didn't really understand it fully. This is why you need a foundation to build on and be able to do an actual conversion of the code. You can get help. There are tools you can buy, as well as help online (example: CodeConvert AI - Convert code with a click of a button), but I encourage you not to rely on those. You'll only hurt yourself if you rely on these tools, trust me. Below is my write-up. I hope this is helpful to someone. RE: keygenning4newbies Crackme 1 coded by the analyst [UCF/ID] - DarkDeath - 02-07-2025 My SelfKeyGen
RE: keygenning4newbies Crackme 1 coded by the analyst [UCF/ID] - DarkDeath - 02-07-2025 See ![]() RE: keygenning4newbies Crackme 1 coded by the analyst [UCF/ID] - Stingered - 03-07-2025 @DarkDeath, may I ask what you use to capture and create your GIF animations? RE: keygenning4newbies Crackme 1 coded by the analyst [UCF/ID] - DarkDeath - 03-07-2025 إقتباس :وضع بواسطة Stingered - منذ 2 ساعاتDarkDeath, may I ask what you use to capture and create your GIF animations ScreenToGif RE: keygenning4newbies Crackme 1 coded by the analyst [UCF/ID] - TeRcO - 03-07-2025 (01-07-2025, 10:27 PM)Stingered كتب : Why am I providing this write-up? I'm hoping to get people to start learning to keygen Please organize your topics next time so that members can understand them more easily. RE: keygenning4newbies Crackme 1 coded by the analyst [UCF/ID] - Stingered - 04-07-2025 @Terco. I see what you mean. Will do. RE: keygenning4newbies Crackme 1 coded by the analyst [UCF/ID] - Service Manual - 05-07-2025 Service Manual - AT4RE
3A372 ********************** AoRE A106 ********************** AT4RE B300 ********************** Keygen https://mega.nz/file/ysIixabI#PqC7_Dm28dW5A7AJYnRJuINwl367LkEQmEx36NsXrLA RE: keygenning4newbies Crackme 1 coded by the analyst [UCF/ID] - Stingered - 05-07-2025 The original keygenme from 2001 is attached to my post. I D/L and tried to run this file and BORDLNDMM.DLL (runtime?) is required. RE: keygenning4newbies Crackme 1 coded by the analyst [UCF/ID] - Service Manual - 05-07-2025 (05-07-2025, 01:09 PM)Stingered كتب : The original keygenme from 2001 is attached to my post. I D/L and tried to run this file and BORDLNDMM.DLL (runtime?) is required. Greetings I’m very sorry You encountered this error because Borland C++ is not installed on your system I’ve recompiled the file Please test it Many thanks https://mega.nz/file/6lYnxQTJ#Qcd4kfuXnixMfcPAQl35cRemCtIo71rMonGz0H9Iwo4 |