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. General Programming
  3. C#
  4. My Source Code is visible to all

My Source Code is visible to all

Scheduled Pinned Locked Moved C#
question
10 Posts 8 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.
  • L Offline
    L Offline
    Lost User
    wrote on last edited by
    #1

    Hi, I just found (and disapointed a bit) that after developing a huge app i used "Lutz Roeder's Reflector" to watch my app hierarchy just for fun and realised that all the source code was in the Disassembler panel, just the way i writed it, including private methods, i mean all!. Hey! What if my app is commercial software? then i'm giving it for free (the whole source code included). Is there a way to protect my code from being watch, crack or reverse engineered? I'm kind of lost. Thanx a LOT!

    A S L H K 5 Replies Last reply
    0
    • L Lost User

      Hi, I just found (and disapointed a bit) that after developing a huge app i used "Lutz Roeder's Reflector" to watch my app hierarchy just for fun and realised that all the source code was in the Disassembler panel, just the way i writed it, including private methods, i mean all!. Hey! What if my app is commercial software? then i'm giving it for free (the whole source code included). Is there a way to protect my code from being watch, crack or reverse engineered? I'm kind of lost. Thanx a LOT!

      A Offline
      A Offline
      Ashok Dhamija
      wrote on last edited by
      #2

      C# applications have this problem of transparent code. You can try using an Obfuscator (one is supplied with Visual Studio itself) but it will solve the problem only partially. As of today, there does not appear to be a perfect solution for this problem. While you can make it more difficult for others to see your code or to reverse engineer it, but unfortuately there does not appear to be a perfect solution which could stop it absolutely. Regards, Ashok Dhamija _____________________________ Padam Technologies

      L 1 Reply Last reply
      0
      • A Ashok Dhamija

        C# applications have this problem of transparent code. You can try using an Obfuscator (one is supplied with Visual Studio itself) but it will solve the problem only partially. As of today, there does not appear to be a perfect solution for this problem. While you can make it more difficult for others to see your code or to reverse engineer it, but unfortuately there does not appear to be a perfect solution which could stop it absolutely. Regards, Ashok Dhamija _____________________________ Padam Technologies

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

        Whow! It seems like a huge bug in the C# specification. 1) Whose this bug: C# or .NET Framework? 2) Does this happens in VB. NET? 3) Does this happens in C++ (native, not .NET) 4) Is C# 2.0 going to solve this issue? Thanx for your comment Ashok. I've got a lot of .NET commercial apps, i'll rip and steal lots of hard to write code....hehehe, no just kiding, i could but i wont. I disagree with ilegal stuff, that's why i posted this thread. Anyone else has something to say about this issue?

        A S 2 Replies Last reply
        0
        • L Lost User

          Hi, I just found (and disapointed a bit) that after developing a huge app i used "Lutz Roeder's Reflector" to watch my app hierarchy just for fun and realised that all the source code was in the Disassembler panel, just the way i writed it, including private methods, i mean all!. Hey! What if my app is commercial software? then i'm giving it for free (the whole source code included). Is there a way to protect my code from being watch, crack or reverse engineered? I'm kind of lost. Thanx a LOT!

          S Offline
          S Offline
          sreejith ss nair
          wrote on last edited by
          #4

          Known solution for your issue is already given by Ashok. Based on definision, 'Obfuscation refers to the deliberate act of nondestructively changing either the source code of a computer program or machine code when the program is in some compiled or binary form, so that it is not easy to understand or read' So once you apply this techinics in your source, it is very tough to read or understnd the flow of source or ideas invloved in it. Because it will rename with non identifiable string. You can have a look at the give url also. Hope this will give you some more ideas in Obfuscation.Obfuscation[^] :-D Sreejith Nair [ My Articles ]

          1 Reply Last reply
          0
          • L Lost User

            Whow! It seems like a huge bug in the C# specification. 1) Whose this bug: C# or .NET Framework? 2) Does this happens in VB. NET? 3) Does this happens in C++ (native, not .NET) 4) Is C# 2.0 going to solve this issue? Thanx for your comment Ashok. I've got a lot of .NET commercial apps, i'll rip and steal lots of hard to write code....hehehe, no just kiding, i could but i wont. I disagree with ilegal stuff, that's why i posted this thread. Anyone else has something to say about this issue?

            A Offline
            A Offline
            Ashok Dhamija
            wrote on last edited by
            #5

            Heinz Suez wrote: Whow! It seems like a huge bug in the C# specification. It is not a bug but a deliberate design because the .NET applications are not compiled to native code but to the intermediate language code (called MSIL). This MSIL code is then compiled to the native code at the time when the user runs the program by using what is known as Just-in-time compilation. It is this MSIL code which is converted by "Lutz Roeder's Reflector" or ILDASM (supplied with Visual Studio) to show legible code. Heinz Suez wrote: 1) Whose this bug: C# or .NET Framework? 2) Does this happens in VB. NET? This problem is with .NET framework, so the code written in VB .NET can also be seen in a similar manner. Heinz Suez wrote: 3) Does this happens in C++ (native, not .NET) No, it does not happen in C++ native code. But, C++ .NET will have the same problem. Heinz Suez wrote: 4) Is C# 2.0 going to solve this issue? In the Beta version available for C# 2.0 as of today, this problem exists. One does not know about the final C# 2.0 product but the chances are that this problem is not being solved even in that. Hope it answers your question. Regards, Ashok Dhamija _____________________________ Padam Technologies

            D 1 Reply Last reply
            0
            • A Ashok Dhamija

              Heinz Suez wrote: Whow! It seems like a huge bug in the C# specification. It is not a bug but a deliberate design because the .NET applications are not compiled to native code but to the intermediate language code (called MSIL). This MSIL code is then compiled to the native code at the time when the user runs the program by using what is known as Just-in-time compilation. It is this MSIL code which is converted by "Lutz Roeder's Reflector" or ILDASM (supplied with Visual Studio) to show legible code. Heinz Suez wrote: 1) Whose this bug: C# or .NET Framework? 2) Does this happens in VB. NET? This problem is with .NET framework, so the code written in VB .NET can also be seen in a similar manner. Heinz Suez wrote: 3) Does this happens in C++ (native, not .NET) No, it does not happen in C++ native code. But, C++ .NET will have the same problem. Heinz Suez wrote: 4) Is C# 2.0 going to solve this issue? In the Beta version available for C# 2.0 as of today, this problem exists. One does not know about the final C# 2.0 product but the chances are that this problem is not being solved even in that. Hope it answers your question. Regards, Ashok Dhamija _____________________________ Padam Technologies

              D Offline
              D Offline
              Dave Kreskowiak
              wrote on last edited by
              #6

              This is not a problem or a bug with either the C# language spec or the .NET Framework. It is an unfortunate side-effect of having some of the functionality that we enjoy in the .NET Framework, like Reflection. This "problem" will not be fixed in the .NET Framework 2.0 either. You use use Obfuscators to make i tharder to read the dissassembled code, but this doesn't hide everything. Public methods, fields, and whatnot can't be obfuscated because, well, you can't change the names of these items without making the public items very confusing to use. It's possible, with 3rd party tools, to compile the C# code to native code, but they also have their problems with portability, supportability, features that depend on reflection, and don't forget the cost of those tools. RageInTheMachine9532 "...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome

              1 Reply Last reply
              0
              • L Lost User

                Hi, I just found (and disapointed a bit) that after developing a huge app i used "Lutz Roeder's Reflector" to watch my app hierarchy just for fun and realised that all the source code was in the Disassembler panel, just the way i writed it, including private methods, i mean all!. Hey! What if my app is commercial software? then i'm giving it for free (the whole source code included). Is there a way to protect my code from being watch, crack or reverse engineered? I'm kind of lost. Thanx a LOT!

                L Offline
                L Offline
                leppie
                wrote on last edited by
                #7

                I have seen this so much it makes me sad. Do you really care if the person sees how you assign text to a Label? Hell NO! If you have propriety algorhytms, invest in a decent obfuscator/encrypter (not the crap u get for free), or hire a person that can code in C/C++, or learn yourself how to do it. Now secondly, even if someone reconstructes the source code, if your application is so big, dont you think it will take quite a few man hours to figure it out, learn what the code does? I doubt anyone will bother, would be easier just to buy the application. xacc-ide 0.0.15 now with C#, MSIL, C, XML, ASP.NET, Nemerle, MyXaml and HLSL coloring - Screenshots

                1 Reply Last reply
                0
                • L Lost User

                  Whow! It seems like a huge bug in the C# specification. 1) Whose this bug: C# or .NET Framework? 2) Does this happens in VB. NET? 3) Does this happens in C++ (native, not .NET) 4) Is C# 2.0 going to solve this issue? Thanx for your comment Ashok. I've got a lot of .NET commercial apps, i'll rip and steal lots of hard to write code....hehehe, no just kiding, i could but i wont. I disagree with ilegal stuff, that's why i posted this thread. Anyone else has something to say about this issue?

                  S Offline
                  S Offline
                  S Senthil Kumar
                  wrote on last edited by
                  #8

                  Heinz Suez wrote: huge bug in the C# specification It's not a bug, if you want the advantages of managed code (reflection, JIT, typesafe..), you need to generate code at a higher level than machine language and any such language is easier to disassemble. Heinz Suez wrote: 1) Whose this bug: C# or .NET Framework? 2) Does this happens in VB. NET? Yes, all compilers that generate managed code will result in your "problem". Heinz Suez wrote: Does this happens in C++ (native, not .NET) Native C++ compiler generates machine code. If you can disassemble machine code, then yes, there is a "problem" there too. Heinz Suez wrote: 4) Is C# 2.0 going to solve this issue? No. Heinz Suez wrote: Anyone else has something to say about this issue? If you have code that you don't want to be emitted in IL (and therefore disassembled), write that code in native C++ and use managed C++ to wrap it. Regards Senthil _____________________________ My Blog | My Articles | WinMacro

                  1 Reply Last reply
                  0
                  • L Lost User

                    Hi, I just found (and disapointed a bit) that after developing a huge app i used "Lutz Roeder's Reflector" to watch my app hierarchy just for fun and realised that all the source code was in the Disassembler panel, just the way i writed it, including private methods, i mean all!. Hey! What if my app is commercial software? then i'm giving it for free (the whole source code included). Is there a way to protect my code from being watch, crack or reverse engineered? I'm kind of lost. Thanx a LOT!

                    H Offline
                    H Offline
                    Heinz_
                    wrote on last edited by
                    #9

                    Ok, thanx to all for your answer....ok, ok, i understand, it's not a problem it's a feature. But that feature makes my commercial projects in open source projects. I'll try to obsfucate my code or try native C++.

                    1 Reply Last reply
                    0
                    • L Lost User

                      Hi, I just found (and disapointed a bit) that after developing a huge app i used "Lutz Roeder's Reflector" to watch my app hierarchy just for fun and realised that all the source code was in the Disassembler panel, just the way i writed it, including private methods, i mean all!. Hey! What if my app is commercial software? then i'm giving it for free (the whole source code included). Is there a way to protect my code from being watch, crack or reverse engineered? I'm kind of lost. Thanx a LOT!

                      K Offline
                      K Offline
                      Kythen
                      wrote on last edited by
                      #10

                      I just want to make it clear that there is no way, whatsoever, to completely protect your code from being reverse engineered. If code can be executed, it can be reversed. It does not matter whether it's written in .NET, native C++, VB, COBOL, or any other language. I know it's a rather sobering fact, but it's one that all developers of commercial software need to realize. What you should do is worry less about this and try to focus on realistic security goals. You can't stop reverse engineering, but you can make it as boring and annoying as possible. Go ahead and use obfuscators/encryptors/packers, but make sure that they do not negatively affect the user experience. Test your app thoroughly after being protected. If you provide a trial or demo of your app, do no include full functionality. I don't mean disable some functions here. I mean don't include them at all. Disabled code can be enabled again. Finally, if you have some licensing or registration scheme, accept that pirates will be able to reverse it and shoot for simply trying to keep your users honest. If you are ambitious and have a significant amount of time, have your licensing use strong encryption implemented correctly. You can also use things like watermarks to track pirated copies of your software. Basically, what you ask is impossible, but do your best and don't panic.

                      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