Hide source code of windows c # application

I wrote a Windows application using C # .Net 2.0 and I want to do something that hides the source code, so when anyone uses the refactoring tool, they cannot see the source code. I used dotfuscator, but it just changed the function names, but not all of the source code.

UPDATE: I want to hide the source code, not because of hiding the key, but in order to hide how the code works.

Thank,

-1


source to share


7 replies


Well, the source code is yours, and unless you explicitly provide it, you can only provide the compiled binaries.

These compiled binaries are now IL code. To prevent someone from "decompiling" and turning their IL development back to source code, you need to obfuscate the IL code. This is done using a code obfuscator. There are many on the market.



You've already done this with a tofusser, however you are saying that it only changed the function names, not the entire source code. It looks like you are using the dotfuscator version that comes with Visual Studio. It is actually a "community edition" and contains only a fraction of the functionality of the "professional edition". See this link for the community versus professional edition comparison matrix.

If you want more obfuscation of your code (in particular to protect against people using tools like Reflector), you will need the professional version of Dotfuscator or another obfuscator product that contains similar functionality.

+2


source


IL is by definition very expressive in terms of what remains in the body; you just need to either:



  • find a better (readable: more expensive) obfuscator
  • keep the key source under your control (e.g. via a web service, so the key logic is never on the client).
+3


source


Once people get a hand on their binaries, they can reprogram it. Its easier with languages ​​that are compiled to bytecode (C # and Java), and more difficult with languages ​​that are compiled to processor-specific binaries, but always possible. Look at him.

+1


source


+1


source


There are limitations that length obfuscation software can hide the content of methods by fundamentally changing the internals without affecting correctness (and of course performance), is extremely difficult.

Notably, code with many small methods becomes much harder to understand when it gets confused, especially when methods are used to exchange names between methods that appear to interfere with the eye but not the runtime.

Some obfuscators allow you to generate constructs that cannot be represented in any of the target languages, the set of all operations allowed in CIL, for example, is much larger than expressed through C # or even C ++ / CLI. However, this often requires explicit configuration to enable (as this can cause problems). This can cause decompilers to crash, but some of them will just do their best and work around it (perhaps in the event that it fails).

If you redistribute pdb with your application, more can be inferred due to the extra characters.

0


source


Simply renaming symbols is not a sufficient obstacle to reverse engineer your application. You also need control flow obfuscation, string encryption, resource protection, metadata reduction, reflector protection, etc. Etc. Try Crypto Obfuscator , which supports all of this and more.

0


source


Create a setup project for your application and install the setup on your friends computer like software. There are 5 steps to create an installation project using Microsoft Visual Studio.

Step 1: Create a sample .Net project. I named this project "TestProject" after that creating the project in release mode. Step 2: Add a new project by right clicking on your solution and select the setup project and specify it as "TestSetup". Step 3: Right click the customization project and add primary output and select the displayed project. Step 4: Right-click the setup project and select View - File System β†’ Applications Folder. Now copy what you want to be in the installation folder. Step 5: Now go to our project folder and open the release folder where you can get the setup.exe file here. Double click the TestSetup file and install the project on your own and another computer.

0


source







All Articles