2012年10月13日 星期六

.NET的保護方式

目前就我所知
.NET的保護方式有幾種
1.混淆
2.核級加密
3.硬體保護

混淆簡單的說就是把程式用無意義的字串來取代
像是GetValue()=>AAA()
或是會加入一些不會影響結果的程式讓返組譯變得困難
像是For(int i=0;i<100;i++);
使用混淆保護的程式仍是可以使用反組譯工具看到混淆後的MSIL
且很容易被有心人反推回去的
像微軟自帶的Dotfuscator Community Edition好像已經有現成反推回去的程式在網路上流佈

若採用核級加密來保護
使用反組譯工具試圖去看MSIL時
會顯示不是CLR程式
無法看到反組譯過後的程式碼
有比混淆稍微安全些的感覺
類似的軟體有MaxToCode

硬體保護方面
像是有聖天狗、Aladdin等硬體加密鎖
Visual Studio 本身有一個 Dotfuscator Community Edition 可以用:
http://msdn.microsoft.com/zh-tw/library/ms227240.aspx

沒有留言:

張貼留言