关于反编译:使用Reflector反编译的ASP.NET取得了多少成功?

关于反编译:使用Reflector反编译的ASP.NET取得了多少成功?

How much success is there working on ASP.NET decompiled by Reflector?

我刚刚完成了一个小型项目,该项目需要更改预编译但不再受支持的ASP.NET网站。该代码很丑陋,但在编译之前就很丑陋,令我印象深刻的是,一切似乎仍然可以正常工作。

进行了一些编辑,例如删除控件声明,因为它们被放入生成的文件中,并且与反编译的基类发生冲突,但是几个小时后一切都无法解决。

现在我只是好奇有多少其他人在此方面取得了多少成功。实际上,我实际上想写一篇CodeProject文章,介绍如何定义(如果不是自动化的话)逆向工程过程。


我必须做类似的事情,实际上我比拥有代码要快乐。这样做可能花了我较少的时间,但是经过编译器优化后的代码质量可能比原始代码要好。因此,是的,如果它是简单的应用程序,则对其进行反向工程相对简单;另一方面,我希望将来不必这样做。


Will:
Due to all the compiler sugar that exists in the .NET platform

幸运的是,这个特定的应用程序非常简单,但是我不希望将其反编译为原始代码,而只是像原始代码那样工作,或者甚至可以深入了解原始代码的工作方式,从而允许\\ \\'在新代码中。


由于.NET平台中存在所有编译器糖,因此,如果没有非常复杂的反编译器,就无法将二进制文件反编译为原始代码。例如,编译器在后台创建类来处理附件。使这种事情自动化似乎是一项艰巨的任务。但是,处理预期问题只是为了使其可编译。


如果它是用.NET 1.1或.NET 2.0编写的,则与使用VS 2008编译器进行编译相比,您将获得更多的成功,这主要是因为新语言版本带来了语法suger(Lambda,匿名类等)。

只要代码没有被混淆,您就应该能够使用反射器来获得可行的代码,如果您将其放入VS中,则应该立即在反射的代码中发现错误。

请注意以<>开头的变量/方法,我发现很多(尤其是在反映.NET 3.5时)。

最糟糕的是将其全部导出到VS,进行编译并确定有多少错误,然后从中进行调用。

但是,如果这是一个简单的项目,则您应该能够从反射器进行反向工程,至少使用反射器了解代码的工作原理,然后重新编码。


推荐阅读

    linux打包项目命令?

    linux打包项目命令?,项目,文件,命令,软件,数字,系统,名称,工具,目录,格式,Lin

    linux项目更新命令行?

    linux项目更新命令行?,工作,地址,系统,数据,信息,项目,标准,电脑,目录,命令,l

    linux进入网站命令?

    linux进入网站命令?,系统,环境,网站,传播,终端,命令,窗口,快捷键,界面,虚拟

    linux入侵网站命令?

    linux入侵网站命令?,工作,地址,信息,系统,数字,网站,名称,命令,网络,密码,lin

    linux命令支持通配符?

    linux命令支持通配符?,工具,系统,命令,灵活,较大,名称,名字,环境,数字,文件,L

    linux网站根目录命令?

    linux网站根目录命令?,系统,一致,设备,网站,目录,根目录,信息,标准,位置,电

    linux访问网站的命令?

    linux访问网站的命令?,地址,系统,服务,工作,网站,命令,网络,管理,信息,网址,L

    linux支持管道的命令?

    linux支持管道的命令?,通信,标准,系统,信息,地方,数据,管道,环境,设备,工具,L

    linux命令创建项目组?

    linux命令创建项目组?,管理,密码,项目,命令,系统,位置,文件,用户组,用户,文

    复制项目的linux命令?

    复制项目的linux命令?,系统,项目,文件,命令,目录,源文件,语法,选项,目标,功

    linux命令项目部署?

    linux命令项目部署?,项目,服务,环境,软件,系统,代理,管理,统一,做好,业务,怎

    linux部署项目的命令?

    linux部署项目的命令?,项目,系统,设备,环境,工作,基础,传播,信息,标准,代码,L

    linux项目常用命令?

    linux项目常用命令?,工作,地址,系统,信息,管理,项目,命令,目录,标准,网络,lin

    linux项目更新命令?

    linux项目更新命令?,系统,信息,网络,地址,网站,通信,管理,时间,项目,命令,lin

    启动项目命令linux?

    启动项目命令linux?,工作,经理,产品,技术,地址,数字,系统,项目,命令,信息,怎

    linux编译项目的命令?

    linux编译项目的命令?,系统,工作,地址,软件,工具,信息,代码,项目,命令,环境,l

    linux命令行登陆网站?

    linux命令行登陆网站?,网站,系统,密码,服务,地址,环境,网络,软件,状态,项目,

    linux登陆网站命令?

    linux登陆网站命令?,网络,工具,网站,标准,地址,软件,系统,命令,数据,环境,lin

    linux命令打开网站?

    linux命令打开网站?,网络,网站,系统,地址,密码,传播,工具,代码,环境,命令,大

    项目linux常用命令?

    项目linux常用命令?,工作,地址,系统,管理,设备,信息,项目,命令,目录,标准,lin