2012-03-13 76 views
1

假設我的申請包含一些我希望保護他人免受觀察和調查的算法。我正在考慮Smart Assembly產品的選項,以將我的程序集的加密版本嵌入到主要的exe程序集資源中。所以沒有解密,reverseengineer不能調查那些程序集的代碼。在運行時,SA在需要時透明地將它們解密到內存中。.NET中有可能從正在運行的應用程序轉儲IL嗎?

所以我的問題是:是否有可能reversengineer從運行的applcation的內存轉儲組件的IL?

爲什麼不使用模糊處理?那麼,我的應用程序非常複雜,我看到的所有.NET混淆器都無法正確處理它。

+3

你放入內存中的任何東西都是可以讀取的其他進程的公平遊戲。 – user7116 2012-03-13 14:48:14

回答

4

一旦解密IL並將其存儲在內存中執行,也可能是由相關的第三方獲取。你可以在上游游泳,並在你的應用程序中增加額外的複雜層次,但最終有人願意花時間能夠獲得你的IL。

你必須權衡發展對策與別人花費的努力來瀏覽一下你的算法的IL(或JIT輸出)的可能性的成本。也許更強大的商業混淆引擎是一種增值。也許IL的加密和解密是一種增值。

所有我能說的就是根據經驗,安全性好的規則:不給訪問到你不希望其他人擁有。

如果他們不能訪問您的算法,則可執行文件的分發是非啓動器:考慮託管解決方案(例如Citrix,虛擬桌面等)。

2

是的,這是可能的,即使它不一定是微不足道的。對於採用這種方法的一些混淆產品,有一些公開提供的翻斗車,儘管它們的來源是非常不可信的,我個人不會將它們用於非常孤立且非常一次性的機器之外的任何其他設備。這並不意味着那些故意濫用知識產權的人可能會有任何使用(或開發)此類工具的顧慮。

相關問題