日期:2014-05-19  浏览次数:20957 次

关于DLL文件的反编译问题
我用Reflector打开了一个DLL文件,也找到了我想修改的一个类的一个方法(class   Global   :   HttpApplication的Application_Start方法),定义如下:
protected   void   Application_Start(object   sender,   EventArgs   e)
{
        HttpApplicationState   contents   =   base.Application.Contents;
        try
        {
                contents[ "ResourceManager "]   =   ResourceManager.CreateFileBasedResourceManager( "Strings ",   base.Server.MapPath( "Resources/ "),   null);
                ....
        }
        catch   (Exception   exception)
        {
                ...
        }
现在的问题是(因为我想做多语言界面):如何把这个函数给改下并重新编译,也就是说我只想改变这个DLL文件里的一个方法而已.

------解决方案--------------------
学习

------解决方案--------------------

------解决方案--------------------
支持
------解决方案--------------------
感觉楼主是不是 将 反编译的 语言 选择成了c++了
------解决方案--------------------
不是所有的DLL文件都支持反编译多语言的。就像在assembly 里边把property描述成两个方法get()和set(),如果assembly是从c++编译过来的, 那么同一property的set()和get()可能有不同的accessor, like : public get(); ,private set();. 但c#中property访问器必须有相同的accessor.这时候想把assebly反编译成c# code就会有问题。
同样的情况还很多,msdn 里有详细信息。
------解决方案--------------------
用插件
Reflector.FileDisassembler
选择c#
生成代码后,再修改

如果人家混淆了,你就要费力了。。。。