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 suggestions

.Net obfuscator suggestions

Scheduled Pinned Locked Moved The Lounge
csharpc++databasesql-serverdotnet
18 Posts 12 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.
  • H Harvey Saayman

    Hey guys The system I've been developing for the past two years will be going into a live beta phase in a few weeks time, I cant wait to see it out there doing its thing :) I'm very excited! But before this can happen I need to obfuscate my binaries, I've had a look at xenocode's postbuild and dotfuscator so far. Can anyone please recommend and share experiences? It need not be free. Thanks <edit> Looks like the chaps at xenocode have been busy since I last evaluated their product postbuild two years ago.

    Key Benefits

    \* Protects .NET code against decompilation and reverse engineering
    \* Converts .NET applications to native binaries that run without the .NET Framework
    \* Embeds SQL Server Express databases directly into the application binary
    \* Eliminates compatibility errors by linking all application components into a single EXE
    \* Optimizes application performance with metadata reduction and code pruning
    

    More info here[^] I'd really like to hear from someone else who uses this, especially about the Converts .NET applications to native binaries that run without the .NET Framework feature. </edit>

    Harvey Saayman - South Africa Software Developer .Net, C#, SQL you.suck = (you.Occupation == jobTitles.Programmer && you.Passion != Programming) 1000100 1101111 1100101 1110011 100000 1110100 1101000 1101001 1110011 100000 1101101 1100101 1100001 1101110 100000 1101001 1101101 100000 1100001 100000 1100111 1100101 1100101 1101011 111111

    N Offline
    N Offline
    N a v a n e e t h
    wrote on last edited by
    #2

    Why are you obfuscating your code? Do you thing obfuscation can stop reverse engineering? IMO, .NET obfuscators are all crap and there is no point in obfuscating your code. You could have written the piece of code that needs to be secured as an un-managed component. Probably with C++. If you have code that is insecure on client machine, you can execute that on your own server by providing a web service/WCF interface rather than providing an obfuscated assembly. I believe obfuscation will also makes reflection tough. :)

    Navaneeth How to use google | Ask smart questions

    H 1 Reply Last reply
    0
    • N N a v a n e e t h

      Why are you obfuscating your code? Do you thing obfuscation can stop reverse engineering? IMO, .NET obfuscators are all crap and there is no point in obfuscating your code. You could have written the piece of code that needs to be secured as an un-managed component. Probably with C++. If you have code that is insecure on client machine, you can execute that on your own server by providing a web service/WCF interface rather than providing an obfuscated assembly. I believe obfuscation will also makes reflection tough. :)

      Navaneeth How to use google | Ask smart questions

      H Offline
      H Offline
      hairy_hats
      wrote on last edited by
      #3

      The "need" to obfuscate (or rather desirability of obfuscation) is IMO a major flaw in the design of .NET. I can understand that reflection requires that function calls be available but the source code of the contents of those functions, no. Making it necessary to write another component in another language in order to get a secured component is just stupid. Of course all code can be reverse engineered given enough resources but .NET hands you code on a plate. They could surely have included a

      secure { }

      keyword that prevented reflection on the code it brackets.

      S 1 Reply Last reply
      0
      • H Harvey Saayman

        Hey guys The system I've been developing for the past two years will be going into a live beta phase in a few weeks time, I cant wait to see it out there doing its thing :) I'm very excited! But before this can happen I need to obfuscate my binaries, I've had a look at xenocode's postbuild and dotfuscator so far. Can anyone please recommend and share experiences? It need not be free. Thanks <edit> Looks like the chaps at xenocode have been busy since I last evaluated their product postbuild two years ago.

        Key Benefits

        \* Protects .NET code against decompilation and reverse engineering
        \* Converts .NET applications to native binaries that run without the .NET Framework
        \* Embeds SQL Server Express databases directly into the application binary
        \* Eliminates compatibility errors by linking all application components into a single EXE
        \* Optimizes application performance with metadata reduction and code pruning
        

        More info here[^] I'd really like to hear from someone else who uses this, especially about the Converts .NET applications to native binaries that run without the .NET Framework feature. </edit>

        Harvey Saayman - South Africa Software Developer .Net, C#, SQL you.suck = (you.Occupation == jobTitles.Programmer && you.Passion != Programming) 1000100 1101111 1100101 1110011 100000 1110100 1101000 1101001 1110011 100000 1101101 1100101 1100001 1101110 100000 1101001 1101101 100000 1100001 100000 1100111 1100101 1100101 1101011 111111

        R Offline
        R Offline
        Rajesh R Subramanian
        wrote on last edited by
        #4

        Hello, I (the peers working on .NET) will recommend SmartAssembly[^]. They're very happy with it. :)

        It is a crappy thing, but it's life -^ Carlo Pallini

        H W 2 Replies Last reply
        0
        • R Rajesh R Subramanian

          Hello, I (the peers working on .NET) will recommend SmartAssembly[^]. They're very happy with it. :)

          It is a crappy thing, but it's life -^ Carlo Pallini

          H Offline
          H Offline
          Harvey Saayman
          wrote on last edited by
          #5

          Thanks Rajesh :) Downloading trail...

          Harvey Saayman - South Africa Software Developer .Net, C#, SQL you.suck = (you.Occupation == jobTitles.Programmer && you.Passion != Programming) 1000100 1101111 1100101 1110011 100000 1110100 1101000 1101001 1110011 100000 1101101 1100101 1100001 1101110 100000 1101001 1101101 100000 1100001 100000 1100111 1100101 1100101 1101011 111111

          R J 2 Replies Last reply
          0
          • H Harvey Saayman

            Thanks Rajesh :) Downloading trail...

            Harvey Saayman - South Africa Software Developer .Net, C#, SQL you.suck = (you.Occupation == jobTitles.Programmer && you.Passion != Programming) 1000100 1101111 1100101 1110011 100000 1110100 1101000 1101001 1110011 100000 1101101 1100101 1100001 1101110 100000 1101001 1101101 100000 1100001 100000 1100111 1100101 1100101 1101011 111111

            R Offline
            R Offline
            Rajesh R Subramanian
            wrote on last edited by
            #6

            Harvey Saayman wrote:

            Downloading trail...

            I hate it when there's a trail of the stuff that I download... ;)

            It is a crappy thing, but it's life -^ Carlo Pallini

            1 Reply Last reply
            0
            • H Harvey Saayman

              Hey guys The system I've been developing for the past two years will be going into a live beta phase in a few weeks time, I cant wait to see it out there doing its thing :) I'm very excited! But before this can happen I need to obfuscate my binaries, I've had a look at xenocode's postbuild and dotfuscator so far. Can anyone please recommend and share experiences? It need not be free. Thanks <edit> Looks like the chaps at xenocode have been busy since I last evaluated their product postbuild two years ago.

              Key Benefits

              \* Protects .NET code against decompilation and reverse engineering
              \* Converts .NET applications to native binaries that run without the .NET Framework
              \* Embeds SQL Server Express databases directly into the application binary
              \* Eliminates compatibility errors by linking all application components into a single EXE
              \* Optimizes application performance with metadata reduction and code pruning
              

              More info here[^] I'd really like to hear from someone else who uses this, especially about the Converts .NET applications to native binaries that run without the .NET Framework feature. </edit>

              Harvey Saayman - South Africa Software Developer .Net, C#, SQL you.suck = (you.Occupation == jobTitles.Programmer && you.Passion != Programming) 1000100 1101111 1100101 1110011 100000 1110100 1101000 1101001 1110011 100000 1101101 1100101 1100001 1101110 100000 1101001 1101101 100000 1100001 100000 1100111 1100101 1100101 1101011 111111

              realJSOPR Offline
              realJSOPR Offline
              realJSOP
              wrote on last edited by
              #7

              You can't entirely obfuscate WPF apps. I can hardly wait until my boss realizes that...

              "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
              -----
              "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

              R O 2 Replies Last reply
              0
              • realJSOPR realJSOP

                You can't entirely obfuscate WPF apps. I can hardly wait until my boss realizes that...

                "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                -----
                "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                R Offline
                R Offline
                Rajesh R Subramanian
                wrote on last edited by
                #8

                So, you'll propose VB .NET to him instead? :)

                It is a crappy thing, but it's life -^ Carlo Pallini

                1 Reply Last reply
                0
                • H Harvey Saayman

                  Hey guys The system I've been developing for the past two years will be going into a live beta phase in a few weeks time, I cant wait to see it out there doing its thing :) I'm very excited! But before this can happen I need to obfuscate my binaries, I've had a look at xenocode's postbuild and dotfuscator so far. Can anyone please recommend and share experiences? It need not be free. Thanks <edit> Looks like the chaps at xenocode have been busy since I last evaluated their product postbuild two years ago.

                  Key Benefits

                  \* Protects .NET code against decompilation and reverse engineering
                  \* Converts .NET applications to native binaries that run without the .NET Framework
                  \* Embeds SQL Server Express databases directly into the application binary
                  \* Eliminates compatibility errors by linking all application components into a single EXE
                  \* Optimizes application performance with metadata reduction and code pruning
                  

                  More info here[^] I'd really like to hear from someone else who uses this, especially about the Converts .NET applications to native binaries that run without the .NET Framework feature. </edit>

                  Harvey Saayman - South Africa Software Developer .Net, C#, SQL you.suck = (you.Occupation == jobTitles.Programmer && you.Passion != Programming) 1000100 1101111 1100101 1110011 100000 1110100 1101000 1101001 1110011 100000 1101101 1100101 1100001 1101110 100000 1101001 1101101 100000 1100001 100000 1100111 1100101 1100101 1101011 111111

                  L Offline
                  L Offline
                  Lost User
                  wrote on last edited by
                  #9

                  Harvey Saayman wrote:

                  I need to obfuscate my binaries

                  Why? If it's required by your boss, well, ok.. but otherwise, honestly why? What is it going to do? It might deter some wannabe hacker - who wouldn't be a real danger anyway..

                  xenocode wrote:

                  * Protects .NET code against decompilation and reverse engineering

                  This is guaranteed to be a lie. Sure they can make .NET decompilers choke on it, but it won't protect against reverse engineering (nothing truly can)

                  1 Reply Last reply
                  0
                  • H hairy_hats

                    The "need" to obfuscate (or rather desirability of obfuscation) is IMO a major flaw in the design of .NET. I can understand that reflection requires that function calls be available but the source code of the contents of those functions, no. Making it necessary to write another component in another language in order to get a secured component is just stupid. Of course all code can be reverse engineered given enough resources but .NET hands you code on a plate. They could surely have included a

                    secure { }

                    keyword that prevented reflection on the code it brackets.

                    S Offline
                    S Offline
                    Simon P Stevens
                    wrote on last edited by
                    #10

                    I disagree. Ultimately everything has to be compiled to binary. Binary isn't encrypted or protected. What's the point of obfuscating some arbitrary middle layer. native code is just as easily reversible, except less people know how to do it because these isn't a simple tool like reflector. Just look at the number of cracked applications there are out there, that just proves that native code can easily be reversed and modified. If you have anything that you consider to be valuable, you need to take steps to protect it, even if you wrote it in a native language. The fact that .net code is so easily reversible doesn't make any difference. If anything it improves the situation because now people are aware that they mustn't put valuable IP unprotected in source code.

                    Simon

                    H 1 Reply Last reply
                    0
                    • S Simon P Stevens

                      I disagree. Ultimately everything has to be compiled to binary. Binary isn't encrypted or protected. What's the point of obfuscating some arbitrary middle layer. native code is just as easily reversible, except less people know how to do it because these isn't a simple tool like reflector. Just look at the number of cracked applications there are out there, that just proves that native code can easily be reversed and modified. If you have anything that you consider to be valuable, you need to take steps to protect it, even if you wrote it in a native language. The fact that .net code is so easily reversible doesn't make any difference. If anything it improves the situation because now people are aware that they mustn't put valuable IP unprotected in source code.

                      Simon

                      H Offline
                      H Offline
                      hairy_hats
                      wrote on last edited by
                      #11

                      Simon Stevens wrote:

                      What's the point of obfuscating some arbitrary middle layer.

                      To make it harder to copy. Would you send out a copy of your source code with a closed-source app? I doubt it. .NET isn't much different. Compiled native code makes it much harder to reproduce your IP. Cracked apps are usually just a small patch to get around the protection, not a recompilation of a program with the protection removed. .NET allows you to effectively see the source code which makes it much easier to copy your IP.

                      S 1 Reply Last reply
                      0
                      • R Rajesh R Subramanian

                        Hello, I (the peers working on .NET) will recommend SmartAssembly[^]. They're very happy with it. :)

                        It is a crappy thing, but it's life -^ Carlo Pallini

                        W Offline
                        W Offline
                        wout de zeeuw
                        wrote on last edited by
                        #12

                        I second smartassembly, I've been using it for a couple of years. Very good product.

                        Wout

                        1 Reply Last reply
                        0
                        • H hairy_hats

                          Simon Stevens wrote:

                          What's the point of obfuscating some arbitrary middle layer.

                          To make it harder to copy. Would you send out a copy of your source code with a closed-source app? I doubt it. .NET isn't much different. Compiled native code makes it much harder to reproduce your IP. Cracked apps are usually just a small patch to get around the protection, not a recompilation of a program with the protection removed. .NET allows you to effectively see the source code which makes it much easier to copy your IP.

                          S Offline
                          S Offline
                          Simon P Stevens
                          wrote on last edited by
                          #13

                          Steve_Harris wrote:

                          Compiled native code makes it much harder to reproduce your IP.

                          No, that's my point. I don't think it does, at least not significantly. There are plenty of native debuggers and reverse tools out there. Ok, some inexperienced kid might not be able to do it, but it's still possible. Which to me makes things worse. A lot of people seem to think that compiling c++ code means it is protected and it really isn't. This false belief is more dangerous as they won't do anything to protect something that is genuinely important.

                          Steve_Harris wrote:

                          Would you send out a copy of your source code with a closed-source app?

                          I don't see why not. (I've never written a closed source app) Like I say, to someone who wants it, I don't really think the source is that hidden from then anyway.

                          Simon

                          1 Reply Last reply
                          0
                          • H Harvey Saayman

                            Hey guys The system I've been developing for the past two years will be going into a live beta phase in a few weeks time, I cant wait to see it out there doing its thing :) I'm very excited! But before this can happen I need to obfuscate my binaries, I've had a look at xenocode's postbuild and dotfuscator so far. Can anyone please recommend and share experiences? It need not be free. Thanks <edit> Looks like the chaps at xenocode have been busy since I last evaluated their product postbuild two years ago.

                            Key Benefits

                            \* Protects .NET code against decompilation and reverse engineering
                            \* Converts .NET applications to native binaries that run without the .NET Framework
                            \* Embeds SQL Server Express databases directly into the application binary
                            \* Eliminates compatibility errors by linking all application components into a single EXE
                            \* Optimizes application performance with metadata reduction and code pruning
                            

                            More info here[^] I'd really like to hear from someone else who uses this, especially about the Converts .NET applications to native binaries that run without the .NET Framework feature. </edit>

                            Harvey Saayman - South Africa Software Developer .Net, C#, SQL you.suck = (you.Occupation == jobTitles.Programmer && you.Passion != Programming) 1000100 1101111 1100101 1110011 100000 1110100 1101000 1101001 1110011 100000 1101101 1100101 1100001 1101110 100000 1101001 1101101 100000 1100001 100000 1100111 1100101 1100101 1101011 111111

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

                            From testing with reflector a few months ago, SmartAssembly was the only one to mess stuff up until it couldn't load at all. XHEO CodeVeil, pvLog.net, and DOtfuscator Pro both messed things up to the point that method contents weren't displayable. To make our customer happy (all the other components of the system they were selling were written in C++), we ended up buying Salamander[^] which compiled everything into native code.

                            It is a truth universally acknowledged that a zombie in possession of brains must be in want of more brains. -- Pride and Prejudice and Zombies

                            1 Reply Last reply
                            0
                            • realJSOPR realJSOP

                              You can't entirely obfuscate WPF apps. I can hardly wait until my boss realizes that...

                              "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                              -----
                              "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                              O Offline
                              O Offline
                              Obliterator
                              wrote on last edited by
                              #15

                              really? why not?

                              -- The Obliterator

                              realJSOPR 1 Reply Last reply
                              0
                              • O Obliterator

                                really? why not?

                                -- The Obliterator

                                realJSOPR Offline
                                realJSOPR Offline
                                realJSOP
                                wrote on last edited by
                                #16

                                I don't know for sure, but the XAML/BAML has something to do with it.

                                "Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997
                                -----
                                "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001

                                1 Reply Last reply
                                0
                                • H Harvey Saayman

                                  Thanks Rajesh :) Downloading trail...

                                  Harvey Saayman - South Africa Software Developer .Net, C#, SQL you.suck = (you.Occupation == jobTitles.Programmer && you.Passion != Programming) 1000100 1101111 1100101 1110011 100000 1110100 1101000 1101001 1110011 100000 1101101 1100101 1100001 1101110 100000 1101001 1101101 100000 1100001 100000 1100111 1100101 1100101 1101011 111111

                                  J Offline
                                  J Offline
                                  jmcc2k
                                  wrote on last edited by
                                  #17

                                  A good (and cheaper) alternative is Crypto Obfuscator

                                  1 Reply Last reply
                                  0
                                  • H Harvey Saayman

                                    Hey guys The system I've been developing for the past two years will be going into a live beta phase in a few weeks time, I cant wait to see it out there doing its thing :) I'm very excited! But before this can happen I need to obfuscate my binaries, I've had a look at xenocode's postbuild and dotfuscator so far. Can anyone please recommend and share experiences? It need not be free. Thanks <edit> Looks like the chaps at xenocode have been busy since I last evaluated their product postbuild two years ago.

                                    Key Benefits

                                    \* Protects .NET code against decompilation and reverse engineering
                                    \* Converts .NET applications to native binaries that run without the .NET Framework
                                    \* Embeds SQL Server Express databases directly into the application binary
                                    \* Eliminates compatibility errors by linking all application components into a single EXE
                                    \* Optimizes application performance with metadata reduction and code pruning
                                    

                                    More info here[^] I'd really like to hear from someone else who uses this, especially about the Converts .NET applications to native binaries that run without the .NET Framework feature. </edit>

                                    Harvey Saayman - South Africa Software Developer .Net, C#, SQL you.suck = (you.Occupation == jobTitles.Programmer && you.Passion != Programming) 1000100 1101111 1100101 1110011 100000 1110100 1101000 1101001 1110011 100000 1101101 1100101 1100001 1101110 100000 1101001 1101101 100000 1100001 100000 1100111 1100101 1100101 1101011 111111

                                    R Offline
                                    R Offline
                                    rogerht
                                    wrote on last edited by
                                    #18

                                    We've evaluated several obfuscation tools and ended up purchasing CliSecure by SecureTeam. Their tool implements advanced obfuscation techniques such as control flow obfuscation & cross assembly obfuscation, however their real competitive edge is their code protection solution. After protecting your assemblies all method bodies appears empty, I've been told that the code is handed to the JIT compiler on a per method basis just when needed. This was the perfect solution for us since we didn't have to go through additional QA cycle once protecting our app due to inconsistencies that are normally introduced when using an obfuscator. Last but not least their support is superb. We got immediate response for any question asked and were satisfied with the quality on feedback we've got.

                                    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