代码混淆工具 对比
一、.NET Reactor
C#的代码辛苦写出来之后,一个反射工具,就可以完全显露出来。
当然,在做项目时,这个功能还不错。因为我就曾在一个项目上使用C#,没有进行任何混淆。结果在项目二年多之后,需要做一些调整,自己保存的源代码丢失了。当时也吓了一跳,可是想到反射工具,赶快拿出来用一下。虽然在反射出来会出现一些错误,但毕竟大部分代码也都弄出来了。
这是在项目上,还有好处的,可是,试想一个产品,被别人给反射了,会是怎么样的一个情况,不说他去照搬功能,就是注册、加密那部分都会被轻易拿到。这可不是什么一个好主意。
于是,必须要使用代码混淆器。
这些混淆器大多是需要注意的,使用效果各不相同。普通的代码混淆器只是把私有字段和变量转换成随机码,如果是小程序,还可以猜一猜,如果是比较大的程序,猜起来可就不会那容易了。高级一点的是混淆成不可阅读的字符,这样的混淆后的代码干脆就比机器码还难懂,基本上是翻译不出来了。
但这些代码混淆器都有一定的风险,即混淆后的代码实然无法正常调用了。
而我一直用.NET Reactor,这个非常小巧,免安装,而且不需要注册。他只是将代码换成随机码,但是混淆后的代码都能正常使用。
但是有一点需要注意:凡是需要序列化成二进制的代码,是不能用混淆器的。混淆后的代码将不能正常序列化!
共享一下这个混淆器:
http://files.cnblogs.com/ghost79/DotNETReactor.rar
试用结果:部分代码无法正常被调用。
二、ILProtector
ILProtector由vgrsoft.com积极开发和维护。ILProtector首先开始作为免费软件,专注于保护反向工程的.Net代码。现在它的最新版本是付费软件(有关授权的详细信息在这里),显然还是有更多的保护选项的伟大的软件。但我们仍然很幸运,因为我们可以自由使用旧版本。这个软件的另一个好处是它提供了命令行界面(CLI),所以我们可以很容易地将它集成到第三方工具中,就像我们将在Visual Studio中使用它一样。
以下是我们可以使用ILProtector保护我们的.Net软件的一些方法
注意:请在继续之前创建软件的备份。
通过使用ILProtector的主界面
1.
打开ILProtector
2.
点击+图标选择您的软件
3.
4.
现在点击属性图标打开属性。这里你可以改变设置,如果你想嵌入保护DLL到你的软件或保持它们与其他设置分开。点击保存
5.
7 .现在回到主界面,点击Process按钮保护软件。这将生成您的软件,防止知道反编译器,如IL DASM,.NET反射器,ILSpy,dotPeek等
8.
通过在CMD中使用ILProtector
1. 开始 - >输入cmd - >打开cmd
2. 当cmd打开时,键入folloing命令(使用你的命令更改输出文件夹和exe路径)
3.
ILProtector.exe -out =“c:\ ouput文件夹”-nogui -embed-dlls“c:\ myprogram.exe”
4.
5.打回车键在键盘上,这会产生软件的保护版本。
通过在Visual Studio中使用生成事件
1. 在Visual Studio中打开您的项目。
2. 打开项目 - >属性 - >生成事件
3.在Post Build事件中输入以下命令。(用你的所有路径和exe名称替换)
ILProtector -out =“$(SolutionDir)My Software \ bin \ Release”-nogui -embed-dlls“$(SolutionDir)My Software \ bin \ Release \ My Software.exe”
注意:您应该在Enviromment变量中包含ILProtector的目录路径,在我的情况下它是C:\ Program Files(x86)\ VgrSoft \ ILProtector
4. 特点
- 软件代码保护
- 高性能
- 受保护程序集全面反射支持
- 支持.NET Framework 2.0 / 3.0 / 3.5 / 4.0 / 4.5
- 支持Windows x32 / x64
- 不使用未公开的功能
ILProtector自身受到保护!
持续更新中....
相关推荐
为了提高基于垃圾代码的控制流混淆方法的优化效果, 针对插入分支垃圾代码以及循环垃圾代码会引入大量额外开销的问题, 从软件保护中代码混淆技术出发, 对代码混淆技术的研究现状和原理、混淆算法攻击以及基于控制流...
针对软件代码混淆算法中的内联方法存在混淆结果单一性问题,提出了一种多态内联代码混淆算法。基于有限状态自动机(FSM)建立了算法理论模型,对每个内联的方法体选择差异性的混淆实现,并通过理论分析说明了提出的...
针对软件代码混淆算法中的内联方法存在混淆结果单一性问题,提出了一种多态内联代码混淆算法。基于有限状态自动机(FSM)建立了算法理论模型,对每个内联的方法体选择差异性的混淆实现,并通过理论分析说明了提出的...
详细需求分析 包括: 详细功能需求分析 详细性能需求分析 详细资源需求分析 详细系统运行环境及限制条件分析 详细系统运行环境及限制条件分析接口需求分析 包括: 系统接口需求分析 现有硬、软件资源接口需求分析 ...
软件代码中合适的地方,需要对文档进行恰如其分说明。原则是,每段代码,每处需要理解的地方,如果和总体架构相关,就要有说明。 软件领域需要简化。需要还原软件本来的面目。EDA有泛滥的趋势,软件的各个方面都...
"产品名称 "密级 " " " " "产品版本 "共 XX页 " "Rev.00 " " 软件项目设计方案 "拟制人 "xx "日期: "xx " ": " " " " "评审人 "xxx "日期: "xx " ": " " " " "批准人 "xx "日期: "xx " ": " " " " 修订记录 ...
"产品名称 "密级 " " " " "产品版本 "共 8 页 " "V1.01 " " XXX软件设计方案说明书 "拟制人 " "日期: "2010-11—23 " ": " " " " "评审人 " "日期: " " ": " " " " "批准人:" "日期: " " 修订记录 "日期 "版本 ...
本文针对上述安全问题展开分析研究工作,设计了一种新的隐藏 方法描述符的途径,通过消除对方法的快速定位,有效增加了指令猜 测攻击的难度,并在此基础上按不同需求分别提出了统一方法描述符 混淆算法...
目 录前言第1 章 统计思维与网站分析 11.1 不确定与确定 11.2 统计分析方法 41.2.1 细分分析 41.2.2 对比分析 61.2.3 趋势分析 71.3 网站分析概要 71.3.1 解决用户需求 71.3.2 寻找新的用户需求 10第2 章...
代码相似性分析器的比较。 经验软件工程,23, 2464–2519 (2018)。 内政部: 作为对以下内容的扩展: Chaiyong Ragkhitwetsagul、Jens Krinke、David Clark:存在普遍修改时源代码的相似性。 第 16 届源代码分析和...
对本系统所依赖于运行的硬件,包括操作系统、数据库系统、中间件、接口软件、可能的性能监控与分析等软件环境的描述,及配置要求。 2.1.3 条件与限制 详细描述系统所受的内部和外部条件的约束和限制说明。包括业务...
这种缺乏混淆了分析程序,并阻碍了基因组微阵列数据集的大规模比较处理。 而且,所提供的解决方案在很大程度上取决于用户的编程技能,而在GUI嵌入式解决方案的情况下,它们不提供对各种原始图像分析格式的直接支持或...
软件代码指标(例如圈复杂度、执行时间和指令数)用于量化、测量和比较现有混淆器对 TargO 的影响。 这种比较和进一步分析有助于确认有针对性的混淆具有同等或更好的效果,从而可以阻止逆向工程。
KPCA-ISSA-SVM分类预测,基于核主成分分析和改进的麻雀搜索算法优化支持向量机故障诊断分类预测,MATLAB代码(含SVM、SSA-SVM、ISSA-SVM、KPCA-ISSA-SVM四个模型的对比,目标函数使用5折交叉验证确定最佳参数)。...
选取了多款常用软件作为测试集,从资源开销、保护效果、对比实验等多个角度对所提方法进行了实例测试,从测试结果可以看出,所提方法资源开销较小,相较于混淆、加壳等传统方法,所提方法在抗静态分析、抗动态调试等...
使用机器学习中的5种模型(决策树,K-近邻,逻辑回归,支持向量机,随机森林,XGBoost)对欺诈数据集进行检测,并对5种模型进行评估比较分析(评价指标有准确度,F1-score,混淆矩阵),有详尽的解释与代码,能够...
关于能自定义格式的、支持多语言的、支持多数据库的代码生成器的想法 发布Oracle存储过程包c#代码生成工具(CodeRobot) New Folder XCodeFactory3.0完全攻略--序 XCodeFactory3.0完全攻略--基本思想 XCodeFactory...
Java二进制IO类与文件复制操作实例,好像是一本书的例子,源代码有的是独立运行的,与同目录下的其它代码文件互不联系,这些代码面向初级、中级Java程序员。 Java访问权限控制源代码 1个目标文件 摘要:Java源码,...
第19章 攻克代码混淆 389 19.1 混码器如何发挥作用 390 19.2 如何破解混淆程序 394 19.2.1 解除代码混淆 395 19.3 黑盒方法 397 19.4 虚拟机牢笼 398 19.5 总结 399 第20章 攻克Linux与BSD打包器 400 20.1 ...