shadowbrokers-exploits/windows/Resources/Dsz/Commands/Storage/time_storage.xsl
2017-04-14 11:45:07 +02:00

144 lines
4.7 KiB
XML

<?xml version='1.1' ?>
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:import href="include/StorageFunctions.xsl"/>
<xsl:output method="xml" omit-xml-declaration="yes" />
<xsl:template match="/">
<xsl:element name="StorageNodes">
<xsl:apply-templates select="Time"/>
<xsl:call-template name="TaskingInfo">
<xsl:with-param name="info" select="TaskingInfo"/>
</xsl:call-template>
</xsl:element>
</xsl:template>
<xsl:template match="Time">
<xsl:element name="ObjectValue">
<xsl:attribute name="name">TimeItem</xsl:attribute>
<xsl:apply-templates/>
</xsl:element>
</xsl:template>
<xsl:template match="LocalTime">
<xsl:element name="ObjectValue">
<xsl:attribute name="name">LocalTime</xsl:attribute>
<xsl:call-template name="StoreDate">
<xsl:with-param name="date" select="."/>
</xsl:call-template>
</xsl:element>
</xsl:template>
<xsl:template match="LocalTimeSeconds">
<xsl:element name="ObjectValue">
<xsl:attribute name="name">LocalTimeSeconds</xsl:attribute>
<xsl:element name="IntValue">
<xsl:attribute name="name">value</xsl:attribute>
<xsl:value-of select="."/>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template match="SystemTime">
<xsl:element name="ObjectValue">
<xsl:attribute name="name">GmtTime</xsl:attribute>
<xsl:call-template name="StoreDate">
<xsl:with-param name="date" select="."/>
</xsl:call-template>
</xsl:element>
</xsl:template>
<xsl:template match="SystemTimeSeconds">
<xsl:element name="ObjectValue">
<xsl:attribute name="name">GmtTimeSeconds</xsl:attribute>
<xsl:element name="IntValue">
<xsl:attribute name="name">value</xsl:attribute>
<xsl:value-of select="."/>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template match="TimeZone">
<xsl:element name="StringValue">
<xsl:attribute name="name">Bias</xsl:attribute>
<xsl:if test="Bias/@negative = 'true'">
<xsl:text>-</xsl:text>
</xsl:if>
<xsl:value-of select="substring-before(substring-after(Bias, 'T'), 'H')"/>
<xsl:text>:</xsl:text>
<xsl:value-of select="substring-before(substring-after(Bias, 'H'), 'M')"/>
</xsl:element>
<xsl:element name="StringValue">
<xsl:attribute name="name">CurrentState</xsl:attribute>
<xsl:value-of select="CurrentState"/>
</xsl:element>
</xsl:template>
<xsl:template match="DaylightSavingsTime">
<xsl:element name="ObjectValue">
<xsl:attribute name="name">DaylightSavingsTime</xsl:attribute>
<xsl:call-template name="Setting">
<xsl:with-param name="setting" select="Standard"/>
</xsl:call-template>
<xsl:call-template name="Setting">
<xsl:with-param name="setting" select="Daylight"/>
</xsl:call-template>
</xsl:element>
</xsl:template>
<xsl:template name="StoreDate">
<xsl:param name="date"/>
<xsl:element name="StringValue">
<xsl:attribute name="name">date</xsl:attribute>
<xsl:value-of select="substring-before($date, 'T')"/>
</xsl:element>
<xsl:element name="StringValue">
<xsl:attribute name="name">time</xsl:attribute>
<xsl:value-of select="substring-before(substring-after($date, 'T'), '.')"/>
</xsl:element>
<xsl:element name="StringValue">
<xsl:attribute name="name">nanoseconds</xsl:attribute>
<xsl:value-of select="substring-after($date, '.')"/>
</xsl:element>
</xsl:template>
<xsl:template name="Setting">
<xsl:param name="setting"/>
<xsl:element name="ObjectValue">
<xsl:attribute name="name"><xsl:value-of select="name($setting)"/></xsl:attribute>
<xsl:element name="StringValue">
<xsl:attribute name="name">Name</xsl:attribute>
<xsl:value-of select="$setting/Name"/>
</xsl:element>
<xsl:element name="StringValue">
<xsl:attribute name="name">Bias</xsl:attribute>
<xsl:if test="$setting/Bias/@negative = 'true'">
<xsl:text>-</xsl:text>
</xsl:if>
<xsl:value-of select="substring-before(substring-after($setting/Bias, 'T'), 'H')"/>
<xsl:text>:</xsl:text>
<xsl:value-of select="substring-before(substring-after($setting/Bias, 'H'), 'M')"/>
</xsl:element>
<xsl:element name="IntValue">
<xsl:attribute name="name">Month</xsl:attribute>
<xsl:value-of select="$setting/ConversionDate/@month"/>
</xsl:element>
<xsl:element name="IntValue">
<xsl:attribute name="name">Week</xsl:attribute>
<xsl:value-of select="$setting/ConversionDate/@week"/>
</xsl:element>
<xsl:element name="IntValue">
<xsl:attribute name="name">Day</xsl:attribute>
<xsl:value-of select="$setting/ConversionDate/@dayOfWeek"/>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:transform>