SmartAssembly 7 documentation:https://documentation.red-gate.com/saSmartAssembly7.2版本下載鏈接: https://www.red-gate.com/products/dotnet-development/smartassembly/
混淆設定
以下是主要的幾個混淆設定:
混淆名稱 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/
安裝及使用參考:
- Dotfuscator 使用圖解教程
- VS自帶代碼混淆器DotFuscator的使用步驟
- 使用 Dotfuscator 對代碼進行混淆
參考鏈接:
- .NET 中各種混淆(Obfuscation)的含義、原理、實際效果和不同級別的差異(使用 SmartAssembly)
- Smartassembly 使用指南
- SmartAssembly批處理用法
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/2047.html
標籤:其他
上一篇:svn服務器IP/URL地址更換,修改本地的倉庫地址
下一篇:反混淆 de4dot
