混淆-SmartAssembly
Posted kybs0
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了混淆-SmartAssembly相关的知识,希望对你有一定的参考价值。
混淆设置
以下是主要的几个混淆设置:
混淆名称 Obfuscating code with name mangling
混淆流程 Obfuscating your application‘s control flow
开启后,会更改方法内的代码逻辑,使反编译后阅读更加困难
动态代理方法调用 Creating a proxy for external calls
会将方法的调用转到动态代理,隐藏程序集外部调用。反编译之后,方法调用实现都不可见,理解代码更难了
压缩加密资源 Compressing and encrypting managed resources
压缩代码中使用的资源使代码更有效率,加密代码中使用的资源使代码更难理解。
注:当首先需要每个资源时,资源会在运行时自动解压和解密。
一般来说,有混淆名称、混淆流程就已经够了。动态代理方法调用、压缩加密资源有轻微的性能影响,
混淆后的反编译结果
异常等问题
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的主要内容,如果未能解决你的问题,请参考以下文章
混淆矩阵是什么?Python多分类的混淆矩阵计算及可视化(包含原始混淆矩阵及归一化的混淆矩阵):基于skelarn框架iris数据集