博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
反编译Silverlight项目
阅读量:6260 次
发布时间:2019-06-22

本文共 1580 字,大约阅读时间需要 5 分钟。

在文章的开头,我想事先说明,本文并非诱导读者恶意反编译他人作品,盗取他人代码成果,只是为了学习Silverlight讨论而用。
 
在互联网上,每天都会有很多Silverlight项目发布,有的是开源,有的只是为了展示。在Silverlight学习的初期,多数都需要模仿学习,所以,发现一个Silverlight项目,能够查看其中的源代码是最好不过了。但是,Silverlight发布,只是发布资源包XAP,而所有资源都在这个XAP文件中,该如何查看其中的资源和代码呢?下面我将演示反编译的方法,演示中我将用Silverlight.Net首页Silverlight作为例子。
1. 首先打开Silverlight.Net,该页面中包含一个Silverlight导航动画;
 
 
2. 在浏览器中,点击右键,查看页面源代码;
 
 
3. 在html源代码中搜索"xap",很快就能定位出xap的位置。
 
 
 
我们看到
<param name="Source" value="clientBin/showcasenav/ShowcaseNav.xap" />
该value就是xap在服务器端的位置。
 
4. 我们使用同样的域名,来获取当前的xap文件。打开新的浏览器,在地址栏输入:  http://www.silverlight.net/clientBin/showcasenav/ShowcaseNav.xap
这时浏览器会提示你下载该xap文件。
 
 
5. 重新命名下载下来的文件ShowcaseNav.xap,为 ShowcaseNav.zip. 然后解压该压缩包到同一个目录. 在目录中,会看到该Silverlight使用的装配单文件,以及类库,和配置文件.
 
 
6. 下面可以使用大家都比较熟悉的反编译软件,Reflector来查看DLL中的资源和代码文件。 下载Reflector: 
 
 
 
7. 在Reflector中双击“
MsCommunities.Silverlight.ShowcaseNav”,展开文件会看到DLL和Resources,其中Resources中包含这所有的xaml文件和图片文件,DLL中都是类库后台代码。
 
 
 
8. 点击进入Reources目录,双击“
MsCommunities.Silverlight.ShowcaseNav.g.resources”,在Reflector右边可以看到资源列表,选中任意一个想查看代码的文件,点击右键“Save As”,保存到本地,即可使用VS2008或者文本编辑软件查看代码内容。
 
 
 
9. 对应着每个资源文件会有类库代码,双击“
MsCommunities.Silverlight.ShowcaseNav.dll”,再双击“
MsCommunities.Silverlight.ShowcaseNav”,可以查看各个类库文件,这里,我们选中"ItemAdvanceControl“,在Reflector右边即可看到反编译代码。
 
 
 
至此,我们已经讲述如何反编译Silverlight项目,查看其源代码,下面我想介绍一款国外的共享软件,也可以达到上面同样的效果 - Silverlight SPY,下载地址:
Silverlight SPY是一款共享软件,该软件可以自动获取XAP文件,帮你解析XAP中的文件,该软件和Reflector配合同样可以查看Silverlight项目源代码。同时,可以分解项目中的样式和UI,以及Isolated Storege展示给开发人员。我们在地址栏输入Silverlight.NET地址,即可得到,双击任何一个资源,在View窗口即可查看。
 
 
本文首发   ( )

本文转自 51CTO博客,原文链接:http://blog.51cto.com/kevinfan/243768 ,如需转载请自行联系原作者

你可能感兴趣的文章
团队作业第二次—项目选题报告
查看>>
docker~docker-compose的使用
查看>>
android 获取系统的参数(如音量大小,背光,网络类型等)
查看>>
lambda表达式
查看>>
[译] 怎样(以及为什么要)保持你的 Git 提交记录的整洁
查看>>
java中主线程等待所有子线程结束
查看>>
JavaScript中call,apply,bind方法的区别
查看>>
js 回顾知识总结一
查看>>
centeros bash: ifconfig: command not found
查看>>
leetcode Invert Binary Tree
查看>>
Python Requests快速入门
查看>>
[转] Invoke and BeginInvoke
查看>>
DataFrame的基本操作
查看>>
mysql02
查看>>
linux lftp命令
查看>>
多继承同名隐藏举例
查看>>
sql server 数据库忘记sa账户密码/ 无管理员账户解决办法
查看>>
试玩 PHP 5.4 的新特性
查看>>
Word该值小于列表中的前一条目
查看>>
第九周项目7-趣味编程
查看>>