reprinted from:http://hi.baidu.com/free3people/item/0fba87d34091df15d80e4400
Reprinted from: http://hi.baidu.com/free3people/item/0fba87d34091df15d80e4400
Dotfuscator how to confuse the. NET program protection for program code protection, there are a lot of information on the Internet, some say that the confusion, some say encryption, I compare the method of support confusion, so that can let the anti-compilation workers, dizziness for a while, haha joking. For encryption if not the last resort, I think there is no need. The encryption performance consumes a large ratio.
Dotfuscator believes that many of the people who do the program know that Dotfuscator and Xenocode are code obfuscation tools that are a tool for protecting code security. Since we're talking about. NET programs, that's of course to rip Dotfuscator, all of them belong to Microsoft products, compatibility is definitely a natural pair.
Gossip does not say much, say the most direct thing, the most practical thing.
The following is the use of Dotfuscator, I use Dotfuscator Professional Edition 4.2 version, Dotfuscator version of how good, specifically see Microsoft Official note
http://msdn.microsoft.com/zh-cn/library/ms227255 (v=vs.80). aspx
Usage one uses default obfuscation
Open the software click on the Input tab, add the DLL or EXE, Libray do not choose, otherwise, almost all of the public function variables, will not be encrypted and confused, can easily see the code
Click the Build tab, and in the target directory (destination directory), select the location where you want to generate the DLL, such as the F Drive:/confuse directory
Other not set, direct point build, there will be prompted whether to save the project. Click No
Build the DLL, and then decompile it with. NET Reflector to see.
The result is that the class name is renamed and the rename of the method name all becomes A,B,C
There is a drawback to this approach, and for a three-tier architecture, his DAL layer statement is still there. Easier to read.
Usage two custom obfuscation, class name, method name unchanged.
But the content inside the method becomes only one sentence//This item is obfuscated and can not be translated.
Open Software Click on the Input tab to add DLL or EXE
In options, this is the global configuration option:
Set Disable string encryption to No, that is, string encryption is enabled, check Disable control flow, dsiable renaming to No, that is, control flow and obfuscation are turned on, other default
Rename option Check "use enhanced overload induction" (using enhanced mode), note: Do not check the "Do not suppress on serializable types", that is, the variable of the serialized type is not encrypted, Otherwise, the compilation may be abnormal, "renaming Scheme" select "unprintable" (non-printable characters, that is garbled), you can also choose other such as lowercase letters, uppercase characters, numbers way.
Click the Build tab, and in the target directory (destination directory), select the location where you want to generate the DLL, such as the F Drive:/confuse directory
Other not set, direct point build, there will be prompted whether to save the project. Click No
The generated DLL is re-compiled with. NET Reflector to see.
You can see that the code in the body of the function has not been seen, prompting: "This item was obfuscated and can not be translated." The string also becomes garbled, and the function name is not visible.
Seems to be more powerful. But there is one drawback. Because the DLL is called by the Web program, the Web program calls the method, before using the class name, and the method name. So it is recommended not to do rename this step.
That is, when the options option, dsiable renaming is set to No. and rename inside don't set the
Dotfuscator is characterized by confusion, a very important aspect is renaming. Renaming, however, leads to an issue that cannot be referenced.
This requires a few DLLs at the same time, for the Web, page CS can be published as a DLL, all the layers of the DLL is confused, can solve a lot of problems. There is no duplicate name for the Web DLL to ensure that the paging file can be accessed.
In the case of confusion, the capacity will become smaller. I don't think it's absolute, my capacity is getting bigger .
The following belong to this
After the test, I think still can play a certain to prevent rookie level, but really want to seriously look, it is easy to read.
Another thing is that some of their own writing class, already object name, method is unable to change the name, so it is not safe, especially the most important did not do.
Dotfuscator How to use