Aspx前端页面代码反编译还原实例——以某商业进销存Web版的Aspx反编译为例

Aspx反编译,Aspx页面还原,页面文件反编译,Aspx文件解密

基于asp.net的web项目如果前端aspx页面经过预编译处理后,可以正常运行,但是后期将无法修改前端页面。如果手上有源代码,可对源代码进行修改后重新发布。如果没有,则几乎没有可能进行修改。并且,如果想要根据最终发布版的文件查看前端页面的设计或得到源码将非常困难。

对于常规.net程序的加密混淆,国内外的研究较多,经过诸如MaxtoCode、SmartAssembly、Xenocode、Dotfuscator、Reactor等加密工具加密混淆过的代码,可以在相当程度上进行还原,我们也对此也已经有了比较成熟的解决方案。但是对于编译过的aspx页面,如何进行aspx反编译和aspx还原,除了我们团队长期以来对此进行过较深入的研究外(为此我们编写了专业的Aspx页面反编译还原工具AspxDecode),在国内外的相关研究都非常有限,到目前为止我们仍没有发现有关aspx还原的研究及相关文献。现以某商业进销存Web版的Aspx反编译为例对Aspx前端页面代码反编译还原过程进行简要说明。

Aspx反编译

安装该系统后,打开系统所在目录,查看相关页面文件,可以发现,该项目中所有前端aspx页面中的内容均为:“这是预编译工具生成的标记文件,不应被删除!”。可见项目经过了预编译处理,即项目在发布时,在VS的编译选项中去除了“允许更新些预编译站点”这一选项,如果是英文版VS编译的,页面中的内容将是“This is a marker file generated by the precompilation tool, and should not be deleted!”。正如提示信息所言,现在这些aspx文件仅起到一个标记的作用,里面的内容已经与程序的逻辑没有任何关联,真正的页面信息已经被编译进了dll文件中。

经过对项目文件的基本分析,可知该项目所有dll文件均采用Dotfuscator进行了加密混淆,首先对项目文件进行反混淆处理,经反编译后得到项目主要业务逻辑代码及后台页面代码。然后采用我们编写的反编译还原工具AspxDecode进行前端Aspx页面的还原及前后台页面文件对应,该项目涉及的前端文件有页面文件.aspx,控件文件.ascx,业务文件.ashx、模板文件.master以及第三方控件(如Fckeditor)等,均需要准确还原和对应。同时还需要处理好web控件、Html控件、动态脚本、控件属性、事情绑定等,经过处理后的页面代码如下,可以看到前端aspx页面经过了完美的还原。

Aspx反编译

(注:本文为 [风影网络工作室] 原创文章,未经书面许可,严禁转载和复制本站的任何信息,违者必究)