|
1 | 1 | # ConfuserExx |
2 | 2 |
|
3 | 3 | [![CI][img_ci]][ci] |
| 4 | +[![Tests][img_test]][test] |
4 | 5 | [![CodeQL][img_codeql]][codeql] |
5 | 6 | [![MIT License][img_license]][license] |
6 | 7 |
|
7 | | -An actively maintained fork of [ConfuserEx][upstream] — an open-source protector for .NET applications. |
8 | | - |
9 | | -> The original [mkaring/ConfuserEx][upstream] has been dormant since 2022. This fork includes bug fixes, new features, and modern .NET support. |
10 | | -
|
11 | | -## Features |
12 | | - |
13 | | -* Supports .NET Framework 2.0/3.5/4.x, .NET Standard 2.0, .NET Core, .NET 5+/6/7/8+ |
14 | | -* Symbol renaming (Support WPF/BAML) |
15 | | -* Protection against debuggers/profilers |
16 | | -* Protection against memory dumping |
17 | | -* Protection against tampering (method encryption) |
18 | | -* Control flow obfuscation |
19 | | -* Constant/resources encryption |
20 | | -* Reference hiding proxies |
21 | | -* Disable decompilers |
22 | | -* Embedding dependency |
23 | | -* Compressing output |
24 | | -* Extensible plugin API |
25 | | -* Roslyn code analysis integration |
26 | | -* Auto-detection of .NET runtime paths for modern framework support |
27 | | - |
28 | | -## What's improved over upstream |
29 | | - |
30 | | -* Fixed WPF resource renaming, .NET Standard obfuscation, control flow protection |
31 | | -* Serialization-aware renaming (DataContract, DataMember, JsonProperty) |
32 | | -* Graceful handling of external/unresolvable assemblies (no more crashes) |
33 | | -* Auto-detection of .NET Core/5+/6/7/8+ runtime assembly paths |
34 | | -* CLI `--snkey` and `--snkeypass` options for CI/CD signing |
35 | | -* Wildcard module loading in `.crproj` files |
36 | | -* Roslyn analyzers (NetAnalyzers + Roslynator) for code quality |
37 | | -* GitHub Actions CI/CD with automatic releases |
38 | | -* Better error messages for .NET 6+ native host executables |
39 | | - |
40 | | -## Usage |
| 8 | +An actively maintained .NET obfuscator. Protects assemblies from .NET Framework 2.0 through .NET 10+. |
41 | 9 |
|
42 | | -```bash |
43 | | -Confuser.CLI.exe <path to project file> |
44 | | -``` |
45 | | - |
46 | | -The project file is a ConfuserEx Project (`*.crproj`). |
47 | | -The format of project file can be found in [docs/ProjectFormat.md][project_format]. |
48 | | - |
49 | | -### CLI Options |
50 | | - |
51 | | -``` |
52 | | --n|noPause : no pause after finishing protection |
53 | | --o|out : specifies output directory |
54 | | --probe : specifies probe directory |
55 | | --plugin : specifies plugin path |
56 | | --debug : specifies debug symbol generation |
57 | | --snkey : specifies strong name key file path |
58 | | --snkeypass : specifies strong name key password |
59 | | -``` |
60 | | - |
61 | | -## Building from Source |
62 | | - |
63 | | -### Prerequisites |
| 10 | +The original [mkaring/ConfuserEx][mkaring] has been dormant since 2022. This fork ships bug fixes, modern framework support, and an automated release pipeline. |
64 | 11 |
|
65 | | -* [.NET 10 SDK](https://dotnet.microsoft.com/download/dotnet/10.0) (or later) |
66 | | -* [.NET Framework 4.8 Developer Pack](https://dotnet.microsoft.com/download/dotnet-framework/net48) (for library targets and test subjects) |
67 | | -* [Visual Studio 2025+](https://visualstudio.microsoft.com/) with **Desktop development with C++** workload (for the C++/CLI test project) |
68 | | -* Windows 10/11 (WPF GUI is Windows-only) |
| 12 | +## Get Started |
69 | 13 |
|
70 | | -### Build |
| 14 | +Download the latest build from [Releases][releases], extract, and run: |
71 | 15 |
|
72 | 16 | ```bash |
73 | | -# Full solution (requires VS 2025+ MSBuild 18) |
74 | | -msbuild Confuser2.sln -p:Configuration=Release |
| 17 | +# GUI |
| 18 | +ConfuserEx.exe |
75 | 19 |
|
76 | | -# .NET projects only (without C++/CLI test project) |
77 | | -dotnet build Confuser2.sln -c Release |
78 | | - |
79 | | -# Run tests |
80 | | -dotnet test Confuser2.sln -c Release |
| 20 | +# CLI |
| 21 | +Confuser.CLI.exe my-project.crproj |
81 | 22 | ``` |
82 | 23 |
|
83 | | -### Target Frameworks |
84 | | - |
85 | | -| Project | TFM | |
86 | | -|---------|-----| |
87 | | -| Core, Protections, Renamer, DynCipher | net48 + netstandard2.0 | |
88 | | -| GUI (ConfuserEx) | net10.0-windows | |
89 | | -| CLI (Confuser.CLI) | net10.0 | |
90 | | -| Runtime | net20 (injected into targets) | |
| 24 | +See the [Getting Started Guide](docs/getting-started.md) for walkthroughs and configuration. |
91 | 25 |
|
92 | | -## Bug Report |
| 26 | +## Documentation |
93 | 27 |
|
94 | | -See the [Issues][issues] section. Please check existing issues before filing a new one. |
| 28 | +| | | |
| 29 | +|---|---| |
| 30 | +| [Getting Started](docs/getting-started.md) | Installation, first run, basic configuration | |
| 31 | +| [Protections](docs/protections.md) | All protections with options, presets, and examples | |
| 32 | +| [CLI Reference](docs/cli-reference.md) | Command-line options and usage | |
| 33 | +| [Project File Format](docs/ProjectFormat.md) | `.crproj` XML schema, rules, and pattern expressions | |
| 34 | +| [Declarative Obfuscation](docs/declarative-obfuscation.md) | Attribute-based configuration via `[Obfuscation]` | |
| 35 | +| [Building from Source](docs/building.md) | Prerequisites, build commands, and project layout | |
| 36 | +| [Contributing](CONTRIBUTING.md) | How to contribute, test policy, and PR workflow | |
95 | 37 |
|
96 | | -## Contributing |
| 38 | +## Issues |
97 | 39 |
|
98 | | -1. Fork the repository |
99 | | -2. Create a branch from `develop` (see [CONTRIBUTING.md](CONTRIBUTING.md) for naming conventions) |
100 | | -3. Make your changes and ensure CI passes |
101 | | -4. Open a PR targeting `develop` |
| 40 | +Check [existing issues][issues] first, then [open a new one][new_issue]. |
102 | 41 |
|
103 | 42 | ## License |
104 | 43 |
|
105 | | -Licensed under the MIT license. See [LICENSE.md][license] for details. |
| 44 | +MIT. See [LICENSE.md][license]. |
| 45 | + |
| 46 | +## Credits |
| 47 | + |
| 48 | +- **[0xd4d][0xd4d]** — [dnlib][dnlib] |
| 49 | +- **[Ki (yck1509)][ki]** — original ConfuserEx |
| 50 | +- **[Martin Karing][mkaring]** — maintained through v1.6 |
106 | 51 |
|
107 | 52 | ## Contributors |
108 | 53 |
|
109 | 54 | <a href="https://github.com/mcpolo99/ConfuserExx/graphs/contributors"> |
110 | 55 | <img src="https://contrib.rocks/image?repo=mcpolo99/ConfuserExx" /> |
111 | 56 | </a> |
112 | 57 |
|
113 | | -## Credits |
114 | | - |
115 | | -**[0xd4d]** for [dnlib][dnlib] and extensive .NET metadata knowledge. |
116 | | -**[Ki (yck1509)][ki]** for the original ConfuserEx. |
117 | | -**[Martin Karing][mkaring]** for maintaining the project through v1.6. |
118 | | - |
| 58 | +<!-- links --> |
119 | 59 | [0xd4d]: https://github.com/0xd4d |
120 | 60 | [dnlib]: https://github.com/0xd4d/dnlib |
121 | 61 | [ki]: https://github.com/yck1509 |
122 | | -[mkaring]: https://github.com/mkaring |
123 | | -[upstream]: https://github.com/mkaring/ConfuserEx |
| 62 | +[mkaring]: https://github.com/mkaring/ConfuserEx |
124 | 63 | [ci]: https://github.com/mcpolo99/ConfuserExx/actions/workflows/ci.yml |
| 64 | +[test]: https://github.com/mcpolo99/ConfuserExx/actions/workflows/test.yml |
125 | 65 | [codeql]: https://github.com/mcpolo99/ConfuserExx/actions/workflows/codeql-analysis.yml |
126 | 66 | [issues]: https://github.com/mcpolo99/ConfuserExx/issues |
| 67 | +[new_issue]: https://github.com/mcpolo99/ConfuserExx/issues/new/choose |
| 68 | +[releases]: https://github.com/mcpolo99/ConfuserExx/releases |
127 | 69 | [license]: LICENSE.md |
128 | | -[project_format]: docs/ProjectFormat.md |
129 | 70 |
|
130 | | -[img_ci]: https://github.com/mcpolo99/ConfuserExx/actions/workflows/ci.yml/badge.svg?branch=main |
| 71 | +[img_ci]: https://github.com/mcpolo99/ConfuserExx/actions/workflows/ci.yml/badge.svg |
| 72 | +[img_test]: https://github.com/mcpolo99/ConfuserExx/actions/workflows/test.yml/badge.svg |
131 | 73 | [img_codeql]: https://github.com/mcpolo99/ConfuserExx/actions/workflows/codeql-analysis.yml/badge.svg |
132 | | -[img_license]: https://img.shields.io/github/license/mcpolo99/ConfuserExx.svg?style=flat |
| 74 | +[img_license]: https://img.shields.io/github/license/mcpolo99/ConfuserExx.svg |
0 commit comments