Spices.Obfuscator 作为保护和优化 .Net 应用程序的工具。





0/5 (0投票)
2007 年 4 月 20 日
7分钟阅读

36847
Spices.Obfuscator 作为保护和优化 .Net 应用程序的工具。当前混淆器的使用扩展了它们在 .Net 应用程序开发和处理中的作用。
访问 Spices.Obfuscator 主页。
引言
混淆器作为应用程序保护免受窥探和反编译/反汇编的工具的现有用途需要更复杂的混淆器。
过去,人们认为混淆器会将 IL 代码和元数据转换成无意义且难以识别的东西。如今情况似乎完全不同了。
代码开发和维护方法已变得非常复杂。需要完全不同的保护级别以及额外的支持服务,大型项目和各种配置/包的代码分析和维护是必需的。
混淆器确实提供了将 IL 代码及其结构转换为难以阅读和难以反编译的文件,从而保护代码免受黑客和竞争对手的侵害。除此之外,
黑客和竞争对手拥有非常高效的工具来反编译、去混淆和伪造 IL 代码,因此有必要抵御此漏洞的利用。现代混淆器正在扩展其应用范围。
Spices.Obfuscator(Spices.Net 系列产品之一),由 9Rays.Net 公司开发,提供了所有这些应用程序,使其成为最先进的开发工具。
其功能列出如下。
构建过程自动化
大多数公司都有相当复杂的构建过程,需要灵活性但又要特定的脚本。Spices.Obfuscator 中包含的 MSBuild 支持允许将混淆过程以自动化形式轻松集成到构建过程中,从而使 Spices.Obfuscator 更具灵活性。可以通过将 Spices.Obfuscator 集成到自己的构建解决方案中,使用 C#、VB.Net、C++ 或 J# 编写混淆脚本。
Spices.Project 和 Spices.Solution 都支持在混淆过程中在任何步骤启动各种解决方案。
调试支持
使用 Spices.Obfuscator,可以在混淆后调试应用程序。与 Visual Studio 2003/2005 的全面集成允许在构建过程中混淆应用程序,并在调试模式下启动混淆后的应用程序。
此外,还提供了异常跟踪机制,允许接收原始堆栈跟踪方法,最终实现快速分析和纠正错误。
支持大型项目和各种项目配置
许多软件制造商开发了多个软件版本:试用版、专业版、精简版等。他们需要为不同版本使用不同的混淆模式。Spices.Solution 可以实现这一点,因为它是一个项目集合(每个项目包含一个产品配置),允许一次混淆各种产品配置。
匿名化
这是一项新的专利申请技术,包含多种方法来复杂化代码分析和反编译。
Spices.Anonymizer 实际上将受保护应用程序的代码整体转换为沙子,大大复杂化了应用程序的分析过程,增加了黑客寻找漏洞点的难度,并保护应用程序免受 ILASM/ILDASM 往返。
这项技术仅会轻微降低代码效率。它在操作控制方面具有灵活性,并允许多个保护级别,即使是最低级别的保护也能显著提高应用程序的安全性并增加其分析的复杂性。
安全
软件开发人员花费大量精力来保护其应用程序的安全,向黑客隐藏机密信息并大大增加他们在字节码中搜索的难度,这已不是秘密。
Spices.Obfuscator 使用的字符串加密技术提供了多种安全级别,从移除代码中的字符串到使用TripleDES算法进行字符串加密。Spices.Anonymizer 技术预见了代码匿名化的可能性,负责加密信息以防止反编译软件识别解密方法。
优化
混淆器不仅重命名程序集成员,还优化了程序集的大小和效率。改变程序集成员名称为更短的名称的混淆效果,提高了应用程序的效率。程序集可能包含不必保留在混淆后的程序集中的代码和元数据。它们是多余的,应该删除,从而减小程序集的大小。Spices.Obfuscator 中使用的技术允许程序集元数据大小减少 50%。这种尺寸减小导致程序集初始化速度更快,效率显著提高。Spices.Optimizer 使用的一些方法也增加了黑客攻击和程序集研究的难度,以及 ILDASM/ILASM 往返。
本地化
您在Visual Studio 等开发工具中已知的本地化功能不允许本地化所有字符串和应用程序资源。本地化信息必须通过更新应用程序的程序集过程来不断更新,以适应本地化。
Spices.Obfuscator 为这个问题提供了一个便捷的解决方案。通过Spices.Net 中的工具之一Spices.Localizer,用户可以从程序集中提取所有字符串和资源信息,获取本地化表,并对所需信息进行任何语言的本地化。
Spices.Localizer 还提供与当前代码版本进行本地化行的同步,这大大减少了程序集时间,并允许更有效地分配开发人员之间的任务。本地化表完成后,可以在混淆时使用它们,所有本地化信息都将被实现到代码中。如果使用字符串加密,本地化信息也会被加密。
防篡改/反欺骗
如果黑客早期对 .net 版本不感兴趣,那么它们日益增长的流行度现在吸引了他们的注意。.Net 软件使用程序集签名技术,将文件转换为强名称程序集。启动时,会检查这些文件的数字签名,该签名保存在程序集中,并确认自程序集签名以来其内容未发生更改。这是一个很好的解决方案,可以避免程序集的损坏和修改,但签名技术有其弱点。
例如,黑客可以删除程序集签名,修改程序集,然后使用自己的密钥重新签名,从而伪造程序集。这是 .Net 代码黑客攻击的一种广泛使用的方法。
Spices.Obfuscator 提供了解决方案来保护代码免受此类黑客攻击,通过重新生成很难伪造的防篡改程序集(这也是一项专利申请技术)。9Rays.Net 的专家每天都在努力改进这项技术。
程序集验证
为了确保程序集已正确混淆,Spices.Obfuscator 还包括在混淆和优化后验证程序集的可能性。
附加的分析、浏览和搜索工具
Spices.Obfuscator 的一个非常有利的特点是它包含附加的程序集分析、浏览和验证工具。该包包括一个反汇编器、一个调用图、继承和接口实现的分析器。用户可以在浏览程序集成员时,以及按名称或令牌搜索时,获得关于当前程序集成员的完整上下文信息。该包还包括用于低级浏览和分析元数据的工具,范围从元数据表结构到 PE 文件(可移植可执行文件格式)的结构。该包还包括一个用于获取描绘程序集及其成员之间各种关系的图的工具。换句话说,Spices.Obfuscator 不仅提供了保护工具,还作为分析程序集架构的工具,并提供了关于程序集可能需要的几乎任何信息。
程序集、类合并与链接
在 Spices.Obfuscator 的下一个版本中,9Rays.Net 公司计划开发一个类/程序集链接器,该链接器将允许程序集操作,如程序集合并、拆分和从程序集中提取类。此类服务有需求,正如您所见,它们扩展了混淆器的适用性。
结论
我们可以看到,Spices.Obfuscator 提供了一套广泛的服务和工具,这些工具不仅保护软件免受竞争对手和黑客的侵害,还优化了应用程序的大小和效率。它可以灵活地适应最复杂的构建过程和大型项目,并作为浏览、分析和验证 .Net 应用程序的信息提供商。
访问 Spices.Obfuscator 主页。