I am a newbie reverse engineer. I was wondering: assuming I want to crack a program (With the permission of the author of course) and I have detected the Assembly where the program begins to check the authenticity of the key I entered or the license I provided. When do I know I simply need to skip the internal jumps or patch memory locations versus knowing when to create a keygen? I'm looking for some guidelines or some rules to follow maybe? because I'm afraid sometimes I'm wasting time on attempting to bypass jumps or create complex inline patches hoping that one of them would work versus putting more effort to simply creating a keygen.

Any answer would be appreciated :)

1 Answer 1


You need to know what you want to do:

1. Training and learning as main goal

For this case, the "wasting time" argument is irrelevant. When reversing, you always "waste time", as there are no straightforward solutions, except perhaps for trivial and therefore little interesting cases.

In general, you'll need a lot of time, you'll often find yourself in a dead end until the real clue is found. It is never "wasted time" as it will give you experience. Where the "real clue" might very well be that single patch. Try to find out the logic of the protection.

2. Cracking something as quickly as possible

For this case the main goal is not learning (although this will be unavoidable), but removing a protection with the least possible effort. In that case, you'll probably not have the "permission of the author".

Look for all available sources. Ask people, scan the web, etc. etc. You'll find out that non-trivial software often has very sophisticated protections, taking days or weeks to understand and remove, even if you already have experience.

You will always learn, and you'll find that the gained experience almost certainly helps you in your next reversing project. By the time you'll develop a "feeling" where it is useful to look in a software and where it's not (i.e. what you call "waste of time").

Never Forget

But never forget a main principle when reversing unknown software: protect yourself. Do it in a virtual machine, or if that is not possible (e.g. due to anti-VM measures) do it in a machine which you don't need for your "normal" productive activities, possibly disconnected from the internet. Your sleep will be much more quiet.

  • Thank you very much for the response Josh! This motivated me highly :)
    – Potato
    Aug 11, 2018 at 17:29
  • 1
    Be careful! The "Reversing-Virus" is a dangerous guy! Once it has you, it won't let you go. Have fun!
    – josh
    Aug 11, 2018 at 17:59

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.