项目介绍
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

