【C#】JIEJIE.NET:一个开源、快速、强大的 .NET 代码混淆工具,防止应用程序被反编译和盗版,保护商业软件的代码和知识产权
|
admin
2026年2月11日 16:0
本文热度 204
|
项目介绍
JIEJIE.NET 是一个功能强大且易于使用的.NET代码混淆工具,通过深度加密 .NET 程序集文件,防止软件被破解和版权被侵犯。无论是商业软件还是开源项目,JIEJIE.NET 都能提供有效的版权保护,防止软件被破解和盗版。

应用场景
- 软件版权保护:防止.NET应用程序被反编译和盗版。
- 敏感信息保护:隐藏代码中的敏感信息,如API密钥、数据库连接字符串等。
- 代码性能优化:通过去除死代码和优化控制流,提升代码执行效率。
功能模块
JIEJIE.NET 提供了多个功能模块,以全面保护 .NET 应用程序的代码安全。主要功能模块包括:
类型和成员重命名
// 原始代码
publicabstractclassXTextDocumentContentElement : XTextContentElement {
public override void AfterLoad(ElementLoadEventArgs args);
// 其他成员...
}
// 混淆后代码
publicabstractclassXTextDocumentContentElement : XTextContentElement {
public override void AfterLoad(ElementLoadEventArgs args); // 名称已更改
// 其他成员名称也已更改...
}
控制流混淆
- 功能描述:随机混淆IL代码的控制流,不改变功能但增加阅读难度。
// 原始代码
public int RemoveByControl(object control) {
if (control == null) {
thrownew ArgumentNullException("control");
}
// 其他逻辑...
}
// 混淆后代码(在ILSpy中显示)
public int RemoveByControl(object control) {
// 复杂的控制流,难以阅读
int num = z0ZzZzgw.z0kh;
bool flag = default(bool);
// 其他混淆后的逻辑...
}
字符串值加密
- 功能描述:收集并加密程序集中的所有字符串值,防止直接搜索字符串。
// 原始代码
private string GetLicenseMessage() {
string text = _0._6 + Environment.UserName;
return text;
}
// 混淆后代码
privatestaticclass _0 {
publicstaticreadonlystring _6; // 加密后的字符串
// 其他加密的字符串...
}
资源文件加密
- 功能描述:加密嵌入的资源文件(*.resources),防止修改版权UI。
// 原始代码
pictureBox1.Image = (System.Drawing.Image)resources.GetObject("pictureBox1.Image");
// 混淆后代码
pictureBox1.Image = (System.Drawing.Image)res.GetObject(__DC20210205._0._2);
调用栈隐藏
// 原始代码
private string GetLicenseMessage() {
string msg = "This software license to :" + Environment.UserName;
return msg;
}
// 混淆后调用栈(在.NET Memory Profiler中显示)
mscorlib!System.String.CtorCharArray(char[])
SampleWinApp2!DCSoft.Common.InnerAssemblyHelper20210315.CloneStringCrossThead_Thread()
// 其他混淆后的调用栈信息...
功能演示


开源地址
https://github.com/dcsoft-yyf/JIEJIE.NET
该文章在 2026/2/11 16:00:41 编辑过