星期三, 11月 08, 2006

[.Net Software] .Net Obfuscator Survey

最近在Survey Obfuscation的工具
由於用C#撰寫出來的.Net assembly,很容易被反組譯 (such as .Net Reflector)
所以跟Member們一起研究了七八套Tools

目前Survey的有
Preemptive's DotFuscator
SmartAssembly
Remotesoft.Net Obfuscator
Spices.Obfuscator
.Net Reactor

有興趣的人都可以從google找到Trival來試用
主要試用的結果,其實大多發現大同小異....

最主要混淆的功能有二個
1. Renaming: 將class, function, namespace更名。 另外通常都會support一種叫libary mode
就是當這支assembly是當library的時候,我們並不希望public class or function也被更名。
選了library mode之後,混淆器自動保留原名

2. Control Flow: 就是將MSIL的程式再重新作些編排。這一點不是所有obfuscator都有支援。
但這點卻是蠻重要的,目前都是拿.Net Reflector作驗證會發現,不混淆的話,source code幾乎都可以
反組譯的回來.... 中間有幾套還不錯,像DotFuscator跟.Net Reactor都可以作Control Flow
還有幾套因為Trial版 沒辦法用.... 但這點應該是蠻重要的....

其它的像是Pruncing, compact, Optimization, ...etc
不過其實並沒有真的那麼確切的需要....

另外為了混淆.Net 3.0(WinFx or WPF)的程式 中間也遇了不少問題....@@
感覺未來極有可 能還是會遇到混淆之間 程式跑不起來或是出現bug的問題.....


可能還是從之中選出二三套多試用久一點..... 再來決定採購與否...

沒有留言: