首页
社区
课程
招聘
[转帖]反编译Silverlight应用
发表于: 2009-12-15 10:17 8788

[转帖]反编译Silverlight应用

2009-12-15 10:17
8788
注意是转帖自"博客堂"!!感谢作者ghj1976

其实反编译Silverlight 应用非常容易,下面就以反编译 2cbK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3A6G2k6i4u0S2M7%4y4A6j5#2)9J5k6h3y4Z5i4K6u0r3i4K6t1$3L8X3u0K6M7q4)9K6b7W2)9J5y4X3&6T1M7%4m8Q4x3@1u0Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0S2Q4b7e0q4Q4z5e0N6Q4c8e0k6Q4z5f1y4Q4b7V1q4Q4c8e0g2Q4b7f1k6Q4b7U0W2Q4c8e0k6Q4z5o6S2Q4z5e0S2Q4c8e0N6Q4z5f1q4Q4z5o6c8e0K9h3I4$3k6i4u0D9K9h3N6Z5N6q4!0q4y4g2!0n7b7g2)9&6y4q4!0q4y4#2)9&6y4q4!0m8z5q4!0q4y4q4!0n7z5q4!0n7b7g2!0q4y4q4!0n7c8g2)9^5b7W2!0q4y4W2)9&6c8q4!0m8y4g2!0q4z5q4!0m8c8W2!0n7y4q4!0q4y4W2)9&6z5q4)9^5c8g2!0q4z5q4!0n7c8W2)9&6z5g2!0q4y4q4!0n7z5q4!0m8b7g2!0q4z5q4!0n7c8W2)9^5y4#2!0q4y4#2!0m8z5q4)9^5b7W2!0q4x3#2)9^5x3q4)9^5x3X3S2@1N6s2m8Q4x3@1q4Q4x3V1k6Q4x3V1k6%4N6%4N6Q4x3X3g2B7L8$3g2J5j5i4y4K6K9h3y4Q4x3X3g2U0K9q4)9J5c8R3`.`. 有一个非常酷的,用Silverlight开发的恐龙街机对战的游戏,下面是一副截图。



下载Silverlight XAP文件:

由于 Silverlight 是在客户端浏览器中执行的,我们下载了 Silverlight 文件后,也就得到了完整的 Silverlight 执行文件。

当我们用 Internet Explorer 浏览器浏览了 Silverlight 应用后, 在Internet Explorer的临时文件夹中就有这个Silverlight的文件。我们可以直接来使用这个文件作为反编译的基础。Silverlight的文件是一个 xap 文件, 其实它就是一个 zip 文件。有关这部分的详细信息可以参看我之前写的博客: Silverlight项目中的文件 。

Internet Explorer  的临时文件夹可以通过下面菜单途径到达:

工具 --》 Internet 选项 打开 Internet 选项 设置Tab页。如下图:



在其中的 浏览历史记录中, 我们点击“设置” 按钮,进入了 Internet 临时文件和历史记录设置窗体,如下图:



在这个窗体中我们点击“查看文件”按钮,就可以进入临时文件目录。

临时文件目录下文件很多,由于silverlight 应用默认是 xap后缀的文件,我们通过过滤只看这类文件,如下图:



我们把上述 xap 文件另外复制一个目录,作为我们进一步反编译的基础。

注意,这个复制应该在 Internet Explorer 没有关闭 40eK9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3A6G2k6i4u0S2M7%4y4A6j5#2)9J5k6h3y4Z5i4K6u0r3 页面之前,同时Silverlight 加载之后进行,否则就会报错误:



我们把 xap 文件名的后缀修改为 zip , 然后解压缩到一个目录下。以这个街机对战的为例,解压缩后文件如下图,有关这些文件的用途,请参看我之前的博客:Silverlight项目中的文件 :



反编译:

由于Silverlight 2.0 以后, 大家几乎都是用 .net 来开发Siverlight 应用,我们也就可以使用 Reflector 打开其中的dll文件。

我们用 Reflector 打开 JurassicCombat.dll 文件后,查看Dll 反编译后的源代码很简单,如下图:



查看对应的XAML文件,则需要查看它的资源文件,如下图:



选中一个资源,然后右击,会出现“Save As” 菜单项,把这个资源另存在一个目录下,打开就可以看到 Xaml文件了, 当然上面资源文件中的图片文件,字体文件都可以看到。这个街机对战的恐龙动画特效文件并没有被编译到 Xap 文件中,而是另外有文件。我们在 Fiddler  辅助下就可以分析到这些图片文件的地址,这里使用的是 355K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3A6G2k6i4u0S2M7%4y4A6j5#2)9J5k6h3y4Z5i4K6u0r3b7$3I4A6k6h3&6@1b7X3W2F1i4K6u0r3K9h3#2S2k6$3g2K6i4K6u0W2P5X3W2H3i4K6t1$3L8X3u0K6M7q4)9K6b7W2)9J5y4X3&6T1M7%4m8Q4x3@1u0Z5N6s2c8H3i4K6y4m8i4K6u0r3i4K6u0r3N6%4N6%4i4K6u0W2K9X3!0W2M7X3q4K6M7$3W2U0i4K6u0W2j5$3S2Q4x3V1k6o6L8r3W2W2L8Y4c8n7K9h3&6Q4x3V1k6A6L8h3q4Y4k6i4x3J5i4K6u0W2P5X3W2H3 的图片对应不同等级的对战特效。由于这些图片文件的巨大, 我们在访问 120K9s2c8@1M7q4)9K6b7g2)9J5c8W2)9J5c8Y4N6%4N6#2)9J5k6h3A6G2k6i4u0S2M7%4y4A6j5#2)9J5k6h3y4Z5i4K6u0r3i4K6t1$3L8X3u0K6M7q4)9K6b7W2)9J5y4X3&6T1M7%4m8Q4x3@1u0Q4c8e0N6Q4z5f1q4Q4z5o6c8Q4c8e0g2Q4z5o6S2Q4z5f1c8Q4c8e0g2Q4b7e0N6Q4z5p5u0Q4c8e0g2Q4z5p5y4Q4z5e0k6Q4c8e0k6Q4z5e0N6Q4b7U0k6Q4c8e0W2Q4z5e0N6Q4b7U0c8Q4c8e0k6Q4z5o6W2Q4z5p5c8Q4c8e0W2Q4z5f1y4Q4z5o6m8Q4c8e0S2Q4b7e0k6Q4z5o6q4Q4c8e0S2Q4b7V1k6Q4z5e0W2Q4c8e0c8Q4b7U0W2Q4z5o6S2Q4c8e0c8Q4b7U0W2Q4z5o6g2Q4c8e0y4Q4z5o6m8Q4z5o6t1`.

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 213
活跃值: (147)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
学习了~初步了解了SL的神秘面纱~
2010-1-6 14:57
0
雪    币: 225
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
学习啊 这个新技术很牛X 期待楼主继续讲解下 编译和执行过程
2010-1-6 19:13
0
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
学习了,很好的教程
2010-1-6 22:41
0
雪    币: 109
活跃值: (10)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
5
应该叫“反编译 .NET 应用“更准确
2010-1-7 21:38
0
游客
登录 | 注册 方可回帖
返回