• How are keygens created? made; programmed

    ShikhaTan Member

    i know its probably got a lot to with programming skills and knowing your machine

    but is there any explanation out there that explains the steps and how this is made from step to step, when there’s a new software out for example how do they know what the request code and serial match?

  • BuckRenard Member

    Simply Reverse-Engineering, lets say you coded an app in C++ and you distribute it on .exe form, if a good Assembly programmer saw your program he can see every single line of your code (in assembly) but if he is good he can see exactly what you doing and can create crack or keygen or whatever he likes

  • Adan Member

    First a program is compiled from code (C/Java/Et Cetera) into machine code (A lower form of Assembly, IIRC. It’s what people used to code in before assembly was invented to make things easier than remembering things like 169 1).

    A disassembler converts the machine code (Also known as op codes (Look on the wiki, I’m too lazy to post the link xD) ) back into the more readable.

    hexadecimal opcodes and assembler, so you end up with something like this (This isn’t actual code, this is just an example of what you might see when you use something like objdump:

    069686868686 8099 0x90 mov eax, 0x81
    ^ this is the ^ this is ^ this is the
    hexadecimal the hex assembler
    

    So the Programmers/733T H4X0RZ(Wow, it hurts to type that :0)/Hackers (MIT usage, as code is an art form. I use cracker when I mean the filthy scum that break into computers) read the assembler, line by line, and get an idea of what the original programmers did, then they construct tools based around their understanding of the original programmer’s algorithms. For example, in the case of a crack, it basically injects code into the executable to modify what the program does.

    If you want to join the crowd that does this sort of thing. Learn basic programming, then get yourself a grounding in C (Programming C by Dennis Ritchie and Brian Kernighan is THE GUIDE to C. It’s written by the people that created the language, and it’s considerably smaller than most of the other books in the market, this is not to say it lacks anything that any other book in the market does, it just doesn’t drone on, like I am now, welp, gotta get back to writing outside the parenthesis. THERE IS NO LIFE OUTSIDE THIS PARENTHESIS. NOOOOOOOO-.).

    One thing I should have mentioned is to learn a variant of UNIX, and learn it well, as most of the best professional tools for programming have been written specifically for this OS. And depending on your distribution of UNIX, it should come with a wealth of programming tools as part of the system. After all of that learn assembly, then try writing your own programs and disassembling them with a tool like objdump.

    http://en.wikibooks.org/wiki/C_Programming
    http://en.wikibooks.org/wiki/X86_Disassembly
    http://en.wikibooks.org/wiki/Subject:Computing

    The best guide to assembly can be found on two sites, one of those is http://www.os-dev.org, and the other one is

    http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

  • Ganesh Member

    If OP is going to be making keygens, OP will need to learn ASM. I assumed a baseline competency of skill with looking at the disassembly of executables. I agree completely that OP needs to learn the basics.

    I will disagree with you on the IDA Pro part, I use it at work and it’s pretty awesome. Yes, the user interface was clearly designed by a potato, however the data reference following and the asm to C ability (which is not bad btw) is quite nice. Makes reverse engineering and unpacking so much more fluid. IF you can get over the UI that is (seriously, it’s ass). Not that anything you said about the command line tools is wrong, I just feel that IDA is more efficient, thus better.

  • Abhey Member

    UNIX tools are generally better for programming with, as the operating system was made for programmers (Or at least it’s maintained by people who seem to take this ethos),
    in comparison windows is too locked down as a system so it suffers dramatically.

    I’ve also noticed a trend where people who use windows are less likely to be as proficient a programmer as someone who uses *nix. (This is just my personal experience, but as always correlation != causation). The tools being built in to the system, and the sheer configurability, means that *nix is generally considered a programming OS. In my time I’ve programmed on both windows and *nix, but unless you use MSVC then you are going to suffer with the fact that the tools for programming on windows aren’t as good as the ones on *nix (Again, personal experience here, if you can shoot some tools my way that aren’t then please do

Viewing 4 reply threads
  • You must be logged in to reply to this topic.
en_USEnglish