1、该DLL的字符串是以资源文件形式存在
2、无法确认是否存在强签名保护

解决方案 »

  1.   

    用ILDASM反编译,查找ldstr,把字符串全换成中文,再修改资源文件里面的文字,再用ILASM编译成exe/dll
    不过,强名的被别的Assembly引用的话就麻烦了,还要把别的Assembly的引用的强名去掉
      

  2.   

    1)用工具去掉其强命名保护
    2)用Reflector的FileDisassembler反编译其项目,然后替换Resource文件。
      

  3.   

    直接使用 Reflector反编译,然后,修改后再编译回来就行了:)
      

  4.   

    1、ILDASM反编译已经成功
    2、编辑资源文件....strings.resources提示很多错误反编译回去如果没有问题,我就不问这个问题了——实际上是有源代码的,但是不知道为何源代码编译后有不小的问题;
    这种还有源代码的情况下如何处理呢??
      

  5.   

    也可以采用外挂的方式,在程序运行后修改其对象的Text属性。
    有个C#的项目叫“ObjectSpy”可以参考一下。
      

  6.   

    有源代码的话,只需要在原有A.resx同级制作A.zh-CN.resx文件。详细的请参看MSDN中关于国际化的相关内容。都是很标准的东西。
      

  7.   

    对,和资源文件名有关,详细知识参见《C#高级编程》第四版第17章第3节以后,国际化与本地化。简单说下:对于应用程序,当前线程Thread.CurrentThread 有两个属性CurrentCulture和CurrentUICulture,表示当前线程的文化和程序界面文化,CurrentCulture默认是主机上控制面板里区域和语言选项的设置,CurrentUICulture默认是CurrentCulture的值。当然可以在编程时修改,让程序显示外国文字和使用外国文化(时区,格式化,排序等规则)。现在的问题是:你程序的文化为中文,但没有对应的中文资源文件可用,所以程序会回退选择默认的资源文件。你要做的就是添加一个中文资源文件。例如你原来的资源文件为A.resX,中文的资源文件应该是叫A.zh-CN.resX(中文分好多区域,根据你的机器情况来定),A.resX里的字符串Str1叫“Good Morning”,你复制出的A.zh-CN.resX里的字符串Str1就叫“早上好”,当程序调用资源文件A.resX的字符串Str1时,会根据Thread.CurrentThread.CurrentUICulture的值,选择特定文化的资源文件的字符串值。 详细看书,一切都在书里。网站也有类似的本地化功能,例如在日本服务器上运行中文网站,但设置方法不太一样。这部分知识很有用。那本书的扫描pdf版在网上可以down