反编译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: http://www.red-gate.com/products/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,下载地址:http://silverlightspy.com/silverlightspy/download-silverlight-spy/。

  Silverlight SPY是一款共享软件,该软件可以自动获取XAP文件,帮你解析XAP中的文件,该软件和Reflector配合同样可以查看Silverlight项目源代码。同时,可以分解项目中的样式和UI,以及Isolated Storege展示给开发人员。我们在地址栏输入Silverlight.NET地址,即可得到,双击任何一个资源,在View窗口即可查看。

时间: 2024-10-26 13:52:50

反编译Silverlight项目的相关文章

一起谈.NET技术,反编译Silverlight项目

在互联网上,每天都会有很多Silverlight项目发布,有的是开源,有的只是为了展示.在Silverlight学习的初期,多数都需要模仿学习,所以,发现一个Silverlight项目,能够查看其中的源代码是最好不过了.但是,Silverlight发布,只是发布资源包XAP,而所有资源都在这个XAP文件中,该如何查看其中的资源和代码呢?下面我将演示反编译的方法,演示中我将用Silverlight.Net首页Silverlight作为例子. 1. 首先打开Silverlight.Net,该页面中包

C#反编译出来的.resources文件怎么在visual studio中导入到项目中

问题描述 C#反编译出来的.resources文件怎么在visual studio中导入到项目中 C#反编译出来的.resources文件怎么在visual studio中导入到项目中 不然把代码编译之后总是报异常 缺少.resource文件 请教了,多谢! 解决方案 1.资源文件格式转换,将.resources(二进制)文件转成.resx文件(XML) 用Program FilesMicrosoft Visual Studio .NET 2003SDKv1.1Bin下 resgen.exe 格

一个项目反编译成java文件后怎样编译成class文件

问题描述 本人是java新手,一个项目要修改一些数据,用jd-gui把class文件全部反编译成java文件,请问怎样重新编译成class文件. 解决方案 解决方案二:javacfile.java命令可以编译file.java为file.classjavafile可以运行file.class,注意命令行中不用后缀解决方案三:一个项目不是单个java解决方案四:一个项目的话,直接在eclipse直接运行时,应该自动编译了吧解决方案五:弄进Eclipse,就完事了...解决方案六:引用1楼voice

【转】一个不错的eclipse反编译插件

在CSDN论坛上看到的一个不错的eclipse反编译插件,感觉看起来不错的样子,因而记下,原网址是:http://topic.csdn.net/u/20121030/14/CDE52930-BAF2-4F88-B751-3797A7EB3C44.html 闲暇之余,写了一个Eclipse下的Java反编译插件:Eclipse Class Decompiler,整合了目前最好的2个Java反编译工具Jad和JD-Core,并且和Eclipse Class Viewer无缝集成,能够很方便的使用本插

Visual Studio编译WebSite项目时出现的问题

如何解决Visual Studio编译WebSite项目时的cannot update project reference问题 问题出现的场景: 1. Visual Studio 的版本:Visual Studio 2012 2. Web 项目类型是 WebSite,不是 Web Application 3. Web 项目引用的 Visual Studio 项目被删除或卸载(Unload) 详细的错误信息: Error 124 Cannot update project reference ''

Android如何防止apk程序被反编译

作为Android应用开发者,不得不面对一个尴尬的局面,就是自己辛辛苦苦开发的应用可以被别人很轻易的就反编译出来. Google似乎也发现了这个问题,从SDK2.3开始我们可以看到在android-sdk-windows\tools\下面多了一个proguard文件夹 proguard是一个java代码混淆的工具,通过proguard,别人即使反编译你的apk包,也只会看到一些让人很难看懂的代码,从 而达到保护代码的作用. 下面具体说一说怎么样让SDK2.3下的proguard.cfg文件起作用

服务器-class文件反编译为Java

问题描述 class文件反编译为Java SQL server 2008+myclipse+tomcat开发OA系统时,如何把tomcat服务器下的项目还原在myclipse中编译. 解决方案 Java Decompiler 这个东东就比较好用http://www.bkill.com/download/20100.html 解决方案二: 1.建一个自己的工程 2.反编译classess下的文件(工具很多,后期要做很多修复工作),作为自己的源码 3.拷贝相应的lib 4.jsp,js等资源考到we

简单的Android之apk包反编译方法

网上相关的文章一大堆了,我只是总结下自己的反编译方法和工具 工具下载地址: http://download.csdn.net/detail/zsjangel/7104663 下载上面的三个工具的压缩包 Apktool_v1.5.1_CHS_By_b-sf.rar  dex2jar.zip jd-gui-0.3.5.windows.zip 一.反编译 xml 等模版资源文件. 解压 apktool 包,然后将你要反编译的 apk 文件拖放到 ApkModify.bat  文件上就自动反编译了,这个

反编译-有没有篡改exe dll的方法?

问题描述 有没有篡改exe dll的方法? 我想改编一个exe(C#),我试着反编译了它和他所有的dll, 然后发现程序里有奇怪的引用,让我无法启动项目. 我自己的目的就是改编这个exe不超10行的代码,有没有比反编译更奏效的改编方法? 解决方案 修改 EXE 中资源比较简单,但想改功能代码基本上是不可能的. 除非你全部反成汇编,或者使用 C# 专用反编译工具. 解决方案二: 如果没加壳并混淆的话,改个资源,加上一些简单功能跳转,还是很容易实现的.否则就比较麻烦了.你可以去看雪论坛问问 解决方案