混淆-SmartAssembly

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

混淆设置

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

混淆名称 Obfuscating code with name manglingapp

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

混淆流程 Obfuscating your application's control flow工具

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

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

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

压缩加密资源 Compressing and encrypting managed resourcesurl

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

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

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

混淆后的反编译结果

反编译能够用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/

安装及使用参考:

 

参考连接:

相关文章
相关标签/搜索