『刨根问底のWPF学习』一个最简单的WPF应用的逆向分析记录
Posted fuhua
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了『刨根问底のWPF学习』一个最简单的WPF应用的逆向分析记录相关的知识,希望对你有一定的参考价值。
1.创建一个最简单的TestWpf项目,什么代码都不写,如下图所示:
2.鄙人是那种喜欢知其然知其所以然的人,突然看到这一坨代码实在有点蛋疼。
没办法,只能按照鄙人的学习习惯,一边查阅资料,一边通过逆向分析的方法弄明白这一坨代码究竟是怎么回事。
1.<Window x:Class="TestWpf.MainWindow" 2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4. xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 5. xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 6. xmlns:local="clr-namespace:TestWpf" 7. mc:Ignorable="d" 8. Title="MainWindow" Height="450" Width="800"> 9. <Grid> 10. </Grid> 11.</Window>
3.首先来看最外面这个标签,就是一对<Window></Window>,似乎看上去也很简单嘛。Window,顾名思义就是程序创建了一个窗口呗。
那么问题来了,这个Window是从哪里来的呢,就好比我们一个Int32这个类型,是属于System这个名称空间。
那么这个Window,是属于哪个名称空间呢,是从哪里引用的呢,引用的是哪个dll的呢?
<Window> </Window>
4.这还不简单,对着Window这个标签按F12,不就直接转到定义了吗,我们来看看。
原来这个Window的名称空间是属于PresentationFramework.dll这个程序集下面的。
绝对路径在:
C:Program Files (x86)Reference AssembliesMicrosoftFramework.NETFrameworkv4.0PresentationFramework.dll
5.按照本屌的一贯作风,肯定是找到这个PresentationFramework.dll,反编译看一番再说。
的确很快找到了System.Windows这个类。
6.这就完了?当然不是,我们再来看看还有啥牛逼的信息没有。
我们看到,这个程序集还写了一堆花里胡哨的东西,这些是什么东东?
7.带着第6点的疑问我们继续往下分析
以上是关于『刨根问底のWPF学习』一个最简单的WPF应用的逆向分析记录的主要内容,如果未能解决你的问题,请参考以下文章
WPFのDecorator Adorner和AdornerDecorator