Http://msdn.microsoft.com/zh-cn/library/ms227241.aspx
. Net obfuscator -- dotfuscator community edition by preemptive Solutions Independent GUI Quick Start
This section describes how to use the independent GUI of dotfuscator. For a complete guide to the dotfuscator user interface, see GUI reference.
Step 1 -- start dotfuscator Gui
- Click Start |Program"|" Preemptive solutions "|" dotfuscator Professional Edition 4.0 "|" dotfuscator ".
- The "about dotfuscator professional" dialog box appears. Click or press any key to continue, or wait for 5 seconds.
Step 2 -- create a default Project
- Select "create new project" and click "OK ". The main dotfuscator project window appears, with the "input" tab selected.
- Here, select the Assembly you want to blur.
- Click Browse ".
- Browse:
C: \ Program Files \ preemptive solutions \ dotfuscator Professional Edition 4.0 \ samples \ CS \ gettingstarted \ bin \ debug
- Select gettingstarted.exe.
- Click Open ". The path of the executable file is now displayed in the list box under "Input File.
- Select "file" | "Save project" to save the project.
- In the "Save project" dialog box, go:
C: \ Program Files \ preemptive solutions \ dotfuscator Professional Edition 4.0 \ samples \ CS \ gettingstarted \
- In the "file name" field, enter "dotfuscator. xml" and click "save ".
Step 3 -- generate a project
- Click the generate tab. The "target directory" is filled with $ {configdir} \ dotfuscated by default. Note: $ {configdir} is a variable that stores the path pointing to the dotfuscator configuration file.
- Now you can blur the project. Click Generate ". Wait a moment and wait for the dotfuscator to generate the fuzzy processing version of The helloworld application. The Fuzzy-processed assembly is now stored in:
C: \ Program Files \ preemptive solutions \ dotfuscator Professional Edition 4.0 \ samples \ CS \ gettingstarted \ dotfuscated
Now, you can go to the "output" tab and browse the fuzzy processed symbols, or view the renamed ing file (Map. XML) created by dotfuscator in the output directory ). If you want to, you can even run the fuzzy processing program. Everything is ready in advance, and you can perform fuzzy processing on the application with a little configuration.
Next, you can use some more powerful functions of dotfuscator with just a few more configurations.
Step 4 -- configure the project
-
- Click the options tab.
-
- Set the "generate progress" attribute to "details ". This enables dotfuscator to provide more information about its execution progress at the bottom of the "generate" tab.
-
- Set "Issue debugging symbol" to "yes ". Setting this property tells dotfuscator to create a PDB file for each output assembly. The debugger can then use these files to provide useful information in the debugging session. Generally, these symbolic files contain information such as the row number, source file name, and local variable name. These PDB files and output assembly are located in the output directory.
-
- Set "Disable rename", "Disable control flow", "Disable string encryption", and "Disable remove" to "no ". You can precisely control what kind of transformation the dotfuscator will apply to the Assembly. The above are the functions we will configure and use in the following steps.
-
- Click the rename tab. Rename the method and field to an incomprehensible nameCodePerform fuzzy processing. By default, this option is enabled. to exclude certain items from the rename process, You must select these items. For this application, you do not need to exclude any items.
-
- Click the "RENAME options" subtab. Select "use enhanced overload induction ". This function allows up to 15% redundancy in renaming methods and fields. In the source language (such as C # and VB), the method return type or field type is not allowed to be overloaded, which further hinders the use of the anti-compiler.
- Note that the ing output file text box is $ {configdir} \ dotfuscated \ map. xml by default.
-
- Select "output as HTML" to obtain a useful report containing rename information and statistics about your application. This report will be output to the same directory as the ing file. The default location is $ {configdir} \ dotfuscated \ map.html.
-
- Click the control flow tab. Control Flow fuzzy processing combines branch, condition, and loop structures (such as if, for, and while) that can generate valid forward (executable) logic, however, the results will produce non-deterministic semantic results during decompilation. In other words, the code runs as before, but the anti-compiler cannot regenerate the original code.
-
- Click the "string encryption" tab. String encryption will disrupt the strings in the application. For example, some people who try to skip the registration and verification processes can search for strings that require users to enter serial numbers. After finding the string, they can find the command near it and change the logic. String encryption makes this process difficult because their search results will be empty.
-
- String encryption is based on inclusion. Therefore, you must check the root flag assembly check box of the tree displayed in the left pane to include all methods in the input assembly.
-
- Click the remove tab. The remove operation instructs dotfuscator to detect and remove unused types, methods, and fields. This may save a lot of space in the final application.
-
- To make the removal take effect, dotfuscator needs to know the entry point of the application. In this example, the entry point is the standard "Main" method, and dotfuscator can determine this point without additional configuration.
Step 5 -- regenerate the project
- Click Generate. Now you can blur the project. As before, the fuzzy-processed assembly is stored in the following directory:
C: \ Program Files \ preemptive solutions \ dotfuscator Professional Edition 4.0 \ samples \ CS \ gettingstarted \ dotfuscated
Step 6 -- browse output
- Click the "output" tab. Now you can navigate to the tree, which shows how dotfuscator blur the code.
- Expand the root tree and all subtree. Pay attention to the Blue Diamond icon. These are the renaming methods and fields. The original names of each icon are displayed at the parent level. Dotfuscator has renamed each method and field, making it almost impossible to interpret the purpose of each method. This can greatly affect the reverse engineering process of the Code.
- Note that the currently highlighted saysomething and set_name methods also have the name attribute. Dotfuscator detects that these items are not used in this application. As a result, the simplified function of dotfuscator can remove these items to generate smaller applications.
Subsequent steps
Now, you have used the GUI for fuzzy processing. Next, you can learn how to use the command line interface to execute the same task. Alternatively, you can check the output Assembly after fuzzy processing in detail and view the effect of fuzzy processing.