If I wrote a program which would Console.WriteLine()
a base64 code, like an easter egg ("a hidden secret" in gaming jargon) or something, for example
string EasterEgg = "dGhlYmlnc2VjcmV0";
Console.WriteLine(b64d(EasterEgg));
And I would let a good obfuscator run through it. Now I know that crackers with enough time and knowledge can reverse engineer a program. From it's almost humanly-unreadable form. And change the Easter Egg or remove it. Meaning they can change value by editing the binary sequence behind it, remove it by leaving a null. But can they read the original value? When a program is compiled and obfuscated. It's obviously not easteregg = "dGhlYmlnc2VjcmV0"
in the compiled file, it's something like ?@#[null][null]JJJA???
(just throwing random characters). They can replace these unreadable characters, they can delete these unreadable characters, but can they reverse these unreadable characters and read it's original value?
For example, they can replace int PremiumBought = ?$%?#$@%$$#
with int PremiumBought = 1
, but can they actually find out what the value of ?$%?#$@%$$#
was? (following the logic, of course it was 0, but that's just an example to give you an idea).
If I compiled and obfuscated string EasterEgg = "Johnson";
into it's rogue form. Would someone be able to find out what it's actual value was before the process? They can change, they can remove, can they read?
Can crackers reverse engineer the obfuscated and compiled original value of a variable?
And once again (to avoid any unnecessary mean comments about my question or knowledge), I DO KNOW; that every program can be broken into, and that not a single piece of software is 100% safe. You can stop giggling.