今天,我正在研究Microsoft DLL mscordacwks.dll的问题,它是.NET框架的一部分。我之前已经看过很多次了,它始终是一个普通的PE文件,这意味着它以神奇的MZ开头。我只能在反汇编代码中找到对使用DCD的ELF二进制文件的引用。但是,这大约是文件的前三个字节DCD

这是DLL的开头:

Offset(h) 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

00000000  44 43 44 01 38 01 EE 42 00 00 0A 00 50 41 33 30  DCD.8.îB....PA30
00000010  80 16 D7 D5 DE B1 9D 01 B0 4E 10 D0 C7 04 0C C4  €.×ÕÞ±..°N.ÐÇ..Ä
00000020  84 D6 08 01 42 01 04 00 88 FB 17 32 00 00 00 00  „Ö..B...ˆû.2....
00000030  00 00 08 7D DE D3 AA 02 A0 2C AA AA AA AA AA AA  ...}ÞÓª. ,ªªªªªª
00000040  AA AA AA AA AA 1A AA AA AA 1A AA AA AA AA A1 01  ªªªªª.ªªª.ªªªª¡.
00000050  20 D2 A1 AA AA AA AA AA AA AA AA AA 22 2A AA AA   Ò¡ªªªªªªªªª"*ªª
00000060  AA AA A1 8D 09 00 FF 3F 00 1C F4 3F 00 F0 FF 51  ªª¡...ÿ?..ô?.ðÿQ
00000070  00 F0 04 00 FF 01 74 50 66 80 88 D0 1A 00 68 68  .ð..ÿ.tPf€ˆÐ..hh
00000080  44 33 33 00 00 00 00 00 30 65 97 00 50 67 64 96  D33.....0e—.Pgd–
00000090  28 6E 66 90 71 23 8E E3 B8 26 E2 54 1A 62 12 23  (nf.q#Žã¸&âT.b.#
000000A0  12 8B C5 20 63 92 18 44 C4 71 1A 44 E2 C4 48 48  .‹Å c’.DÄq.DâÄHH
000000B0  1D CB 63 C7 6D EC 36 96 D8 21 26 91 10 93 88 EB  .ËcÇmì6–Ø!&‘.“ˆë
000000C0  9A C4 B1 3C 76 0C 2A 31 22 B5 E3 C4 24 4E 24 A4  šÄ±<v.*1"µãÄ$N$¤
000000D0  31 00 88 53 23 71 EC 38 91 39 76 10 93 D8 42 E2  1.ˆS#qì8‘9v.“ØBâ
000000E0  98 D4 6E 6A 22 69 52 8B 91 04 47 3E BC 36 2D CD  ˜Ônj"iR‹‘.G>¼6-Í
000000F0  E8 4A AB 6F 99 12 6D C3 B2 61 5E 86 8E 0E 43 A7  èJ«o™.mòa^†Ž.C§


通常,这些DLL的大小约为1.7MB。但是,这个只有3kB。我在文件夹DCD中找到它。那是什么文件格式?而且,如果答案很简单,Windows怎么能够加载它?有关为什么使用该文件的一些背景信息:C:\Windows\WinSxS\amd64_netfx-mscordacwks_b03f5f7f11d50a3a_10.0.17134.1_none_a06aa12b896d6ba9是Microsoft的PA30,.NET框架是mscordacwks.dll,数据访问控制是MS,工作站是COR。调试.NET应用程序时,该DLL可以提供有关.NET对象的内存布局等的信息。通常,它与WinDbg的SOS扩展一起使用。有时,开发人员的mscordacwks.dll版本错误,这使SOS抱怨版本错误。因此,我一直在PC上寻找是否可以找到匹配的版本。

评论

@IgorSkochinsky:我不知道。也许。它就在那里,并且具有DLL扩展名。通常更新程序包应具有CAB或MSU扩展名,对吗?

也许您实际上可以上传dll? mscordacwks.dll与它有什么关系?那就是你今天要做的其他事情吗?

@EvanCarroll:我添加了有关该DLL应该做什么以及为什么处理它的一些详细信息。我会尝试找到一个上传位置。

#1 楼

看起来这些文件使用的是Windows Update软件包以前使用的增量压缩格式(MSDelta)的变体。

我找到了一个声称解压缩此类文件的项目:


受支持的文件类型


DCN v1
DCM v1
DCS v1
DCD v1

类型说明


标头符号:0x44 0x43 0x4D 0x01,DCM 01(打包的IPD PA30,需要源清单,wcp) )
标头符号:0x44 0x43 0x44 0x01,DCD 01(打包IPD PA30,需要增量,需要源文件)
标头符号:0x44 0x43 0x48 0x01,DCH 01(未打包,仅标头)
标头符号:0x44 0x43 0x58 0x01,DCX 01(未知,仅Windows 10支持)。




...但到目前为止无法正常工作。

评论


有趣!我不知道Windows是从哪里获得源代码的。没有包含其他数据的备用数据流

–托马斯·韦勒(Thomas Weller)
18-10-26在18:48

#2 楼

我只是遇到了同样的问题。我在C:\ Windows \ WinSxS \ Backup中找到了源DCN文件,使用上述工具我可以获取dll。之后,我将/ d选项与DCD一起使用以获得更改后的dll。