今天破解了一套软件,可是怎么修改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,因此引用没有问题。
动态载入也是一种方法。用到了反射。
配置文件也行,呵呵。
相关文章
相关标签/搜索