
WCP
文章平均质量分 52
心想才事成
这个作者很懒,什么都没留下…
展开
-
合并字符串
合并字符串 typedefNTSTATUS(__fastcall *fnRtlAppendLUnicodeStringToLUnicodeString)(LUNICODE_STRING *PathIn,LUNICODE_STRING *PathOut);staticfnRtlAppendLUnicodeStringToLUnicodeStringRtlAppendLU原创 2016-11-30 21:43:57 · 640 阅读 · 0 评论 -
卸载注册表的挂接点
卸载注册表的挂接点 调用CreateNewWindows就创建了空的注册表文件,并把注册表文件挂载到HKEY_LOCAL_MACHINE\{bf1a281b-ad7b-4476-ac95-f47682990ce7},形成了如HKEY_LOCAL_MACHINE\{bf1a281b-ad7b-4476-ac95-f47682990ce7}C:/CSITEST/system_volume原创 2016-12-08 19:12:14 · 585 阅读 · 0 评论 -
创建重要文件
创建重要文件 //----- (10121F8A)--------------------------------------------------------int __fastcall CreateImportantFiles(int a1, int*a2, int a3, int a4, int *a5, int *a6, int *a7){ v85 =-2147原创 2016-11-27 21:16:28 · 408 阅读 · 0 评论 -
CCSIExternalTransformerExecutor 初始化
CCSIExternalTransformerExecutor 初始化 pGetSystemStore可以返回CCSIExternalTransformerExecutor 对象。 pGetSystemStore(0,IID_ICSIExternalTransformerExecutor, &ppIStore);ppIStore->QueryInterface(IID原创 2016-12-15 21:14:39 · 569 阅读 · 0 评论 -
解析 GetRerootedSIL
解析 GetRerootedSIL GetRerootedSIL(class`anonymous namespace'::CNtStoreCreationParameters const &,classWindows::Auto *) //----- (1011F3CE)----------------------------------------原创 2016-12-14 11:02:50 · 668 阅读 · 0 评论 -
解读RtlGetIdentityAuthority
解读RtlGetIdentityAuthority RtlGetIdentityAuthority,这个函数使用的十分广泛,返回一组虚函数地址。需要一个输入参数,但是,不起什么作用,直接传一个 0 即可。输出参数为 IRtlIdentityAuthority接口。调用这个函数,好像会影响两个全局变量:g_pIIdentityAuthorityg_pIAppIdAutho原创 2016-12-21 20:26:20 · 497 阅读 · 0 评论 -
OpenStore是值得看一下的
OpenStore是值得看一下的 在 CreateNewOfflineStore 和 OpenExistingOfflineStore 中调用。调用 `anonymous namespace'::CNtStoreCreationParameters::CNtStoreCreationParameters((int)&v20); v9 =((int(__stdcall*)原创 2016-12-17 21:54:19 · 1348 阅读 · 0 评论 -
CComObjectBase 和IUnknown 接口
CComObjectBase 和IUnknown接口 `vftable'{for`Windows::COM::CComObjectBase'}比 `vftable'{for`IUnknown'}多一个函数:`vector deleting destructor'(unsignedint),且排在最前面。那么,是否可以推定:Windows::COM::CComObjec原创 2016-12-17 21:56:54 · 565 阅读 · 0 评论 -
CCSIExternalTransformerExecutor和 CCSIExternalTransformerExecutor::Impl
CCSIExternalTransformerExecutor和 CCSIExternalTransformerExecutor::Impl CCSIExternalTransformerExecutor 有 8 个字段;CCSIExternalTransformerExecutor::Impl 有 50 个字段。 两者是否有关系,是父子类吗?(571d3d原创 2016-12-18 21:26:03 · 402 阅读 · 0 评论 -
创建 Windows
创建 Windows CreateNewWindows,这是一个导出函数,在isolation.h中有定义: /* [local] */ HRESULT __stdcall CreateNewWindows( /*[annotation][in] */ _In_ DWORD dwFlags, /*[annotation][full][in原创 2016-12-08 19:11:18 · 399 阅读 · 0 评论 -
CDirectory类
CDirectory类通过调用IRtlDirectory接口,我们得到了以下的结论:IRtlDirectory接口有三个字段:5a994724 009215f05a9944b0+0和+2 处是两个虚地址表。+1 处的内容是CDirectory类的地址。 CDirectory类的地址0x009215f0位置地址解原创 2016-11-26 14:54:43 · 616 阅读 · 0 评论 -
调用IRtlDirectory 接口
调用IRtlDirectory接口 IRtlSystemIsolationLayer *pSystem= NULL;RtlGetSystem(0,NULL,&pSystem);LUNICODE_STRING dirName, ntDirName, newDir;RtlInitLUnicodeString(&dirName, L"c:\\tools");原创 2016-11-25 22:34:20 · 429 阅读 · 0 评论 -
合成接口
合成接口 来源:https://msdn.microsoft.com/zh-cn/library/ms233169(v=vs.80).aspx。这是一组接口,在C:\ProgramFiles (x86)\Windows Kits\10\Include\10.0.14393.0\um\isolation.h中定义。有系统的定义,就省事多了,且不用猜测和怀疑了。 I转载 2016-11-18 21:42:34 · 604 阅读 · 0 评论 -
WCP 新版本中多了几个新的导出函数
WCP 新版本中多了几个新的导出函数 从 10.0.10586.0起,isolation.h文件的大小从80 多开增加到了300 多开。下面几个导出函数就是新增的,当然远不止这些,只不过这几个对于测试比较方便。 /* [local] */ HRESULT __stdcall GetSystemStoreForTest( /*[annotation][原创 2016-12-08 21:00:31 · 489 阅读 · 0 评论 -
ServicingAPI 初始化
ServicingAPI 初始化和 GetIdentityAuthority函数和g_pIIdentityAuthority 和g_pIAppIdAuthority全局变量 有一个函数:GetIdentityAuthority 有两个全局变量:g_pIIdentityAuthorityg_pIAppIdAuthority //----- (100942CB原创 2016-12-01 22:01:57 · 381 阅读 · 0 评论 -
解读 DecompressManifest
解读 DecompressManifest //----- (10226B2C)--------------------------------------------------------int __fastcall Windows::WCP::Implementation::Rtl::DecompressManifest(int a1, //dwFlagsWindo原创 2016-12-02 21:53:14 · 759 阅读 · 0 评论 -
创建实例
创建实例创建实例,CreateInstance完成了所有构件的装配工作。当然,还有一个更高层的函数,CRtlOneShotTypeDescriptionInit,即100F2350,不过,在那个函数中已经看不到任何有用的内容,只是对这个函数进行了进一步的封装。//----- (100F2202)----------------------------------------原创 2016-11-21 21:12:20 · 635 阅读 · 0 评论 -
调用 DecompressManifest
调用 DecompressManifestHRESULTDecompressManifest(ULONGdwFlags,PLBLOBpManifestContents,HRESULT *hResult){ UINT_PTRpfn =CalcFunctionAddress(phWCP,pfb_DecompressManifest);原创 2016-12-03 22:29:52 · 342 阅读 · 0 评论 -
用 CreateNewPseudoWindows 和 CreateNewOfflineStore 创建 Store
用 CreateNewPseudoWindows和 CreateNewOfflineStore创建 Store 创建 Store需要用到CreateNewOfflineStore函数,有四个参数: _In_ DWORD dwFlags, _In_ PCOFFLINE_STORE_CREATION_PARAMETERS pParameters,原创 2016-12-06 22:25:53 · 407 阅读 · 0 评论 -
解读 SetupOfflineStoreEnvironment
解读 SetupOfflineStoreEnvironment //----- (10120FFA)--------------------------------------------------------int *__fastcallSetupOfflineStoreEnvironment(// 是由 OFFLINE_STORE_CREATION_PARAMETE原创 2016-12-13 21:53:07 · 640 阅读 · 0 评论 -
TransferFile
TransferFile //----- (100FDAE4)--------------------------------------------------------int __thiscallWindows::Rtl::SystemImplementation::CSystemIsolationLayer::TransferFile(Windows::Rtl::Syst原创 2016-12-24 23:23:09 · 445 阅读 · 0 评论 -
解读LZMSDecompressFile
解读LZMSDecompressFile HRESULTLZMSDecompressFile(LPWSTRCompressFileName){ HRESULTresult = 0; IRtlFile *pIFile = NULL; GetInterfaceAndObject(CompressFileName, &pIFile, NULL原创 2016-12-30 21:20:02 · 1512 阅读 · 0 评论 -
加载 WCP
加载 WCP 功能:加载WCP.DLL,初始化几个函数: //----- (1008CBD0)--------------------------------------------------------signed int __userpurge WcpLoad@eax>(const unsigned__int16 *a1@ecx>,con原创 2017-03-01 21:56:12 · 801 阅读 · 0 评论 -
解读 DelayExecution
解读 DelayExecution//----- (100E6897) --------------------------------------------------------__int32 __stdcall Windows::Rtl::SystemImplementation::DelayExecution(Windows::Rtl::SystemImplement原创 2017-03-13 20:24:23 · 3627 阅读 · 0 评论 -
解读 SysNativeCompressFile
解读 SysNativeCompressFile //----- (100EE3EA)--------------------------------------------------------int __thiscallWindows::Rtl::SystemImplementation::DirectFileSystemProvider::SysNativeCompres原创 2017-03-13 21:46:50 · 781 阅读 · 0 评论 -
解读 CopyFileContents
解读CopyFileContents //----- (100F1216)--------------------------------------------------------int __fastcall CopyFileContents(inta1,int a2, int a3, int a4){ v38 =C00000E5; v4原创 2017-03-14 21:35:39 · 683 阅读 · 0 评论 -
解读 DeltaDecompressFileFile
解读DeltaDecompressFileFile 使用DeltaDecompressFileFile函数可以解压缩DCD格式的压缩文件。 HRESULTDeltaDecompressFileFile(LPWSTRDeltaFileName,LPWSTRBaseFileName){ HRESULTresult = 0;原创 2017-03-12 18:09:05 · 602 阅读 · 0 评论 -
CbsCoreSetState
解析 hFile //----- (10087AE0)--------------------------------------------------------signed int __stdcall CbsCoreSetState(int a1,int a2){ v2 =0; switch (a1 ) { case 8:原创 2017-03-15 21:59:58 · 474 阅读 · 0 评论 -
解读 DetermineServicingStackVersion
解读 DetermineServicingStackVersion 这里也没有涉及到 hFile的值修改。 //----- (10086424)--------------------------------------------------------int __fastcall DetermineServicingStackVersion(LPCWSTR lpw原创 2017-03-15 22:01:02 · 1438 阅读 · 0 评论 -
解析CbsCore 模式
解析CbsCore模式 1CbsCoreModeOfflineHANDLE hFile =(HANDLE)1;if ( hFile ) SetCbsCoreMode((char *)1);2CbsCoreModePSRLv35 = W原创 2017-03-15 22:03:16 · 743 阅读 · 0 评论 -
InitSystemFunctions
解读 InitSystemFunctions//----- (10009460) --------------------------------------------------------signed int __thiscall InitSystemFunctions(void *this){ int v1; // eax@2 HMODULE v原创 2017-03-16 21:41:10 · 725 阅读 · 0 评论 -
解读RtlCreateServiceSid
解读RtlCreateServiceSid //----- (0000000180003E40)----------------------------------------------------__int64 __fastcall IsKeyProtected(HKEYhKey,__int64 a2, __int16 a3, _DWORD *a4){原创 2017-03-22 21:48:30 · 1155 阅读 · 0 评论 -
Sysprep
Sysprep //----- (10002AB0)--------------------------------------------------------int __stdcall SqmSysprepCleanup(){ CleanupAllWinSqmFiles(); return 0;}//----- (10002AC0)-------原创 2017-03-21 21:52:48 · 1332 阅读 · 0 评论 -
设置权限
设置权限 v9 = operator new(0x1Cu); v10 =(struct _TOKEN_PRIVILEGES*)v9; if (!v9) { v15 =-2147024882; "Failedto allocate memory for privilege tokens."); goto LABEL_342;原创 2017-03-21 21:38:28 · 1167 阅读 · 0 评论 -
解读 RtlTrimNtPathSegment
解读 RtlTrimNtPathSegment 返回字符串前后的 \ 数 typedefHRESULT(__fastcall *PRTL_TRIM_NTPATH_SEGMENT)( PLUNICODE_STRING, UINT_PTR *, UINT_PTR * );staticPRTL_TRIM_NTPATH_SEGMENTR原创 2017-02-25 21:42:53 · 687 阅读 · 0 评论 -
解读 GenerateHashList
解读 GenerateHashList 把几个初始条件串用固定的符号连接起来:a4 a1 !a3 , a2 # a5 \n typedefHRESULT(__fastcall *PGENERATE_HASH_LIST)( _LUNICODE_STRINGconst &, _LUNICODE_STRINGconst &, _LUNICO原创 2017-02-25 21:43:39 · 602 阅读 · 0 评论 -
CBSCore 中的字符串 SCZ
CBSCore 中的字符串 SCZ CBSCore 中的字符串 SCZ类似于 WCHAR*,但是,有一点不同,就是在WCHAR*前 -1位,保存了字符串的长度。引用的地址还是 WCHAR*的起始位置。不知道是怎么实现的。由于不知道如何表示 -1位的长度,因此也就没有办法实现 SCZ结构。好在可以用系统提供的函数进行初始化,但是,只能用P原创 2017-03-08 22:04:24 · 489 阅读 · 0 评论 -
解析 SCZ 字符串
解析 SCZ字符串 直接就定义成:typedef WCHAR *PSCZ;就是说,PSCZ就是保存了WCHAR *的首地址。真正的 SCZ字符串有两部分组成:第一部分是字符串的长度,第二部分是字符串本身,字符串以空结尾。 //----- (1008EBD7)---------------------------------------------原创 2017-03-08 22:05:48 · 641 阅读 · 0 评论 -
解读 FindServicingStackDirectoryVersion
解读 FindServicingStackDirectoryVersion 功能:找到当前版本的Servicing Stack的目录的版本号,用输入的目录与保存在注册表中的值进行对照。HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ComponentBased Servicing\Version比原创 2017-03-06 21:51:07 · 1230 阅读 · 0 评论 -
新版本的CbsCoreInitialize 函数可读性更强
新版本的CbsCoreInitialize 函数可读性更强 这是10.0.14393.0版本。//----- (10087380)--------------------------------------------------------int __stdcall CbsCoreInitialize(structIMalloc *a1,原创 2017-03-10 21:43:02 · 793 阅读 · 0 评论