概述:c#編寫的**如果不進行一定程度的混淆和加密,那麼是非常容易被反編譯進行破解的,特別是對於一些商業用途的c#軟體來說,因為盯著的人多,更是極易被攻破。使用dotfuscator有助於防止程式被逆向工程,同時使程式更小和更高效。
c#編寫的**如果不進行一定程度的混淆和加密,那麼是非常容易被反編譯進行破解的,特別是對於一些商業用途的c#軟體來說,因為盯著的人多,更是極易被攻破。現今很多用c#編寫的專案,做出的產品,都會遇到這種情況:c#的**辛辛苦苦寫出來之後,乙個反射工具,就可以完全顯露出來,這樣會是個什麼結果,不說被反射出來照搬功能,就是註冊和加密的那一部分都會被輕易拿到,所以就必須使用**混淆器。
c#的**混淆器有很多了,比如dotfuscator、xeoncode、foxit等等。這些混淆器大多是需要注意的,使用效果各不相同。普通的**混淆器只是把私有欄位和變數轉換成隨機碼,如果是小程式,還可以猜一猜,如果是比較大的程式,猜起來可就不會那容易了。高階一點的是混淆成不可閱讀的字元,這樣的混淆後的**乾脆就比機器碼還難懂,基本上是翻譯不出來了。但這些**混淆器都有一定的風險,即混淆後的**實然無法正常呼叫了。
這裡介紹的是dotfuscatorpro_4.9.7750版本,安裝 dotfuscator 好 開啟介面,有幾個需要配置的地方: options、input、rename、string encryption、build,其他的預設即可,下面一一講解。
using system;使用dotfuscator進行**混淆後 我們使用著名的反編譯軟體 reflector 來檢視,可以發現函式體內的**已經看不到了,字串也變成了亂碼,函式名稱也不可見了,效果圖如下:using system.collections.generic;
using system.linq;
using system.text;
,b is ", a, b);}}
public class person
}
dotfuscator作為一款**混淆的軟體,具有很強的反編譯功能,但使用時應注意以下幾點:
如果你加密的dll、exe裡有public類,需要被外部引用的話,那麼引用這個public的相關dll、exe也要一起放到dotfuscator input 裡,同時進行混淆加密,不然外部呼叫出錯。(意思就是關鍵檔案要和exe檔案放一起進去加密)
如果有public類,但是你不想照著第1點的方式做的話,可以勾選 library 模式(input 裡 展開專案,見下圖),或者不選擇 rename 選項,僅僅用 control flow 混淆(該種方式下會看見類名、函式名,但是看不到函式體)。
如果有public類,但是你也不想按照我的第一點、第二點的方法做的話,可以在rename選項裡排除這些public的類名、方法名、屬性名即可:使用 rename exclude 裡左側排除專案,或 右側 正則排除方法,見下圖:
當然,軟體世界沒有不能破解的,但是利用dotfuscator混淆加密後 至少可以擋住不少新手們!
Quartz CronTrigger配置說明
crontrigger配置格式 格式 秒 分 小時 日 月 周 年 序號說明 是否必填 允許填寫的值 允許的萬用字元 1秒 是0 59 2分 是0 59 3小時 是0 23 4日 是1 31 l w5月 是1 12 or jan dec 6周 是1 7 or sun sat l 7年 否empty ...
Capacity Scheduler配置說明
mapred.capacity scheduler.queue.capacity 設定排程器中各個queue的容量,這裡指的是占用的集群的slots的百分比,需要注意的是,所有queue的該配置項加起來必須小於等於100,否則會導致jobtracker啟動失敗。mapred.capacity sch...
Quartz CronTrigger配置說明
crontrigger配置格式 格式 秒 分 小時 日 月 周 年 序號說明 是否必填 允許填寫的值 允許的萬用字元 1秒 是0 59 2分 是0 59 3小時 是0 23 4日 是1 31 l w5月 是1 12 or jan dec 6周 是1 7 or sun sat l 7年 否empty ...