One of the problems that you may face is how to code a keygen that will make you able to generate random characters for the serial. So to practice you are freely welcome to write the Keygen in any language you want and why not e-mail me your keygen to check it. So now, we need to program a Keygen that will generate an infinite number of Random serials.So you will have to write it in your favorite programming language. Now as we discovered together how the KeygenMe works on checking the validity of our serial, part by part and that the e-mail has no relation at all with the serial checking algorithim let’s go and code a keygen for it. Then we have the conditional jump that will take us to the unwanted message when the resulted value differs from 12h. So, the same thing as the second part of the serial is happening here, the only difference is that the resulted value should be 12h instead of 10h. Now, the KeygenMe will try to do a simple addition between those bytes : 01 + 01 + 01 + 01 = 04 which is not 10h, that’s why we will jump into the “invalid serial” message.įor the mean time you just need to note what you discovered here in a Notepad or somewhere you can remember it and move on to the third part of the checking routine. This value will replace the existing value in 004051A8. Now twill substract « 30303030 » from EAX resulting in « 01010101 ». Let’s try to see what’s wrong and how can we fix that.Īs you can clearly see the KeygenMe works on moving the DWORD in the first part into EAX register, our input is “1111” so the EAX register should hold “31313131” which is the translation of “1111” from ASCII into a Hexadecimal format. But this check wouldn’t have gone right because simply the 2nd part of the serial which is “1111” is WRONG. If we had provided this serial, all the previous checks would have gone right. Let’s suppose that we provided this serial to the KeygenMe : ITS-1111-2222-3333-4444 I said that the first part is hardcoded so in the algorithm the KeygenMe will directly start dealing with the second part. The serial that we have to provide must have 5 parts. In this phase, we started to deal with the serial checking algorithm. I will start by checking what happens exactly after providing our e-mail to the KeygenMe: So let’s open it inside Immunity and see what it has for us. With Zero-knowledge you can’t actually guess if, the serial is generated based on the e-mail or not, only debugging this KeygenMe will get you the answer. After entering a random WRONG serial the KeygenMe prints “Invalid Serial”. Let’s get started.įirst of all, before starting to debug the KeygenMe you have to see what it demands from you: is it a serial ? A license file ? … etcĪs you can clearly see, the KeygenMe needs our email address and a serial number. So I’ll pretend that I have Zero-knowledge about this KeygenMe and start from the examination until completely coding a Keygen. The KeygenMe and Keygen download links are in the references below. To make it « fun » and interesting I managed to code a KeygenMe in my favorite programming langage X86 assembly / MASM syntax with a serial checking algorithm that you will see in details, later in this article. The best thing that can be done is coding an « Unripped Keygen », that will do the same but using a different set of instructions which will make you learn far better than ripping the keygeneration routine itself.Ī keygenMe is a computer program completely made by reververs for other reversers, the only accepted solution for the KeygenMe is coding a valid keygen that will generate a valid serial or key according to what the keygenMe needs. In my point of view, I don’t think that this is a good practice of keygenning because in many cases it’s similar to a copy/paste. I think that this is what we call a « Ripped Keygen ». If the software requires a name or e-mail and they are involved in the generation algorithm inside the targeted software, the reverser has many ways to code a keygen : one of the simplest is to program a keygen that will relay on the SAME instructions used by the software to generate the serial. So after understanding how the serial checking algorithm works, the reverser must code a computer program in thier favorite programming language that will generate a valid key, serial or license for the targeted software. This algorithm may relay on cryptography for instance MD5 hashing. The key generation process may require a name or e-mail to generate the serial, in other cases where no name or e-mail is required the validity of the serial may be checked by relying on hardware or using an algorithm that will play with the serial parts in order to determine if the provided key is correct or not.ĭifferent from patching and serial phishing, keygenning is defined as one of the hardest cracking techniques based on the fact that when coding, a working keygen you need to fully understand how the serial checking algorithm is working.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |