<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>cmdLabs &#187; FAT</title>
	<atom:link href="http://blog.cmdlabs.com/tag/fat/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.cmdlabs.com</link>
	<description></description>
	<lastBuildDate>Mon, 26 Sep 2011 15:29:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Misinterpretation of File System Timestamps</title>
		<link>http://blog.cmdlabs.com/2009/05/08/misinterpretation-of-file-system-timestamps/</link>
		<comments>http://blog.cmdlabs.com/2009/05/08/misinterpretation-of-file-system-timestamps/#comments</comments>
		<pubDate>Fri, 08 May 2009 19:43:44 +0000</pubDate>
		<dc:creator>cmdLabs Staff</dc:creator>
				<category><![CDATA[Tool Validation]]></category>
		<category><![CDATA[FAT]]></category>
		<category><![CDATA[file system]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[timestamps]]></category>
		<category><![CDATA[tools]]></category>
		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://blog.cmdlabs.host.tivilon.com/?p=38</guid>
		<description><![CDATA[Despite the fact that FAT is one of the earliest file systems that forensic practitioners had to deal with, there are still gaps in knowledge that result in misinterpretation and misrepresentation. A prime example of this is the create time in FAT, which is not calculated correctly by some forensic tools. This issue came up [...]]]></description>
			<content:encoded><![CDATA[<p>Despite the fact that FAT is one of the earliest file systems that forensic practitioners had to deal with, there are still gaps in knowledge that result in misinterpretation and misrepresentation. A prime example of this is the create time in FAT, which is not calculated correctly by some forensic tools. This issue came up in a recently discussion I had with Geoff Fellows (http://www.f3.org.uk/modules/smartclient/client.php?id=3). Although FAT last write timestamps only have a resolution of 2 seconds, whereas the create time has a resolution of 10 milliseconds that some forensic tools fail to take into account. A difference of milliseconds can be important in some cases, and any calculations based on an incorrect representation of creation timestamps will be incorrect.</p>
<p><br clear=all>The confusion arises from the fact that FAT file systems represent create and last write timestamps slightly differently. Last write timestamps are 32 bit little-endian values, interpreted as follows:</p>
<p><br clear=all><span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"> 24                                16                8                0<br />
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+<br />
|Y|Y|Y|Y|Y|Y|Y|M| |M|M|M|D|D|D|D|D| |h|h|h|h|h|m|m|m| |m|m|m|s|s|s|s|s|<br />
+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+</span></p>
<p>\____________/\________/\_________/ \________/\____________/\_________/<br />
year        month      day        hour       minute       second</p>
<p><br clear=all>Take as an example the following FAT folder entry with the last write date highlighted in bold:</p>
<p><br clear=all><span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;">$ icat /dev/sdb1 353884 | xxd<br />
0000000: 2e20 2020 2020 2020 2020 2030 004f b079  .          0.O.y<br />
0000010: 763a 763a 0000 b579 763a a502 0000 0000  v:v:</span>&#8230;<span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;">yv:</span>&#8230;&#8230;<br />
<span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"> 0000020: 2e2e 2020 2020 2020 2020 2010 004f b079  ..         ..O.y<br />
0000030: 763a 763a 0000 b079 763a 6605 0000 0000  v:v:</span>&#8230;<span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;">yv:f</span>&#8230;..<br />
<span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"> 0000040: 4173 0061 006c 0076 0065 000f 009e 6e00  As.a.l.v.e</span>&#8230;.<span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;">n.<br />
0000050: 6500 7700 3400 2e00 6700 0000 6900 6600  e.w.4</span>&#8230;<span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;">g</span>&#8230;<span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;">i.f.<br />
0000060: 5341 4c56 454e 7e31 4749 4620 0075 78b9  SALVEN~1GIF .ux.<br />
0000070: 753a 763a 0000 </span><span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; font-weight: bold;">78b9</span><span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"> </span><span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; font-weight: bold;">753a</span><span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"> 9212 c1d4 0000  u:v:..x.u:</span>&#8230;&#8230;<br />
<span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"> 0000080: 4269 0066 0000 00ff ffff ff0f 0014 ffff  Bi.f</span>&#8230;&#8230;&#8230;&#8230;<br />
<span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"> 0000090: ffff ffff ffff ffff ffff 0000 ffff ffff </span>&#8230;&#8230;&#8230;&#8230;&#8230;.</p>
<p><br clear=all>Converting to big-endian gives 3a 75 b9 78, which has the following binary representation:</p>
<p><br clear=all>00111010 01110101 10111001 01111000</p>
<p><br clear=all>This translates to a timestamp of 2009.03.21 23:11:48 as follows:</p>
<ul>
<li>7 bits = 0011101 = 29 years since 1980</li>
<li>4 bits = 0011 = 3 months</li>
<li>5 bits = 10101 = 21 days</li>
<li>5 bits = 10111 = 23 hours</li>
<li>6 bits = 001011 = 11 minutes</li>
<li>5 bits = 11000 = 24 = 48 seconds</li>
</ul>
<p><br clear=all>Note that 5 bits cannot store all 60 seconds, so last write timestamps must be incremented in 2 second intervals, and is always an even number of seconds.</p>
<p><br clear=all>Although the create time follows this same general calculation, it uses an additional 8 bits to represent one hundredths of a second. In the same directory listing above, the create timestamp is identical to the last modified timestamp except for an additional byte (75 78 b9 75 3a). The additional byte equates to 117 hundredths of a second, which brings the create time to 2009.03.21 23:11:49.17. Thus, the create time can have odd number of seconds, and has a resolution of 10 milliseconds.</p>
<p><br clear=all>Older versions of XWays Forensics had the option to display timestamps to tenths of a second, and newer versions can be configured with greater precision as shown here:</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-39" title="directory_browser_options-x-ways" src="http://blog.cmdlabs.host.tivilon.com/wp-content/uploads/2009/05/directory_browser_options-x-ways.jpg" alt="directory_browser_options-x-ways" width="429" height="532" class="aligncenter size-full wp-image-243" /></p>
<p><br clear=all>Note: Updated configuration screenshot showing increased precision in XWays 15.1 SR3 provided by Geoff Fellows.</p>
<p><br clear=all>The create timestamps for files copied onto a thumb drive are shown here in XWays Forensics with tenths of seconds displayed:</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-40" title="blog1-winhex-createtimes" src="http://blog.cmdlabs.host.tivilon.com/wp-content/uploads/2009/05/winhex-createtimes.jpg" alt="blog1-winhex-createtimes" width="430" height="292" class="aligncenter size-full wp-image-244" /></p>
<p><br clear=all>However, some other forensic tools like TSK only interpret the first four bytes of the create date-time stamp, limiting the resolution to 2 seconds. This is demonstrated in the following listing of the same files as those listed above using XWays (we have reported this bug and it will be fixed in the next release of TSK).</p>
<p><br clear=all><span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;">$ fls -l /dev/sdb1 353884 | awk {&#8216;print $3 </span>&#8220;<span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;">\t</span>&#8220;<span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"> $10 </span>&#8220;<span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;">\t</span>&#8220;<span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"> $11 </span>&#8220;<span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"> </span>&#8220;<span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;"> $12&#8242;} | sort </span>&#8211;<span style="font-family: Courier,mono; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal;">key 2<br />
snake_oil.jpg					2009.03.21	 23:03:32 (EDT)<br />
orange-Clark_Stanley_Snake_Oil.png	2009.03.21	 23:04:32 (EDT)<br />
orange-OilKingLrg.jpg			2009.03.21	 23:04:48 (EDT)<br />
orange-Drs_Mixer.jpg				2009.03.21	 23:05:24 (EDT)<br />
orange-Hostetters_Bitters.jpg		2009.03.21	 23:05:42 (EDT)<br />
orange-wine_of_tar.jpg			2009.03.21	 23:05:54 (EDT)<br />
orange-medsh17.jpg				2009.03.21	 23:06:04 (EDT)<br />
orange-miraclecure.jpg			2009.03.21	 23:06:14 (EDT)<br />
snakeoil.jpg					2009.03.21	 23:07:22 (EDT)<br />
snake-oil2.jpg					2009.03.21	 23:08:16 (EDT)<br />
banjsalv.jpg					2009.03.21	 23:11:30 (EDT)<br />
salvenew4.gif					2009.03.21	 23:11:48 (EDT)<br />
yankdcornsalvelg.jpg				2009.03.21	 23:12:36 (EDT)<br />
liniment-for-man-and-beast.jpg		2009.03.21	 23:12:50 (EDT)<br />
Thumbs.db						2009.03.22	 14:25:12 (EDT)</span></p>
<p><br clear=all>This issue was recently fixed in EnCase version 6.12, and is documented in the release note as &#8220;339: EnCase does not read FAT Create Date correctly (BUGID67).&#8221; EnCase version 6.12 now displays the create time to the correct second but not the hundredth of a second.</p>
<p><br clear=all>If a forensic examiner is not aware of this error, it can not only introduce inaccuracies into his/her findings, it can also reflect poorly on his/her expertise in this area.</p>
<p><br clear=all>The fact that this bug has existed in EnCase and other widely used forensic tools clearly demonstrates the need to validate important findings using more than one tool. Furthermore, this issue demonstrates that forensic practitioners cannot simply push buttons and unquestioningly rely on the results, but rather must understand the underlying technology sufficiently to double check what their tools are reporting.</p>
<p><br clear=all>Another area relating to FAT file systems where current literature is incorrect is in file allocation strategies but that discussion is for another time&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.cmdlabs.com/2009/05/08/misinterpretation-of-file-system-timestamps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

