混淆-SmartAssembly
混淆设置
以下是主要的几个混淆设置:
混淆名称 Obfuscating code with name mangling
混淆流程 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的更多相关文章
- .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
长文预警!!! UWP 程序有 .NET Native 可以将程序集编译为本机代码,逆向的难度会大很多:而基于 .NET Framework 和 .NET Core 的程序却没有 .NET Nativ ...
- SmartAssembly .net混淆后,无法找到部分类型
两种解决方式: 1,在vs项目引用中,COM 嵌入互操作类型, 全部设为false. 2, 在混淆选项中,排除所有 引有的 外部COM类
- .net混淆、反编译工具调查
常用的工具列表[比较常见的] 混淆器.加密 Dotfuscator VS默认带的工具,不过是个社区版 强度不大 dotNET Reactor 使用了NativeCode 和混淆的形式 Xenocode ...
- .net破解一(反编译,反混淆-剥壳)
大家好,前段时间做数据分析,需要解析对方数据,而数据文件是对方公司内部的生成方式,完全不知道它是怎么生成的. 不过还好能拿到客户端(正好是C#开发)所以第一件事就是用Reflector编译,但是没有想 ...
- Unity3D研究院之在把代码混淆过的游戏返混淆回来
最近一直在找如何在MAC上混淆Android的DLL,至今没能找到合适的,有大神知道记得告诉我喔.今天群里有人说了一个混淆代码和返混淆代码的工具de4dot ,不查不知道一查吓一跳.这玩意可以把别人混 ...
- smartassembly 使用指南
原文 http://www.cnblogs.com/hsapphire/archive/2010/09/21/1832758.html smartassembly 提供了一种用于优化和混淆你的 .ne ...
- Unity3D研究院之在把代码混淆过的游戏返混淆回来(七十七)
最近一直在找如何在MAC上混淆Android的DLL,至今没能找到合适的,有大神知道记得告诉我喔.今天群里有人说了一个混淆代码和返混淆代码的工具de4dot ,不查不知道一查吓一跳.这玩意可以把别人混 ...
- .Net混淆工具和反混淆工具
一.简介 本文给大家列举一些常用的.net程序反破解代码混淆工具.同时也列取一些反混淆工具. 二.混淆工具 Agile.NET (aka CliSecure) Babel.NET CodeFort C ...
- 免费的.NET混淆和反编译工具
免费的.NET代码混淆工具: Eazfuscator.NET http://www.foss.kharkov.ua/g1/projects/eazfuscator/dotnet/Default.as ...
随机推荐
- Python入门4 —— 输入与输出
一:输入(Input) 1.python3中的input(输入) inp_username=input("请输入您的密码:") # "18" print(inp ...
- 题解【洛谷P3574】[POI2014]FAR-FarmCraft
题面 简化版题意: 有一棵 \(n\) 个点的树,有边权. 你初始在 \(1\) 号节点,你需要走遍整棵树为 \(2 \sim n\) 号点的居民分发电脑,但你的汽油只够经过每条边恰好两次. 一个居民 ...
- Linux - Shell - 字符串截取
概述 简述 字符串 截取 背景 之前因为要给文件 批量重命名, 做过字符串截取 当时做好了, 也说了要写点东西 结果忘了 现在又要尝试批量 重命名 才发现之前的东西已经忘了好多 要是当时把博客写下来, ...
- NEKO's Maze Game
NEKO#ΦωΦ has just got a new maze game on her PC! The game's main puzzle is a maze, in the forms of a ...
- TD - 系统异常 - 登录不上
问题描述:登录之后,页面停留在登录页面,没有任何错误提示 解决办法:重新安装插件
- webrtc vp8与h264 sdp文件解读
参考地址:https://blog.csdn.net/zhangjikuan/article/details/27367437, https://www.cnblogs.com/idignew/p/7 ...
- 阿里巴巴手册之-Arrays.asList()数组转集合的问题
转载来源:https://blog.csdn.net/qq_36443497/article/details/79663663?utm_source=blogxgwz9 在使用工具类Arrays.as ...
- rancher布控集群启动失败的猜测
rancher布控集群启动失败的猜测 待办 报告缺少某个文件.多线程启动任务部署的时候某些线程跑在前边了, 导致问题出现 或者 网络问题出现超时,导致出现此类报错 或者 内存不足导致问题出现报错 或者 ...
- Nginx中常见问题与错误处理
1.400 bad request错误的原因和解决办法 配置nginx.conf相关设置如下. client_header_buffer_size 16k;large_client_header_bu ...
- centos源码安装git最新版
到 git官网下载git 源码安装包,git官网地址:https://www.git-scm.com/ 选择Tarballs系列的安装包,官网git下载:https://mirrors.edge.ke ...