My Source Code is visible to all
-
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!
-
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!
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
-
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
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?
-
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!
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 ]
-
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?
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
-
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
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
-
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!
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
-
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?
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
-
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!
-
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!
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.