Difference between pages "RegXML" and "Windows SuperFetch Format"

From ForensicsWiki
(Difference between pages)
Jump to: navigation, search
(Correct again (category changes don't appear to be visible in the preview))
 
(MEM file)
 
Line 1: Line 1:
RegXML is an XML syntax analogous to [[Digital Forensics XML]].  It represents the contents of a Windows Registry hive file, presenting key and value cells of the hive as file and directories of a file system.
+
{{expand}}
  
==Disambiguation==
+
== MEM file ==
 +
Some of the <tt>Ag*.db</tt> files are MEM files.
  
Please note that RegXML is *also* the name of a Windows command-line utility that exports sections of the Windows Registry as XML-formatted files.  That program was released on Softpedia.  It is a completely separate effort from RegXML otherwise mentioned in this article.
+
<b>Note that the following format specification is incomplete.</b>
  
==Sample XML==
+
The MEM file consists of:
 +
* file header
 +
* compressed blocks
  
This RegXML is a sample of the System hive from the [http://digitalcorpora.org/corpora/scenarios/m57-patents-scenario M57-Patents scenario], image Charlie 2009-11-16.  Its structure is of the first version of RegXML, a deep-hierarchy structure created by extending the [http://libguestfs.org/hivexml.1.html Hivexml] utility.
+
=== File header ===
 +
The file header is 84 bytes of size and consists of:
 +
{| class="wikitable"
 +
|-
 +
! Offset
 +
! Size
 +
! Value
 +
! Description
 +
|-
 +
| 0
 +
| 4
 +
| "MEMO" (0x4d, 0x45, 0x4d, 0x4f) or "MEM0" (0x4d, 0x45, 0x4d, 0x30)
 +
| Signature
 +
|-
 +
| 4
 +
| 4
 +
|
 +
| Uncompressed (total) data size
 +
|-
 +
|}
  
<pre>
+
Where:
<?xml version="1.0" encoding="UTF-8"?>
+
* "MEMO" (0x4d, 0x45, 0x4d, 0x4f) is used on Windows Vista
<hive>
+
* "MEM0" (0x4d, 0x45, 0x4d, 0x30) is used on Windows 7
  <mtime>2009-11-17T00:33:57Z</mtime>
+
  <node name="$$$PROTO.HIV" root="1">
+
    <mtime>2009-11-13T04:47:33Z</mtime>
+
    <byte_runs>
+
      <byte_run file_offset="4128" len="92"/>
+
    </byte_runs>
+
    <node name="ControlSet002">
+
      <mtime>2009-11-09T01:26:39Z</mtime>
+
      <byte_runs>
+
        <byte_run file_offset="1480856" len="93"/>
+
      </byte_runs>
+
      <node name="Control">
+
        <mtime>2009-11-13T04:48:01Z</mtime>
+
        <byte_runs>
+
          <byte_run file_offset="1481240" len="87"/>
+
        </byte_runs>
+
        <value type="string" key="WaitToKillServiceTimeout" value="20000">
+
          <byte_runs>
+
            <byte_run file_offset="1481328" len="48"/>
+
            <byte_run file_offset="13448" len="16"/>
+
          </byte_runs>
+
        </value>
+
        <value type="string" key="SystemStartOptions" value="NOEXECUTE=OPTIN  FASTDETECT">
+
          <byte_runs>
+
            <byte_run file_offset="1481464" len="42"/>
+
            <byte_run file_offset="3006752" len="60"/>
+
          </byte_runs>
+
        </value>
+
        <value type="string" key="SystemBootDevice" value="multi(0)disk(0)rdisk(0)partition(1)">
+
          <byte_runs>
+
            <byte_run file_offset="3006856" len="40"/>
+
            <byte_run file_offset="3206056" len="76"/>
+
          </byte_runs>
+
        </value>
+
        <node name="Windows">
+
          <mtime>2009-11-13T03:08:00Z</mtime>
+
          <byte_runs>
+
            <byte_run file_offset="2355232" len="87"/>
+
          </byte_runs>
+
          <value type="expand" key="SystemDirectory" value="%SystemRoot%\system32">
+
            <byte_runs>
+
              <byte_run file_offset="2355368" len="39"/>
+
              <byte_run file_offset="3111128" len="48"/>
+
            </byte_runs>
+
          </value>
+
          <value type="binary" encoding="base64" key="ShutdownTime" value="RDGhgQ5kygE=">
+
            <byte_runs>
+
              <byte_run file_offset="3203784" len="36"/>
+
              <byte_run file_offset="1481592" len="12"/>
+
            </byte_runs>
+
          </value>
+
        </node>
+
        <node name="WOW">
+
          <mtime>2009-11-09T01:22:59Z</mtime>
+
          <byte_runs>
+
            <byte_run file_offset="2359096" len="83"/>
+
          </byte_runs>
+
          <value type="expand" key="cmdline" value="%SystemRoot%\system32\ntvdm.exe">
+
            <byte_runs>
+
              <byte_run file_offset="2358720" len="31"/>
+
              <byte_run file_offset="2359184" len="68"/>
+
            </byte_runs>
+
          </value>
+
          <value type="string" key="KnownDLLs" value="comm.drv commdlg.dll ctl3dv2.dll ddeml.dll
+
keyboard.drv lanman.drv mmsystem.dll mouse.drv netapi.dll olecli.dll olesvr.dll pmspl.dll shell.dll
+
sound.drv system.drv toolhelp.dll vga.drv wfwnet.drv win87em.dll winoldap.mod winsock.dll
+
winspool.exe wowdeb.exe timer.drv rasapi16.dll compobj.dll storage.dll ole2.dll ole2disp.dll
+
ole2nls.dll typelib.dll msvideo.dll avifile.dll msacm.dll mciavi.drv mciseq.drv mciwave.drv
+
progman.exe avicap.dll mapi.dll">
+
            <byte_runs>
+
              <byte_run file_offset="2359256" len="33"/>
+
              <byte_run file_offset="2361648" len="904"/>
+
            </byte_runs>
+
          </value>
+
        </node>
+
      </node>
+
    </node>
+
  </node>
+
</hive>
+
</pre>
+
  
==See Also==
+
=== Compressed blocks ===
 +
The file header is followed by compressed blocks:
 +
{| class="wikitable"
 +
|-
 +
! Offset
 +
! Size
 +
! Value
 +
! Description
 +
|-
 +
| 0
 +
| 4
 +
|
 +
| Compressed data size
 +
|-
 +
| 4
 +
| ...
 +
|
 +
| Compressed data
 +
|-
 +
|}
  
* A. Nelson, “RegXML: XML conversion of the Windows Registry for forensic processing and distribution,” in Advances in Digital Forensics VIII, ser. IFIP Advances in Information and Communication Technology, K.-P. Chow and S. Shenoi, Eds. Springer, 2012.
+
=== Uncompressed data ===
* [https://github.com/ajnelson/regxml_extractor RegXML Extractor] (on github)
+
<b>TODO</b>
[[Category:Digital Forensics XML]]
+
 
 +
== MAM file ==
 +
On Windows 8.1 the MEM file format seem to have been replaced by the MAM file format.
 +
 
 +
<b>Note that the following format specification is incomplete.</b>
 +
 
 +
{| class="wikitable"
 +
|-
 +
! Offset
 +
! Size
 +
! Value
 +
! Description
 +
|-
 +
| 0
 +
| 4
 +
| "MAM\x84" (0x4d, 0x41, 0x4d, 0x84)
 +
| Signature
 +
|-
 +
|}
 +
 
 +
== TRX file ==
 +
The <tt>Ag*.db.trx</tt> files are TRX files.
 +
 
 +
<b>Note that the following format specification is incomplete.</b>
 +
 
 +
=== File header ===
 +
The file header is variable of size and consists of:
 +
{| class="wikitable"
 +
|-
 +
! Offset
 +
! Size
 +
! Value
 +
! Description
 +
|-
 +
| 0
 +
| 4
 +
| 1
 +
| Unknown (Version?)
 +
|-
 +
| 4
 +
| 4
 +
|
 +
| Unknown
 +
|-
 +
| 8
 +
| 4
 +
|
 +
| File size
 +
|-
 +
| 12
 +
| 4
 +
|
 +
| Maximum number of records (of the record offsets array)
 +
|-
 +
| 16
 +
| 4
 +
|
 +
| Number of records
 +
|-
 +
| 20
 +
| ...
 +
|
 +
| Record offsets array, where the record offset is a 32-bit integer. Unused record offset are set to 0.
 +
|-
 +
|}
 +
 
 +
=== Record ===
 +
<b>TODO describe</b>
 +
 
 +
== See Also ==
 +
* [[SuperFetch]]
 +
 
 +
== External Links ==
 +
* [http://blog.rewolf.pl/blog/?p=214 Windows SuperFetch file format – partial specification], by ReWolf, October 5, 2011
 +
 
 +
[[Category:File Formats]]

Revision as of 00:59, 15 April 2014

Information icon.png

Please help to improve this article by expanding it.
Further information might be found on the discussion page.

MEM file

Some of the Ag*.db files are MEM files.

Note that the following format specification is incomplete.

The MEM file consists of:

  • file header
  • compressed blocks

File header

The file header is 84 bytes of size and consists of:

Offset Size Value Description
0 4 "MEMO" (0x4d, 0x45, 0x4d, 0x4f) or "MEM0" (0x4d, 0x45, 0x4d, 0x30) Signature
4 4 Uncompressed (total) data size

Where:

  • "MEMO" (0x4d, 0x45, 0x4d, 0x4f) is used on Windows Vista
  • "MEM0" (0x4d, 0x45, 0x4d, 0x30) is used on Windows 7

Compressed blocks

The file header is followed by compressed blocks:

Offset Size Value Description
0 4 Compressed data size
4 ... Compressed data

Uncompressed data

TODO

MAM file

On Windows 8.1 the MEM file format seem to have been replaced by the MAM file format.

Note that the following format specification is incomplete.

Offset Size Value Description
0 4 "MAM\x84" (0x4d, 0x41, 0x4d, 0x84) Signature

TRX file

The Ag*.db.trx files are TRX files.

Note that the following format specification is incomplete.

File header

The file header is variable of size and consists of:

Offset Size Value Description
0 4 1 Unknown (Version?)
4 4 Unknown
8 4 File size
12 4 Maximum number of records (of the record offsets array)
16 4 Number of records
20 ... Record offsets array, where the record offset is a 32-bit integer. Unused record offset are set to 0.

Record

TODO describe

See Also

External Links