我有一個桌面(winforms)應用程序,我正在尋找.net鏈接器,將程序集鏈接到彙編程序級別(低於IL)以防止逆向工程。另一種解決方案也是可以接受的。 沒有人知道這樣的鏈接器?.net應用程序的鏈接器
回答
什麼你要找的是一個混淆。它會編譯代碼,以便它仍然按照它應該執行的操作,但是如果反編譯它,它對大多數人來說都是不可理解的。
請注意,任何試圖使其100%安全的嘗試都會失敗,所有您可以爭取的努力都是儘可能地讓它變得更加堅硬。
有很多的解決方案,以不同的方式做到這一點:
注意,最後一個是不是混淆器,它虛擬化了你的申請。這樣做的一些好處是,到達底層代碼有點困難,但它主要是解決不同問題的產品,即需要將應用程序從其他已安裝的應用程序中分離出來(即不需要需要安裝.NET,沒有衝突的註冊表設置等)
謝謝,但那些混淆器/合併它沒有鏈接。 acctual鏈接在運行時完成 – 2010-07-05 11:18:39
這完全正確。 .NET沒有那麼多真正的連接器。我建議你看看Roman,Mono的答案,它有一個鏈接器。但正如他所說,沿着這條路線行駛時有很多限制。我會看看你正在嘗試解決的核心問題集,可能你需要一個不同的解決方案,而不是一個真正的鏈接器。 – 2010-07-05 11:20:55
XenoCode有一個很酷的工具,可以幫助你做到這一點:
謝謝,但它導致勺服務器。我不確定你的意思。 – 2010-07-05 11:19:59
顯然他們改了名字。但該應用程序仍然做用戶想要的。 – 2010-07-05 11:41:43
.Net Reactor是你在找什麼我猜(這是可以破解 - 但比經典混淆更難)。
你可能想看看在Mono的AOT(的提前)編譯:
有一些限制,但:你顯然可以」 t編譯使用CLR動態特徵,反射等的程序集。
謝謝,我正在調查它 – 2010-07-05 11:21:46
結帳Code Projection by Xeno,其有效。
混淆可能會有利於您的需求。但它仍然可以破解。 我不知道你要求的任何程序和實用程序,但我有一個建議給你。 如果您需要保護並非所有應用程序代碼,但只保留關鍵部分,則可以在C++/C中實現本節,並使用Platform Invoke與非託管代碼進行互操作。 Jeffrey Richter推薦了這種方法。
- 1. 鏈接.Net程序集
- 2. Spotify應用程序鏈接
- 3. SSRS - 鏈接無法在.net中單擊報告應用程序
- 4. .net控制檯應用程序與超鏈接?
- 5. 在Facebook應用程序如何鏈接與應用程序鏈接關聯
- 6. 如何獲取iPhone應用程序的應用程序鏈接
- 7. 將我的應用程序鏈接到其他應用程序
- 8. Phonegap Android應用程序,打開應用程序內的鏈接?
- 9. 。在Linux上使用MySql連接器的Net應用程序
- 10. 從我的.Net應用程序我的.NET應用程序
- 11. .NET應用程序的機器授權
- 12. .NET應用程序中的計時器
- 13. 上傳應用程序的鏈接
- 14. Android應用程序的深層鏈接
- 15. 鏈接到應用程序內的PDF
- 16. Facebook的iOS應用程序鏈接
- 17. 從iphone應用程序的HTML鏈接
- 18. Google play中的應用程序鏈接
- 19. 鏈接到msi的應用程序
- 20. vimeo應用程序的鏈接,但
- 21. 深入鏈接的Android應用程序
- 22. 將.NET應用程序連接到MySQL
- 23. 從.Net應用程序連接到Db2
- 24. 間接從.NET應用程序
- 25. Facebook應用程序商店鏈接舊應用程序版本
- 26. 從AdMob應用程序取消鏈接Firebase應用程序
- 27. 鏈接TCP應用程序和UDP應用程序
- 28. 發佈Facebook應用程序鏈接到iOS應用程序
- 29. 調用存儲過程訪問Oracle鏈接服務器時,.NET應用程序超時或未連接
- 30. 在應用程序中鏈接的自定義URL鏈接
你確定一個鏈接是你真的以後?如果您的最終目標是防止逆向工程,那麼可用的混淆器和類似的解決方案比用於.NET的實際連接器要多。換句話說,如果您的目標是將您的應用程序鏈接到本機代碼,那麼您可能沒有足夠接近該目標來將其稱爲解決方案。 – 2010-07-05 11:21:49
你是對的,我對鏈接器感興趣的唯一原因是安全。問題在於混淆器不夠穩固。 – 2010-07-05 11:44:20