Can compiled code be reverse engineered that easily? I thought this was impossible, considering the big deal everyone makes over source code.
For what you want done when cracking code it is beyond trivially easy. When reverse engineering code it will be very messy. Variables have no names, function calls look like garbage to a human. Trying to make any serious modification is next to impossible.
i.e. if you had a game which is no longer supported and you wanted to add the ability for the player to jump trying to hack that into compiled code would be a nearly impossible task.
When patching games though it isn't brain surgery. In psuedo code it looks something like this
check valdiation
if (call validation_checker (serial) = true)
function validation_checker(string serial)
{
do validation stuff here lots of code which returns true or false based on the authenticity of the key
}
hackers simply replace it with this
function validation_checker(string serial)
{
return true
}
As pointed out above DRM is fatally flawed because encryption was never designed to keep a secret from the intended user.
In cryptography we often use the terms Alice Bob Eve.
Alice is the sender
Bob is the receiver
Eve is the attacker
Except in DRM it is more like
Alice = game company
Bob = game owner
Eve = game owner
you are both trying to pass information to Bob and keep information from Eve ... except they are the same person. Fatally flawed. Every form of DRM ever made will be broken.