PC Review


Reply
Thread Tools Rate Thread

Code Obsfuscation

 
 
Alex Glass
Guest
Posts: n/a
 
      23rd May 2005
I'm concerned a commercial application I've completed could be stolen by
deobsfuscation. However it's not clear to me what information is gained
when my .net executable is deobsfuscated (decompiled?). Any insight on the
subject would be greatly appreciated.

-Alex


 
Reply With Quote
 
 
 
 
Michael C#
Guest
Posts: n/a
 
      23rd May 2005
"Alex Glass" <(E-Mail Removed)> wrote in message
news:O_ake.656$(E-Mail Removed)...
> I'm concerned a commercial application I've completed could be stolen by
> deobsfuscation. However it's not clear to me what information is gained
> when my .net executable is deobsfuscated (decompiled?). Any insight on
> the subject would be greatly appreciated.
>
> -Alex


A basic obfuscator re-names your public classes and variables to make the
logic of the IL code harder to understand if it is de-compiled. More
advanced obfuscators can can modify your code slightly to make the logic
even harder to follow. There are even some that can encrypt strings and
other values in your code to make it much harder to understand when
de-compiled.

Bottom line is that anyone who wants to de-compile your code can do so. All
you can do is make it as hard as possible for them to understand your code,
follow the logic within your code, and view the string and other values in
your code. For serious obfuscation, I would look for an obfuscator that
obfuscates, encrypts and possibly can modify the code to hide the logic even
more. If you're not familiar with IL, you might want to read up on it, then
compare some of your un-obfuscated IL with your obfuscated IL to get a
better understanding of how obfuscation works.


 
Reply With Quote
 
 
 
 
Oenone
Guest
Posts: n/a
 
      23rd May 2005
Michael C# wrote:
> A basic obfuscator re-names your public classes and variables to make
> the logic of the IL code harder to understand if it is de-compiled.


How does it do this without breaking any code in other projects that uses
those public classes and variables? Surely once these have been renamed, an
external program that references an obfuscated DLL will find that the class
and variable names it is looking for no longer exist?

--

(O)enone


 
Reply With Quote
 
Carlos J. Quintero [.NET MVP]
Guest
Posts: n/a
 
      23rd May 2005
It does not rename public elements by default. Most obfuscators allows you
to control what to obfuscate and what not through reg expressions or custom
attributes, it the defaults are not suitable.

--

Best regards,

Carlos J. Quintero

MZ-Tools: Productivity add-ins for Visual Studio .NET, VB6, VB5 and VBA
You can code, design and document much faster.
Free resources for add-in developers:
http://www.mztools.com

"Oenone" <(E-Mail Removed)> escribió en el mensaje
news:(E-Mail Removed)...
> Michael C# wrote:
>> A basic obfuscator re-names your public classes and variables to make
>> the logic of the IL code harder to understand if it is de-compiled.

>
> How does it do this without breaking any code in other projects that uses
> those public classes and variables? Surely once these have been renamed,
> an external program that references an obfuscated DLL will find that the
> class and variable names it is looking for no longer exist?
>
> --
>
> (O)enone
>



 
Reply With Quote
 
Carlos J. Quintero [.NET MVP]
Guest
Posts: n/a
 
      23rd May 2005
> However it's not clear to me what information is gained when my .net
> executable is deobsfuscated (decompiled?).


You can get the equivalent C# or VB.NET used to produce the intermediate
language. See

..NET Reflector
http://www.aisto.com/roeder/dotnet/

or Anakrino
http://www.saurik.com/net/exemplar/

--

Best regards,

Carlos J. Quintero

MZ-Tools: Productivity add-ins for Visual Studio .NET, VB6, VB5 and VBA
You can code, design and document much faster.
Free resources for add-in developers:
http://www.mztools.com


 
Reply With Quote
 
Michael C#
Guest
Posts: n/a
 
      24th May 2005
Oops. My typo. I was typing faster than I was thinking. If you are
reusing your DLLs for other projects, you can specify that only private
classes and variables are obfuscated. Sorry about that...

"Oenone" <(E-Mail Removed)> wrote in message
news:(E-Mail Removed)...
> Michael C# wrote:
>> A basic obfuscator re-names your public classes and variables to make
>> the logic of the IL code harder to understand if it is de-compiled.

>
> How does it do this without breaking any code in other projects that uses
> those public classes and variables? Surely once these have been renamed,
> an external program that references an obfuscated DLL will find that the
> class and variable names it is looking for no longer exist?
>
> --
>
> (O)enone
>



 
Reply With Quote
 
Banned
Join Date: Nov 2009
Posts: 79
 
      2nd Apr 2010
With .Net assemblies, your entire source code including the control flow structure (if, while, for loops) is completely visible to anybody using a free tool called Reflector. A basic protection againt this is to use an obfuscator to rename all (or only non-public) classes/members. Advanced protections empoyed by some obfuscators are string encryption, control flow obfuscation and many more. Check out Crypto Obfuscator (http://www.ssware.com/cryptoobfuscat...scator-net.htm) which also has Anti-Reflector, Anti-Debug, Anti-Tamper.
 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Linq to XML--Are there code examples that make Linq as easy as SQL? Or how can I convert ths simple pseudo code into real code? Reece Microsoft C# .NET 4 10th Dec 2008 04:13 AM
ATI Radeon Drivers - Code 43, Code 37 & Code 10 =?Utf-8?B?SmFrZQ==?= Windows Vista Hardware 14 29th Aug 2006 05:50 AM
ATI Display Drivers - Code 43, Code 37, Code 10 Jake Windows Vista Hardware 2 8th Jul 2006 04:00 PM
what is the difference between code inside a <script> tag and code in the code-behind file? keithb Microsoft ASP .NET 1 29th Mar 2006 02:00 AM
[New] Zipoid - ZIP Code, City Name and Area Code Lookup - Zip Code to Zip Code Distance Calculation Mel Freeware 0 22nd Jul 2005 04:13 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 09:02 PM.