Few questions about reverse engineering?

Soldato
Joined
3 Dec 2004
Posts
2,617
Hi all,

Just a few questions;

Can all compiled code be viewed in its most basic form by some kind of application?
Are there languages now that are somehow encrypted to stop any kind of source viewing?
 
Yes. At it's most root level all compiled code can be turned into assembler. Being able to do something useful with that is another matter. There are programs that offer to turn a compiled assembly of X language back into X language source, but the results I've seen of those vary from crap that looks nothing like the original to completely unusable rubbish that won't even re-compile.

Many thanks, i'm just thinking back to the days when I had a 'Action Replay' plugged into my N64. You then had a visual representation of the code - I presume in binary form? You could then use 'hex' to replace the last 2 digits to assign a different value (for example the colour of a car).

I did not fully understand it then and my memory is more hazy now. What is the actual purpose of hex? Is it to change binary values without 'messing up' the code structure (i.e so it is still usable).

Do you mean from a compiled assembly? If so, probably yes. Nothing I know of off-hand though.

I see. But what stops a competitor from using a piece of code which someone else created and changing it very slightly?
 
Your action replay didnt give you a view of the source code. What it did give you was a view of the in memory variables and register values. This is why it could be used to give you extra lives for example as it just a case of altering a variable. Much in the same way peek and poke were used on the old school spectrums. The action replay "poshed" this up by "knowing" what game was been used so could customize the view for you the user making the numbers on screen make more sense.

Ahh I see, thanks.
The codes used to be broken in 2 parts, e.g.:

D01C8675 0020

So I presume the first part was the actual memory location and if it was called, the next four digits were used to set the value?
What language do you think the original programmer would have used, would it of had to of been hex? Or is the Action Replay converting the original code into this more readable form? (I presume hex is easier to work with the binary?)

Anybody delivering "production" level applications though will most likely of used an obsfucator. This parses the entire code tree and renames all the variables, methods and functions so that its extremely hard to understand and all but impossible to follow logic and functionality.

Right that makes sense. So when the code is finished instead of just doing a normal compile, they use this obsfucator and it jumbles the code up so no one can easily de-compile into its original form?
But I presume the the original coder would have the right 'settings' to decompile to the state it was in exactly?
 
Back
Top Bottom