Code Newbie
News     Forums     Search     Members     Sign Up    

My Code Newbie
Username

Password

Articles/Snippets
ASP Classic
ASP.NET
C
C#
C++
HTML / CSS
Java
Javascript
Linux / BSD
Perl
PHP
Python
Ruby
SQL
VB 6
VB.NET

C.N. Friends
  Planet Rome

Link to Us!
Code Newbie
  Code Newbie
    forums
Old 12-07-2006, 09:19 AM   #1 (permalink)
cyberjoe
Recruit
 
Join Date: Nov 2006
Posts: 13
cyberjoe is on a distinguished road
Protect .NET source code by obfuscating it???

Hi,

I'm looking for a tool that can be utilized by daily build to encode our assemblies.
It should prevent of decoding our code by disassemblers.

I need something like: smartassembly.com/product/how4.aspx

Is this the best we can have?
cyberjoe
cyberjoe is offline   Reply With Quote
Old 12-07-2006, 10:32 AM   #2 (permalink)
teknomage1
Jack of all trades
 
teknomage1's Avatar
 
Join Date: Feb 2005
Location: Los Angeles
Posts: 596
teknomage1 is on a distinguished road
Send a message via AIM to teknomage1
Isn't that like making your code slower for no appreciable gain? I mean honestly, have you ever seen the output of a disassembler? It's already ugly.
__________________
Stop intellectual property from infringing on me
teknomage1 is offline   Reply With Quote
Old 12-09-2006, 10:56 AM   #3 (permalink)
waveclaw
Recruit
 
waveclaw's Avatar
 
Join Date: Jul 2006
Location: USA
Posts: 15
waveclaw is on a distinguished road
Send a message via ICQ to waveclaw Send a message via AIM to waveclaw Send a message via MSN to waveclaw Send a message via Yahoo to waveclaw
Hiding in plain sight...

Quote:
It should prevent of decoding our code by disassemblers.
Commercial software people are always good for a laugh.

Note that everything below assumes you're not using a TCM system. But if you knew that you wouldn't be asking here for advice on obfuscating code.

Once your code is 'compiled' it is just translated into another language. Hopefully it will be translated into something that is easier for the computer to use. To anyone that can program in your target format, will consider the shipped software to be in source code format. If I can read and program in x86 assembler, Microsoft has shipped me the source code to Windows everyday since 1990. It may not look like source to you, but the decompiler and the assembler programmer don't care.

I have worked on many projects that used obfuscated code. The best you can get away with (and not significantly impact your sales and potential market) is stripping out meaningful names. However, to the non-English speaker, functionCall338() is no more meaningful than setApplicationTitle() so this technique is rather silly from the realist's point of view. In the end, the strings utility will defeat you. The tools from smart assembly are cute, but free tools exist to re-patch those function calls into something less ugly. The computer doesn't care that you used non-printing characters for function names nor will the disassembler.

Now, if you are trying to hide your algorithms, you can use an interpreter. One of the 'encrypted shell' tools used to ship games on Linux is a good example. But to 'protect' your intellectual property (oxymoron not withstanding) it will have to completely wrap your code. Even your most efficient work will become much slower when the shell has to dynamically re-translate your software. This is not something you do for performance demanding or interactive applications. Ever complain about the speed of Java? Well Java VMs have received far more attention than any encrypted shell.

Either way, you will lose support for most debugging tools. With the encryption tool between you and your program, developers can no longer trust that problems with your code is not the fault of the protection tool. After all, if you don't take all the possible protective measures available it will be trivial to strip your unencrypted and compiled code from the shell program, then decompile it. With the obsfucator you may have to pay the original company a lot of money for a simple tool to remap obsfucated functions to their original form. Also, any error reporting risks being mightly corrupted if it tried to print out the function name or object ID that failed. Some GUI's (Windows) don't like non-printable characters and have had bugs that crashed the OS trying to use them.

Remember that all it takes is one disgruntled employee to leak the original source code.

And yes, non-technical management never has a clue about this. People have been mystified by the 'magic computing box' since the first PhD proposed one.
waveclaw is offline   Reply With Quote
Old 12-09-2006, 12:03 PM   #4 (permalink)
redhead
Newbie
 
redhead's Avatar
 
Join Date: Jun 2002
Location: Denmark
Posts: 1,696
redhead is on a distinguished road
I belive this thread displays our perspective on obfuscating source code...
__________________
Don't worry Ma'am, We're university students, We know what We're doing.
-----
If you pull the pin, Mr.Grenade would no longer be your friend.
-----
01000111 01101111 00100000 01000011 00100000 00100001
redhead is offline   Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

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 On


Similar Threads
Thread Thread Starter Forum Replies Last Post
How to check the source code quality / How to check the source code on the basis of y woojtii Program Design and Methods 1 11-07-2006 02:57 PM
What is the best way to test .NET source code for windows form and for ASP.NET? woojtii MS Technologies ( ASP, VB, C#, .NET ) 0 11-07-2006 03:17 AM
Sun Plans to Open Nearly All of Solaris Source Code redhead Code Newbie News 1 06-30-2004 04:13 AM
Microsoft Opens Source Code redhead Code Newbie News 1 06-29-2004 09:44 AM
Cisco Code breaking sde Code Newbie News 0 05-21-2004 07:10 AM


All times are GMT -8. The time now is 01:53 PM.


Powered by vBulletin® Version 3.7.0
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.0.0 RC8





Copyright © 2000-2008, Milano Interactive
Web Hosting provided by Portal 360 Web Hosting