混淆-SmartAssembly
SmartAssembly 7 文档:https://documentation.red-gate.com/sa
PS: 建议使用7以后的版本,因为SmartAssembly 6.6之前,WPF程序依赖的资源无法正常工作。
混淆设置
以下是主要的几个混淆设置:
混淆名称 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/
安装及使用参考:
参考链接:
2025-01-09 09:19:21【出处】:https://www.cnblogs.com/kybs0/p/12168031.html
=======================================================================================
如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的【关注我】。(●'◡'●)
因为,我的写作热情也离不开您的肯定与支持,感谢您的阅读,我是【Jack_孟】!
本文来自博客园,作者:jack_Meng,转载请注明原文链接:https://www.cnblogs.com/mq0036/p/18661035
【免责声明】本文来自源于网络,如涉及版权或侵权问题,请及时联系我们,我们将第一时间删除或更改!
浙公网安备 33010602011771号