Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. .NET Obfuscator

.NET Obfuscator

Scheduled Pinned Locked Moved The Lounge
csharptoolsquestion
5 Posts 4 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    ssmith721
    wrote on last edited by
    #1

    Can someone suggest a good Obfuscator? It needs to non-expensive and simple to use. I need to prevent someone from reverse engineering my code from the dlls that I provide using tools like Reflector. Thanks.

    P J 2 Replies Last reply
    0
    • S ssmith721

      Can someone suggest a good Obfuscator? It needs to non-expensive and simple to use. I need to prevent someone from reverse engineering my code from the dlls that I provide using tools like Reflector. Thanks.

      P Offline
      P Offline
      Patrick Etc
      wrote on last edited by
      #2

      Well, there's always Dotfuscator[^]. The community edition of Dotfuscator merely scrambles string constants and function names; I think the professional version does much more (scrambles program flow, metadata, things like that). The community edition comes standard with Visual Studio 2005. A google search will turn up many more results..

      ------------ Cheers, Patrick

      1 Reply Last reply
      0
      • S ssmith721

        Can someone suggest a good Obfuscator? It needs to non-expensive and simple to use. I need to prevent someone from reverse engineering my code from the dlls that I provide using tools like Reflector. Thanks.

        J Offline
        J Offline
        jpg 0
        wrote on last edited by
        #3

        So far, the best obfuscator I used is C\C++. Anyway, I do have some tips to share regarding obfuscating .NET code. 1.) Don't bother if your code size is too small, say less than 1MB excluding embedded resources. It is because you simply don't have enough signatures for the obfuscator to mess with. 2.) Expect the obfuscated IL/code to be still, very readable. This is because of the various uses of the Base Class Library(BCL) in your code, and you can't(or shouldn't) obfuscate any BCL calls made from your code. Say you have a custom control class, obfuscated code might look like this: class a : Control{ public a(){ base.Text = "My Wonderful Control"; } } ~ or if you have code that deal with IO: static void b(string c){ FileStream d = File.OpenRead(c); ... d.Close(); } It won't took long before someone figure out that the param 'c' represents a file path. The bottom line is, if your code aren't doing anything complex, obfuscator can't do much. 3.) You cannot prevent someone from reverse engineering your code. 4.) You cannot prevent someone from reverse engineering your code. 5.) You cannot prevent someone from reverse engineering your code. 6.) Finally, use obfuscator as part of the build process, I do agree that if you will not release source code, you should obfuscate your code, but just don't take it too seriously.

        S 1 Reply Last reply
        0
        • J jpg 0

          So far, the best obfuscator I used is C\C++. Anyway, I do have some tips to share regarding obfuscating .NET code. 1.) Don't bother if your code size is too small, say less than 1MB excluding embedded resources. It is because you simply don't have enough signatures for the obfuscator to mess with. 2.) Expect the obfuscated IL/code to be still, very readable. This is because of the various uses of the Base Class Library(BCL) in your code, and you can't(or shouldn't) obfuscate any BCL calls made from your code. Say you have a custom control class, obfuscated code might look like this: class a : Control{ public a(){ base.Text = "My Wonderful Control"; } } ~ or if you have code that deal with IO: static void b(string c){ FileStream d = File.OpenRead(c); ... d.Close(); } It won't took long before someone figure out that the param 'c' represents a file path. The bottom line is, if your code aren't doing anything complex, obfuscator can't do much. 3.) You cannot prevent someone from reverse engineering your code. 4.) You cannot prevent someone from reverse engineering your code. 5.) You cannot prevent someone from reverse engineering your code. 6.) Finally, use obfuscator as part of the build process, I do agree that if you will not release source code, you should obfuscate your code, but just don't take it too seriously.

          S Offline
          S Offline
          ssmith721
          wrote on last edited by
          #4

          regarding -- You cannot prevent someone from reverse engineering your code. Does it mean I am effectively screwed when it comes to developing with .net and protecting my IP/efforts? What do the big component vendors do?

          D 1 Reply Last reply
          0
          • S ssmith721

            regarding -- You cannot prevent someone from reverse engineering your code. Does it mean I am effectively screwed when it comes to developing with .net and protecting my IP/efforts? What do the big component vendors do?

            D Offline
            D Offline
            Dan Neely
            wrote on last edited by
            #5

            no, you use legal actions to protect against IP theft just like you do with a c++ app. IIRC there are obfuscators that produce sufficiently mangled output that reflection tools will choke. Anyone who really wants will just look at the raw IL and work the same way they would with the output of a disassembled native code application.

            -- CleaKO The sad part about this instance is that none of the users ever said anything [about the problem]. Pete O`Hanlon Doesn't that just tell you everything you need to know about users?

            1 Reply Last reply
            0
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • Categories
            • Recent
            • Tags
            • Popular
            • World
            • Users
            • Groups