這是我試圖完成的:製作一個「編譯器」/二進制編輯器來修改我的.net應用程序
我有兩個應用程序。一個是客戶端應用程序,另一個是編譯器。客戶端使用加密,出於安全原因,我希望用戶能夠運行'編譯器'應用程序,這將在已編譯的二進制文件中硬編碼安全密鑰,因此每個客戶端都有自己的加密密鑰存儲在其中。這甚至有可能或解決方案會瘋狂?謝謝。
這是我試圖完成的:製作一個「編譯器」/二進制編輯器來修改我的.net應用程序
我有兩個應用程序。一個是客戶端應用程序,另一個是編譯器。客戶端使用加密,出於安全原因,我希望用戶能夠運行'編譯器'應用程序,這將在已編譯的二進制文件中硬編碼安全密鑰,因此每個客戶端都有自己的加密密鑰存儲在其中。這甚至有可能或解決方案會瘋狂?謝謝。
當然,你所談論的是重寫MSIL代碼。微軟通過代碼合同一直這樣做。下面是一篇文章,解釋如何鏈接:http://msdn.microsoft.com/en-us/magazine/cc188743.aspx
又如:http://www.codeproject.com/Articles/20565/Assembly-Manipulation-and-C-VB-NET-Code-Injection
如果你的組件強烈簽署,您不能對其進行修改。您無法將修改的.net程序集保存到磁盤。但是,您可以構建您的彙編(如Kevin所述),以便能夠修改在運行時加載到內存中的代碼。它不會影響磁盤上的映像,並且修改會在每次啓動應用程序時運行。
謝謝! 「它不會影響磁盤上的映像」是什麼意思?這些更改不會保存在二進制文件中? – user1015551 2012-04-17 14:05:43
準確。它將在加載時修改代碼,但不能將其保存在磁盤上。 – 2012-04-17 14:26:15
非常感謝凱文,正是我需要的! – user1015551 2012-04-17 14:06:19