Jump to content

Can FileVersion be determined from an extracted update?


GarrettV

Recommended Posts

TL;DR: Since an Assembly Version doesn't necessarily always match its target file version, when / how during the standalone update process is the file version determined? Can the file version be determined using the extracted MSU contents / without access to an update's targeted Windows environment?

I'll use 2018-05 Cumulative Update for Windows 10 Version 1709 for x86-based Systems as an example.

As I understand it (from reading the patent and some great posts on this forum), this is a self-contained update containing some base files, with deltas detailed in a container index file (_manifest.cix.xml) that are applied successively to generate the output files, with further assembly-specific instructions in the respective *.manifest files.

In this same update, it shows Jscript.dll's assembly version of 11.0.16299.431 but the file information CSV linked from the KB 4103727 page shows the file version as 5.812.10240.16384.

Container Index at windows10.0-kb4103727-x86_0b51b7297f8f4f5f13cb568efd2098073906ed54.msu/Windows10.0-KB4103727-x86.cab/_manifest_.cix.xml

Any information to guide me in the right direction would be much appreciated!

<?xml version="1.0" encoding="UTF-8"?>
<Container length="507069767" name="kb4103727.cab" type="CAB" version="1" xmlns="urn:ContainerIndex">
	<Description/>
	<Files>
		<File attr="8224" id="1664" length="4385280" name="x86_microsoft-windows-explorerframe_31bf3856ad364e35_10.0.16299.402_none_74136ccb261ddffc\explorerframe.dll" time="131682962211079996">
			<Hash alg="SHA256" value="e2b89f7573cebc9135b4966c7c55dba946a08a73d50765f61c444456120a3685"/>
			<Delta>
				<Source name="0" type="PA30">
					<Hash alg="SHA256" value="ddcf4e1de378f56e3c0df6cdcfee0644a3b11f7c1b82878b9e4e994d01acf3b2"/>
				</Source>
			</Delta>
		</File>
		<!-- ... -->
		<File attr="8224" id="2448" length="664064" name="x86_microsoft-windows-scripting-jscript_31bf3856ad364e35_11.0.16299.431_none_780cefe3d2ff2294\jscript.dll" time="131698003419080412">
			<Hash alg="SHA256" value="532a09e676e7f09775cc86e29035e60ad4fc3aa66fc5e39de90b0394b972fa6f"/>
			<Delta>
				<Source name="429" type="PA30">
					<Hash alg="SHA256" value="8e54cdc77585fb317850555eb6a0b7f301fe98d1c6f9fb2f357f4f2dc2bd3c86"/>
				</Source>
				<Basis file="2450"/>
			</Delta>
		</File>
		<!-- ... -->
	</Files>
</Container>

Assembly Manifest at windows10.0-kb4103727-x86_0b51b7297f8f4f5f13cb568efd2098073906ed54.msu/Windows10.0-KB4103727-x86.cab/x86_microsoft-windows-scripting-jscript_31bf3856ad364e35_11.0.16299.431_none_780cefe3d2ff2294.manifest

<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v3" manifestVersion="1.0" copyright="Copyright (c) Microsoft Corporation. All Rights Reserved." xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <assemblyIdentity name="Microsoft-Windows-Scripting-JScript" version="11.0.16299.431" processorArchitecture="x86" language="neutral" buildType="release" publicKeyToken="31bf3856ad364e35" versionScope="nonSxS" />
  <dependency discoverable="no" resourceType="Resources">
    <dependentAssembly dependencyType="prerequisite">
      <assemblyIdentity name="Microsoft-Windows-Scripting-JScript.Resources" version="11.0.16299.431" processorArchitecture="x86" language="*" buildType="release" publicKeyToken="31bf3856ad364e35" />
    </dependentAssembly>
  </dependency>
  <file name="jscript.dll" destinationPath="$(runtime.system32)\" sourceName="jscript.dll" importPath="$(build.nttree)\" sourcePath=".\">
    <securityDescriptor name="WRP_FILE_DEFAULT_SDDL" />
    <asmv2:hash xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#">
      <dsig:Transforms>
        <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" />
      </dsig:Transforms>
      <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha256" />
      <dsig:DigestValue>UyoJ5nbn8Jd1zIbikDXmCtT8OqZvxeOd6QsDlLly+m8=</dsig:DigestValue>
    </asmv2:hash>
  </file>
  <!-- ... -->
</assembly>

 

Link to comment
Share on other sites


Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...