今天破解了一套軟件,可是怎麼修改DLL名稱呢?

http://www.cnblogs.com/zhouyinhui/archive/2009/06/04/1496485.htmlhtml

要改也不是沒有辦法`~~用framework自帶的工具 (Ildasm.exe)先反編成IL, 再用ILASM編回去, 若是加了強簽名,能夠修改編出來的IL文件,具體辦法網上能夠找到, 可是若是通過了混淆,編出來的東西好比方法名和變量名都變成沒有意義的名稱了~~~ 加了其它的反編手段的話另當別論. 緩存

 GAC全稱是Global Assembly Cache(全局程序集緩存)工具

  做用是能夠存放一些有不少程序都要用到的公共Assembly,例如System.Data、System.Windows.Forms等等。這樣,不少程序就能夠從GAC裏面取得Assembly,而不須要再把全部要用到的Assembly都拷貝到 應用程序 的執行目錄下面。舉例而言,若是沒有GAC,那麼勢必每一個WinForm程序的目錄下就都要從C:\WINDOWS\NET\Framework\v1.0.3705下面拷貝一份System.Windows.Forms.dll,這樣顯然不如都從GAC裏面取用方便,也有利於Assembly的升級和版本控制。
  除了系統默認放置在GAC中的Assembly如System.Windows.Forms之外,咱們也能夠添加本身的Assembly:
  1)建立一個strong-name的Assembly,例如ToolbarComponent.dll
  2)運行gacutil -i ToolbarComponent.dll,把這個Assembly添加到GAC ()
  3)在程序中動態裝載:
  System.Reflection.Assembly ass=Assembly.Load("ToolbarComponent, Version=1.0.934.20434, Culture=neutral, PublicKeyToken=65f45658c8d4927f");
  MessageBox.Show("Is the assembly loaded from GAC? "+ass.GlobalAssemblyCache);
  在上面的程序中,ToolbarComponent就是從GAC裝載而不是從程序的運行目錄下的dll文件中裝載,程序目錄下不須要放置ToolbarComponent.dll程序也能正常運行。另外,Assembly.Load()中的參數能夠經過"gacutil -l"查到。
  另外,上面提到了GAC中的Assembly必須是strong-name的。建立strong-name的Assembly的步驟大體以下:
  a) 在命令行運行「sn -k keyPair.snk」建立一個 密鑰 文件。這裏的sn.exe也是.NET附帶的一個工具。 (注意:在執行這個命令的時候,命令行的提示符應該指向你工程所在的目錄位置,對於C#工程來數,也就是*.csproj所在的目錄)
  b) 在裏面修改「AssemblyInfo.cs」文件:
  [assembly: AssemblyDelaySign(false)]
  [assembly: AssemblyKeyFile("..\\..\\keyPair.snk")] (注意:因爲VS2008不提倡在AssemblyInfo.cs文件中,設置AssemblyKeyFile屬性。因此,當你設置好以後編譯工程的時候,會出現警告錯誤,錯誤內容是{使用命令行選項「/keyfile」或適當的項目設置代替「AssemblyKeyFile」},因此建議在工程的屬性中設置。具體操做方法:工程右鍵屬性->署名->Assembly署名->設置*.snk文件目錄)`
  c) 編譯項目,就能獲得一個strong-name的Assembly。
  MSDN中有一些對GAC的介紹,您能夠參考:
  1)《Assembly Cache Viewer (Shfusion.dll)》
  2)《Global Assembly Cache》
  .NET Framework中附帶了一些和GAC有關的工具,其中包括:
  1)Gacutil.exe,一個命令行的工具,用於在GAC中瀏覽、添加、刪除Assembly
  2)Ngen.exe,也是一個命令行的工具,用於在GAC中建立Native Image

  3)mscorcfg.msc,一個MMC終端,能夠圖形化完成Gacutil.exe的主要功能。ui

方法一:將dll註冊到GAC裏面
方法二:用Assembly.LoadFrom(FileName)裝入

<probing privatePath="C:\\WINDOWS\\system32"/>沒有必要用雙斜槓


放到GAC,默認就會搜索GAC,因此引用沒有問題。
動態載入也是一種方法。用到了反射。
配置文件也行,呵呵。
相關文章
相關標籤/搜索