当前您所在的位置:首页>编译器 安装程序制作>反编译

redgate SmartAssembly

SmartAssembly
使用SmartAssembly保护.NET代码和IP
Redgate的
 .NET obfuscator

SmartAssembly是一种混淆器,通过使第三方很难访问您的源代码,来有帮助您保护您的应用程序免受反向工程或修改。
如果你的整个业务依赖于软件中体现的IP,或者你不想让C#或VB.NET代码暴露于国际市场,那么混淆你的代码就成为必要,而不是奢侈。
使用SmartAssembly,您可以获得一组全面的混淆特性,包括名称调整,控制流混淆,字符串编码,参考动态代理和声明性混淆。
混淆的一个例子

混淆前



混淆后
3种方式SmartAssembly将改善您的软件
混淆
如果.NET应用程序没有被混淆,可以很容易地拆解,如果你在代码中投入了时间,精力和金钱,这可能是一个问题。模糊你的代码是很容易做到的,并增加了一个屏障,防止逆向工程和修改。
多种形式的混淆和优化
代码混淆使您的应用程序难以逆向工程,删除无用的代码,并压缩依赖关系,保护和轻松的压缩应用程序的。
主要特征
名称调整
更改方法和字段的名称,使其难以理解其用途。
控制流模糊
将方法中的代码转换为“spaghetti代码”,使其难以看到应用程序如何工作。
参考动态代理
创建一个代理来调用你的程序集之外的方法,使得很难找到外部调用。
字符串编码
对在软件中使用的字符串进行编码,以隐藏诸如密码和SQL查询等信息。
资源压缩和加密
压缩和加密托管资源,使其难以理解,并减少了程序集的大小。
修剪
删除无用的元数据,使代码更难进行逆向工程,减少程序集的大小,提高加载时间。
依赖合并
将所有的DLL和合并依赖项放入主程序集中,所以你不必加载大量的DLL文件,所以它们也可以被混淆。
依赖关系压缩和嵌入
压缩并将您的依赖项嵌入到您的主程序集中,简化了软件的部署并减少了程序的大小。
父对象模糊的
方法
通过改变代码中的类来移动方法,使得更难理解方法和类如何相互关联。
有篡改保护的强
名称签名
标记装配,并有助于防止其修改(标准版中不提供额外的防拆保护)。
声明性混淆
在代码中直接使用自定义属性从成员中排除成员。
调试
SmartAssembly解码模糊的堆栈跟踪并生成包含调试信息的.pdb文件。这使您能够将组件调试到IDE中,并在发生异常时获取完整的堆栈跟踪。 SmartAssembly甚至有助于确保您自动释放不需要的内存。

集成和支持
混淆可以使用MS Build或命令行集成到构建过程中,并支持.NET 2.0到4.5,Silverlight 2.0到5.0,XNA和Windows Phone 7,但有一些例外。


自动错误报告
只有一件事比找出你的软件含有bug
更糟糕的即:从来没有找到。
大多数用户不会打扰报告错误:记住和联系细节是棘手的和技术上的挑战。如果你让你的用户用一个快速点击来告诉你整个故事,这对
每个人来说将会很容易,不是吗?
自动错误报告是一种异常处理机制,在发生错误时自动和默默地收集详细信息。虽然高度可自定义,但典型的错误报告包括完整的堆栈跟踪和关于异常上下文的细节(例如所有局部变量的值)。
有两种主要情况,自动错误报告特别有用:
1.在预发布阶段(例如beta测试),当您需要大量早期用户反馈来帮助您发布稳定的应用程序。
2.在发布后维护中,当您想要简化和加快调试和修复软件的过程。
自动错误报告的好处
•为您的应用程序配置和添加异常处理需要几秒钟,涉及
很少的对代码的更改,但是您可以访问许多有价值的反馈。
获得所有必要的细节时没有更多耗时的电子邮件交流。您的最终用户可以在点击按钮时报告未处理的异常,这意味着您可以更快地修复错误。
•您可以获得其中未处理的异常最常发生的连续数据,帮助您优先考虑影响最终用户的错误。
•您可以通过识别和解决最终用户实际遇到的问题来降低支持成本。
将文件附加到错误报告
使用SDK,您还可以使用异常报告来封装所需的任何数据,例如日志文件或崩溃时的截图。您甚至可以自定义异常处理对话框,并要求用户提供更多信息或联系详细信息,以便在发布修订时与他们联系。

与JIRA同步
如果您使用JIRA跟踪错误,用于 JIRA的
SmartAssembly Sync 可以在错误修复过程中为您节省更多的时间。它将错误报告自动移动到您的错误跟踪系统,甚至将重复的报告一起分组。
如果您在开发中使用SmartAssembly的混淆功能,我们已经介绍了 - SmartAssembly可以解码混淆的堆栈跟踪。
主要特征
标准模板范围
在提示或不提示最终用户的情况下发送错误报告。
自定义模板*
(可从SDK获得)
当发生异常时,可让您完全控制向最终用户显示的对话框。
报告分类
对报告进行分类,以快速查看用户体验到的最常见错误。
共享异常报告
查看由组织中的任何开发人员或构建系统构建的应用程序的异常报告。
始终发送
系统信息
Windows版本,.NET版本和加载的程序集列表与堆栈跟踪一起发送。
将文件附加到错误报告*
日志文件,屏幕截图和任何其他类型的文件可以附加到错误报告。
收集最终用户的电子邮件地址
通过告知他们问题解决了,来加深您的客户的印象。
安全
您的错误报告存储在Web服务中时已加密,并在您下载时从服务器中删除。
Redgate托管的Web服务
没有复杂的安装,因为Redgate托管错误报告发送到的Web服务。
自定义Web服务*
自行运行Web服务以获得最大的灵活性。
*自定义模板,附加文件和自定义Web服务仅适用于SmartAssembly Pro(SDK软件包的一部分)。
通过向您的购买的东西中添加支持和升级软件包,可以访问错误报告
 web服务(用于下载错误报告)。我们为客户提供在过期前一个月续订其支持合同的机会。
集成和支持
添加
Automated Error Reporting功能可以使用MS Build或命令行集成到构建过程中,并且支持.NET 1.1到4.0,Silverlight 2.0到4.0,XNA和Windows Phone 7,但有一些例外。
 

合并DLL

编译.NET代码通常会导致创建多个装配文件,包括satellite DLL,所有这些都是程序运行所必需的。虽然在开发过程中这是一个非问题,但是当涉及到部署时,它通常意味着不必要的阶段的用户必须解压缩文件,或者DLL中的额外步骤移动到特定的地方。

您可以通过使用SmartAssembly将引用的DLL中的代码合并和嵌入到您的主程序集中,大大简化部署过程

依赖性合并

•在一个文件中部署.NET应用程序

•提高软件的性能和保护性

依赖性合并将所有的DLL和合并依赖项放入主程序集,所以你不必加载大量的DLL文件。当依赖关系被合并时,它变成主要组件的一部分,并且来自合并依赖关系的代码和来自主组件的代码因此可以被模糊化和修剪。

依赖关系压缩和嵌入

•促进软件部署和维护

•减小程序的大小

依赖关系压缩和嵌入允许将引用的DLL作为资源嵌入到主程序集中,而不是合并到主程序集的内容中。此功能还会压缩这些资源,并在运行时动态解压这些资源。

您可以通过命令行控制SmartAssembly的依赖合并和依赖关系压缩和嵌入,因此可以轻松集成到构建过程中,从而为每个构建提供简单,可靠的依赖关系合并。

北京哲想软件有限公司