什么是 WCP?
WCP 的全称是 Windows Componentization Platform Servicing API,即管理 Windows 组件的编程接口。说是编程接口,可能也是留给微软自己用的,找不到文档,连头文件也没有。
为什么要从解读 WCP 入手?
事情要从 2014 年说起。随着 Windows 8 和 8.1 遍及,系统越来越大,补丁越来越多,越来越快,也必然越来越粗糙。相信不会有人没见过这样的精典画面:在深蓝色的前景上,一个圆圈在转,旁边三行大字:无法完成更新,正在撤销更改,请不要关闭计算机。
对此,我们只能在边上静静地等待,界面上没有任何可干预的点。
微软的建议是系统恢复,网友的建议是格掉重装。
我们当然不甘心格掉重装。
于是,有问题,看日志。
修复系统,当然需要重新复制文件,修改注册表。
但是,系统文件不是想改就能改的,很多时候需要必要的权限。
对于几个、几十个文件、注册表项(值)可以手工完成;对于成百上千的,就必须有工具。
顺手的工具不是想有就有的。于是,就要找,找不到,就得自己写。
重复劳动的问题,写脚本就能解决;更复杂的问题就不是写脚本能解决的,需要调用系统函数。
终于发现 WCP.dll 非常有用,但是其中的函数,未公开,无文档。
于是发现了 ida,于是要写 C 程序了。
于是发现,工程量越搞越大,大到单纯靠脑子已经记不全了。
好记性不如烂笔头。于是把这些内容记录下来,既方便自己,也方便别人。
这也是我自己的速查手册。
怎样解读 WCP?
那就请接着向下看。