dotfuscator如何對.net程式進行混淆保護對於程式**的保護,網上有很多資料,有的說混淆,有的說加密,我比較支援混淆的方法,這樣可以讓反編譯勞工,頭暈一陣子,哈哈開玩笑。對於加密如果不是不得已,我想沒有必要。加密效能消耗比較大。
dotfuscator相信做程式的人很多都知道,dotfuscator與xenocode都是**混淆工具,做為保護**安全的乙個工具。既然說到.net的程式,那當然要扯扯dotfuscator,都同屬微軟的產品,相容性絕對是天生一對。
閒話不多說,說最直接的東西,最實用東西。
下面來說說dotfuscator的用法,我用的是dotfuscator professional edition 4.2版,dotfuscator的版本有多好,具體請看微軟官方說明
用法一 使用預設混淆
開啟軟體點選input選項卡,把dll或exe新增,libray不要選,否則的話,幾乎所有的公共函式變數,不會被加密和混淆,可以很容易的看到**
點選build選項卡,在目標目錄(destination directory)選取你想把dll生成到的位置,如f盤:/混淆目錄
其它不用設定,直接點build,會有提示是否要儲存專案。點選否
生成的dll,再用.net reflector 進行反編譯,看一下。
看到的結果是,類名重新命名,方法名重新命名 全都變成a,b,c
這種方法有個缺點,對於三層架構來說,他的dal層語句還是有在。比較容易看懂。
用法二 自定義混淆,類名,方法名不變。
但是方法裡面的內容變成只有一句 // this item is obfuscated and can not be translated.
開啟軟體點選input選項卡,把dll或exe新增
在options的選項中,這是全域性配置選項:
把 disable string encryption 設為 no,即啟用字串加密;檢查 disable control flow、dsiable renaming為no,即保證控制流和混淆功能開啟,其他預設
rename 選項勾選「use enhanced overload induction」(使用增強模式),注意:不要勾選下方的「 do not suppress on serializable types」,即序列化型別的變數不加密,否則編譯後可能異常; 「renaming scheme」 選擇「unprintable」(不可列印字元,即亂碼),也可以選擇其他如小寫字母、大寫字元、數字的方式。
點選build選項卡,在目標目錄(destination directory)選取你想把dll生成到的位置,如f盤:/混淆目錄
其它不用設定,直接點build,會有提示是否要儲存專案。點選否
生成的dll再用.net reflector 進行反編譯,看一下。
看起來是比較強大。但是有個缺點。因為dll是需要被web程式呼叫的,web的程式呼叫的方法,之前是使用類名,及方法名的。所以推薦不要做rename這步驟。
也就是在options選項時,dsiable renaming設定為no.而rename裡面就不要去設定了
dotfuscator其特點是混淆,乙個很重要的方面是重新命名。然而重新命名又導致無法引用的問題。
這要求需要對幾個dll 同時混淆,對於web 來說,頁面cs可以發布成乙個dll,將所有層的dll一起混淆,可以解決很多問題。這裡對web dll不進行重名,以保證頁面檔案可以訪問。
對於說在混淆後,容量會變小.我覺得這不是絕對的,我的容量是變大了
使用Dotfuscator總結
很早就想體驗一下dotfuscator的加密效果,由於實在太忙,一直沒有機會實現。今天終於體驗了一把,把體驗情況總結一下 1.使用的是4.2版的破解版 2.加密效果尚可,用reflector檢視,基本不可讀 3.使用的時候也出現了些問題,最後都解決了 需要把dll引用到的其他不需要加密的dll也要放...
pythonpip使用方法 pip使用方法整理
匯出專案已安裝的pip包 pip list 檢視專案中安裝的包 pip freeze requirements.txt 將專案中所用到的第三方庫輸出到requirements.txt中 pip install 版本號 pip install i 本次使用清華源進行安裝 離線安裝第三方庫 一鍵安裝整個...
Dotfuscator類重新命名方法解析
dotfuscator是專業的.net程式 混淆工具,擁有重新命名 字串加密 流程模糊 自定義規則和水印等功能,倍受開發人員喜愛。其中類重新命名的使用方法非常普遍,涉及到既要保護 資訊,又要在以後能實現執行維護及多程式協同工作。那麼類重新命名到底有幾種方法?每種方法是如何實現的?接下來將解析各種類重...