解读 WCP 环境

环境

WCP.dll

Windows Componentization Platform Servicing API
6.3.9600.16384
10.0.10240.16384
10.0.10240.16565
这里的版本并不重要。
原先是用的第一个版本,即 win8.1 中的文件。
后来在处理增量压缩时,发现 Win10 中增量压缩的格式比 Win8.1 有所增加,因此,就改用了 Win10 中的文件了。
本着越新越好的原则,最终选定了率三个版本。
版本一旦选定,就很难再改了。
这是由于我们调用的是系统未导出的函数,直接调用函数的地址;而不同版本的函数是不一样的,10.0.10240.16565 是当时的最新版本,后面有新的版本,也不能再换了。

文件在 \Windows 下WinSxs 下x86_microsoft-windows-servicingstack_31bf3856ad364e35_10.0.10240.16384_none_b5413773a99a53d2 目录下。
实际上,如果系统是 64 位,系统真正使用的并不是这个目录,而是 amd64_microsoft-windows-servicingstack_31bf3856ad364e35_10.0.10240.16384_none_115fd2f761f7c508。

两者肯定是有区别的,但主体功能是相似的,研究问题,当然是从简单、方便入手,因此,我们主要使用 32 位的文件进行,配合使用 64 位的文件。后面我们会看到,有些 32 位的函数已经优化成了函数声明。

WinSxs 称为 Side-by-side assemblie,后面再详细介绍。
在 WinSxs 下的目录成千上万,目录名基本上都像上面的这两个,看着让人眼晕。
要知道这些名称的组成,参看文件名解析。

WCP.dll 虽然称为 API,但是,并未提供必要的文档,连头文件也没有。好在从网上发现了 ida 工具,好在微软还是提供了符号文件,才算真正找到了解决问题的正确方向。
即便是这样,难度还是很大的。光是 WCP.dll 一个文件,其中的函数就有 8400 多个。
再到后来,发现 WCP.dll 并不是主程序,但不影响我们对系统的理解,以及修复系统。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值