SmartAssembly 7 documentation:https://documentation.red-gate.com/sa

混淆设置

以下是主要的几个混淆设置:

混淆名称 Obfuscating code with name mangling

设置后会修改类名、方法名、字段名
注:不会混淆DLL中的公开访问成员,因为会使得DLL不可使用

混淆流程 Obfuscating your application's control flow

开启后,会更改方法内的代码逻辑,使反编译后阅读更加困难

动态代理方法调用 Creating a proxy for external calls

会将方法的调用转到动态代理,隐藏程序集外部调用。反编译之后,方法调用实现都不可见,理解代码更难了

压缩加密资源 Compressing and encrypting managed resources

压缩代码中使用的资源使代码更有效率,加密代码中使用的资源使代码更难理解。

注:当首先需要每个资源时,资源会在运行时自动解压和解密。

一般来说,有混淆名称、混淆流程就已经够了。动态代理方法调用、压缩加密资源有轻微的性能影响,

混淆后的反编译结果

反编译可以用Dnspy或者.Net Reflector

.NET Reflector 下载

.NET Reflector 官方文档

异常等问题

1. 如果使用了Costura.Fody,SmartAssembly是不支持exe混淆的。因为Costura.Fody将程序打包到一个exe,SmartAssembly对相关的依赖项无法找到~

比如下方的JiraUserQuestion.Bussiness.Dll

2.如程序中有对类名/属性名进行相应的逻辑处理,或者有相关的反射机制,混淆后程序运行会异常。

混淆 - dotfuscator

混淆VS2008之前也有自带一个dotfuscator工具,vs2019等版本是没有的,可以使用官方链接下载

https://www.preemptive.com/products/dotfuscator/overview/

安装及使用参考:

参考链接:

混淆-SmartAssembly的更多相关文章

  1. .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)

    长文预警!!! UWP 程序有 .NET Native 可以将程序集编译为本机代码,逆向的难度会大很多:而基于 .NET Framework 和 .NET Core 的程序却没有 .NET Nativ ...

  2. SmartAssembly .net混淆后,无法找到部分类型

    两种解决方式: 1,在vs项目引用中,COM  嵌入互操作类型, 全部设为false. 2, 在混淆选项中,排除所有 引有的 外部COM类

  3. .net混淆、反编译工具调查

    常用的工具列表[比较常见的] 混淆器.加密 Dotfuscator VS默认带的工具,不过是个社区版 强度不大 dotNET Reactor 使用了NativeCode 和混淆的形式 Xenocode ...

  4. .net破解一(反编译,反混淆-剥壳)

    大家好,前段时间做数据分析,需要解析对方数据,而数据文件是对方公司内部的生成方式,完全不知道它是怎么生成的. 不过还好能拿到客户端(正好是C#开发)所以第一件事就是用Reflector编译,但是没有想 ...

  5. Unity3D研究院之在把代码混淆过的游戏返混淆回来

    最近一直在找如何在MAC上混淆Android的DLL,至今没能找到合适的,有大神知道记得告诉我喔.今天群里有人说了一个混淆代码和返混淆代码的工具de4dot ,不查不知道一查吓一跳.这玩意可以把别人混 ...

  6. smartassembly 使用指南

    原文 http://www.cnblogs.com/hsapphire/archive/2010/09/21/1832758.html smartassembly 提供了一种用于优化和混淆你的 .ne ...

  7. Unity3D研究院之在把代码混淆过的游戏返混淆回来(七十七)

    最近一直在找如何在MAC上混淆Android的DLL,至今没能找到合适的,有大神知道记得告诉我喔.今天群里有人说了一个混淆代码和返混淆代码的工具de4dot ,不查不知道一查吓一跳.这玩意可以把别人混 ...

  8. .Net混淆工具和反混淆工具

    一.简介 本文给大家列举一些常用的.net程序反破解代码混淆工具.同时也列取一些反混淆工具. 二.混淆工具 Agile.NET (aka CliSecure) Babel.NET CodeFort C ...

  9. 免费的.NET混淆和反编译工具

    免费的.NET代码混淆工具: Eazfuscator.NET  http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.as ...

随机推荐

  1. 【翻译】浅析为何使用融合CDN是大趋势

    使用传统CDN的用户遇到的新问题 随着云计算时代的快速发展,尤其是流媒体大视频时代的到来,用户在是使用过往CDN节点资源调配将面临很多问题: 问题1: 流媒体时代不局限于静态内容分发,直播点播等视频服 ...

  2. LED Decorative Light Supplier - LED Neon Application: 5 Advantages

    In the past 100 years, lighting has gone a long way. LED decorative lighting is now designed to meet ...

  3. 在 linux 中连接 mysql 数据库

    命令格式 mysql -h主机地址 -u用户名 -p用户密码 登录本机 mysql mysql -u用户名 -p用户密码 实例 TD - X1数据库:/opt/lampp/bin/mysql -u r ...

  4. Error: Unexpected HTTP status 413 'Request Entity Too Large' on

    由于nginx的client_max_body_size设置过小,默认上传的文件小于所要上传的文件大小,把这个值调大就可以了,我这里在配置文件的server下更改如下: server { client ...

  5. root xshell登陆Ubuntu

    https://www.jianshu.com/p/c8ee39488d2a xshell测试非root用户,可以正常连接,但是root用户仍旧无法访问 解决方法:修改 /etc/ssh/sshd_c ...

  6. 开发板上如何配置apahe2+mysql+php7

    1,安装apache2 sudo apt-get install apache2 修改webroot vim /etc/apache2/apache2.conf #在其中复制最后一个 <Dire ...

  7. 一个仿tp5分页组件的实现

    样式: a{ text-decoration: none; color: inherit; } .out-cp{ width:100%; text-align: center; } .c-page{ ...

  8. MySql -- not null 非空约束

    2.not null 非空约束 用于确保当前列的值不为空:在创建表时,如果不指定是否可以为空,字段默认可以为NULL. -- 这是上一篇默认约束创建的表 CREATE TABLE `test`.`us ...

  9. 在虚拟机中使用Git

    自己如何从安装虚拟机到使用git进行项目代码版本管理的部分教程因为是自学所以没有好的教程只能自己进行百度,网上的教程太多了但都是只是一个模块没有从头到尾详细的教程,我们如果有个详细的教程本来只需花很少 ...

  10. Flink架构(四)- 状态管理

    状态管理 之前我们提到过大多数流应用是有状态的.很多operators会不断的访问并更新某中状态,例如一个window中收集了多少条记录,输入源中当前读到的位置,亦或是用户定义的特定operators ...