Difference between pages "Windows Prefetch File Format" and "Mac OS X"

From ForensicsWiki
(Difference between pages)
Jump to: navigation, search
m (File information - version 26)
 
m (EFI boot)
 
Line 1: Line 1:
{{expand}}
+
{{Expand}}
  
A Windows Prefetch file consists of one file header and multiple file sections with different content. Not all content has an obvious forensic value.
+
Apple Inc.'s Macintosh OS X (pronounced "'''OS Ten'''") is the operating system distributed with Apple computers. It includes heavily used several programs by default, including [[Apple Mail]], a web browser called [[Apple Safari | Safari]], and an [[Apple Address Book]], and [[iCal]].  
  
As far as have been possible to ascertain, there is no public description of the format. The description below has been synthesised from examination
+
== EFI boot ==
of multiple prefetch files.
+
* Configuration in nvram
  
== Characteristics ==
+
The firmware looks for the boot partition in nvram.
{| class="wikitable"
+
|-
+
| <b>Integers</b>
+
| stored in little-endian
+
|-
+
| <b>Strings</b>
+
| Stored as [http://en.wikipedia.org/wiki/UTF-16/UCS-2 UTF-16 little-endian] without a byte-order-mark (BOM).
+
|-
+
| <b>Timestamps</b>
+
| Stored as [http://msdn2.microsoft.com/en-us/library/ms724284.aspx Windows FILETIME] in UTC.
+
|-
+
|}
+
  
== File header ==
+
Mac OS X EFI boot process supports both MZ-PE/COFF and EFI fat binary type [[Executable|executables]].
The file header is 84 bytes of size and consists of:
+
<pre>
{| class="wikitable"
+
/com.apple.recovery.boot/boot.efi
|-
+
/System/Library/CoreServices/boot.efi
! Field
+
/usr/standalone/i386/boot.efi
! Offset
+
</pre>
! Length
+
! Type
+
! Notes
+
|-
+
| H1
+
| 0x0000
+
| 4
+
| DWORD
+
| Format version (see format version section below)
+
|-
+
| H2
+
| 0x0004
+
| 4
+
| DWORD
+
| Signature 'SCCA' (or in hexadecimal representation 0x53 0x43 0x43 0x4)
+
|-
+
| H3
+
| 0x0008
+
| 4
+
| DWORD?
+
| Unknown - Values observed: 0x0F - Windows XP, 0x11 - Windows 7, Windows 8.1
+
|-
+
| H4
+
| 0x000C
+
| 4
+
| DWORD
+
| Prefetch file size (or length) (sometimes referred to as End of File (EOF)).
+
|-
+
| H5
+
|0x0010
+
| 60
+
| USTR
+
| The name of the (original) executable as a Unicode (UTF-16 litte-endian string), up to 29 characters and terminated by an end-of-string character (U+0000). This name should correspond with the one in the prefetch file filename.
+
|-
+
| H6
+
|0x004C
+
|4
+
|DWORD
+
|The prefetch hash. This hash value should correspond with the one in the prefetch file filename.
+
|-
+
| H7
+
|0x0050
+
|4
+
|?
+
| Unknown (flags)? Values observed: 0 for almost all prefetch files (XP); 1 for NTOSBOOT-B00DFAAD.pf (XP)
+
|-
+
|}
+
  
It's worth noting that the name of a carved prefetch file can be restored using the information in field H5 and H6, and its size can be determined by field H4.
+
== Disk image types ==
  
=== Format version ===
+
Mac OS X has support for various disk image types build-in, some of which are:
 +
* read-write disk image (.dmg) some of which use the [[Raw Image Format]]
 +
* [[Sparse Image format|Sparse disk image (.spareimage)]]
 +
* [[Sparse Bundle Image format|Sparse bundle disk image (.sparsebundle)]]
  
{| class="wikitable"
+
== Burn Folder ==
|-
+
! Value
+
! Windows version
+
|-
+
| 17 (0x11)
+
| Windows XP, Windows 2003
+
|-
+
| 23 (0x17)
+
| Windows Vista, Windows 7
+
|-
+
| 26 (0x1a)
+
| Windows 8.1 (note this could be Windows 8 as well but has not been confirmed)
+
|-
+
|}
+
  
=== File information ===
+
Mac OS X Burn Folder:
The format of the file information is version dependent.
+
<pre>
 +
$NAME.fpbf
 +
</pre>
  
Note that some other format specifications consider the file information part of the file header.  
+
This folder normally contains [[Mac OS X Alias Files|alias files]] (similar to LNK files under Windows). Which should have the following signature.
 +
<pre>
 +
00000000  62 6f 6f 6b 00 00 00 00  6d 61 72 6b 00 00 00 00  |book....mark....|
 +
</pre>
  
==== File information - version 17 ====
+
These [[Mac OS X Alias Files|alias files]] contain additional date and time values.
The file information – version 17 is 68 bytes of size and consists of:
+
{| class="wikitable"
+
|-
+
! Field
+
! Offset
+
! Length
+
! Type
+
! Notes
+
|-
+
|
+
| 0x0054
+
| 4
+
| DWORD
+
| The offset to section A. The offset is relative from the start of the file.
+
|-
+
|
+
| 0x0058
+
| 4
+
| DWORD
+
| The number of entries in section A.
+
|-
+
|
+
| 0x005C
+
| 4
+
| DWORD
+
| The offset to section B. The offset is relative from the start of the file.
+
|-
+
|
+
| 0x0060
+
| 4
+
| DWORD
+
| The number of entries in section B.
+
|-
+
|
+
| 0x0064
+
| 4
+
| DWORD
+
| The offset to section C. The offset is relative from the start of the file.
+
|-
+
|
+
| 0x0068
+
| 4
+
| DWORD
+
| Length of section C.
+
|-
+
|
+
| 0x006C
+
| 4
+
| DWORD
+
| Offset to section D. The offset is relative from the start of the file.
+
|-
+
|
+
| 0x0070
+
| 4
+
| DWORD
+
| The number of entries in section D.
+
|-
+
|
+
| 0x0074
+
| 4
+
| DWORD
+
| Length of section D.
+
|-
+
|
+
| 0x0078
+
| 8
+
| FILETIME
+
| Latest execution time (or run time) of executable (FILETIME)
+
|-
+
|
+
| 0x0080
+
| 16
+
| ?
+
| Unknown ? Possibly structured as 4 DWORD. Observed values: /0x00000000 0x00000000 0x00000000 0x00000000/, /0x47868c00 0x00000000 0x47860c00 0x00000000/ (don't exclude the possibility here that this is remnant data)
+
|-
+
|
+
| 0x0090
+
| 4
+
| DWORD
+
| Execution counter (or run count)
+
|-
+
|
+
| 0x0094
+
| 4
+
| DWORD?
+
| Unknown ? Observed values: 1, 2, 3, 4, 5, 6 (XP)
+
|-
+
|}
+
  
==== File information - version 23 ====
+
Also check the following files for references to deleted .fpbf paths:
The file information – version 23 is 156 bytes of size and consists of:
+
<pre>
{| class="wikitable"
+
/Users/$USERNAME/Library/Preferences/com.apple.finder.plist
|-
+
/Users/$USERNAME/Library/Preferences/com.apple.sidebarlists.plist
! Field
+
</pre>
! Offset
+
! Length
+
! Type
+
! Notes
+
|-
+
|
+
| 0x0054
+
| 4
+
| DWORD
+
| The offset to section A. The offset is relative from the start of the file.
+
|-
+
|
+
| 0x0058
+
| 4
+
| DWORD
+
| The number of entries in section A.
+
|-
+
|
+
| 0x005C
+
| 4
+
| DWORD
+
| The offset to section B. The offset is relative from the start of the file.
+
|-
+
|
+
| 0x0060
+
| 4
+
| DWORD
+
| The number of entries in section B.
+
|-
+
|
+
| 0x0064
+
| 4
+
| DWORD
+
| The offset to section C. The offset is relative from the start of the file.
+
|-
+
|
+
| 0x0068
+
| 4
+
| DWORD
+
| Length of section C.
+
|-
+
|
+
| 0x006C
+
| 4
+
| DWORD
+
| Offset to section D. The offset is relative from the start of the file.
+
|-
+
|
+
| 0x0070
+
| 4
+
| DWORD
+
| The number of entries in section D.
+
|-
+
|
+
| 0x0074
+
| 4
+
| DWORD
+
| Length of section D.
+
|-
+
|
+
| <b>0x0078</b>
+
| <b>8</b>
+
| <b>?</b>
+
| <b>Unknown</b>
+
|-
+
|
+
| 0x0080
+
| 8
+
| FILETIME
+
| Latest execution time (or run time) of executable (FILETIME)
+
|-
+
|
+
| 0x0088
+
| 16
+
| ?
+
| Unknown
+
|-
+
|
+
| 0x0098
+
| 4
+
| DWORD
+
| Execution counter (or run count)
+
|-
+
|
+
| 0x009C
+
| 4
+
| DWORD?
+
| Unknown
+
|-
+
|
+
| <b>0x00A0</b>
+
| <b>80</b>
+
| <b>?</b>
+
| <b>Unknown</b>
+
|-
+
|}
+
  
==== File information - version 26 ====
+
Actual burning of optical media is logged in:
The file information – version 26 is 224 bytes of size and consists of:
+
<pre>
{| class="wikitable"
+
/var/log/system.log
|-
+
/Users/$USERNAME/Library/Logs/DiscRecording.log
! Field
+
/private/var/.logs_exporter/cache/Users/$USERNAME/Library/Logs/DiscRecording.log
! Offset
+
</pre>
! Length
+
! Type
+
! Notes
+
|-
+
|
+
| 0x0054
+
| 4
+
| DWORD
+
| The offset to section A. The offset is relative from the start of the file.
+
|-
+
|
+
| 0x0058
+
| 4
+
| DWORD
+
| The number of entries in section A.
+
|-
+
|
+
| 0x005C
+
| 4
+
| DWORD
+
| The offset to section B. The offset is relative from the start of the file.
+
|-
+
|
+
| 0x0060
+
| 4
+
| DWORD
+
| The number of entries in section B.
+
|-
+
|
+
| 0x0064
+
| 4
+
| DWORD
+
| The offset to section C. The offset is relative from the start of the file.
+
|-
+
|
+
| 0x0068
+
| 4
+
| DWORD
+
| Length of section C.
+
|-
+
|
+
| 0x006C
+
| 4
+
| DWORD
+
| Offset to section D. The offset is relative from the start of the file.
+
|-
+
|
+
| 0x0070
+
| 4
+
| DWORD
+
| The number of entries in section D.
+
|-
+
|
+
| 0x0074
+
| 4
+
| DWORD
+
| Length of section D.
+
|-
+
|
+
| 0x0078
+
| 8
+
| ?
+
| Unknown
+
|-
+
|
+
| 0x0080
+
| 8
+
| FILETIME
+
| Latest execution time (or run time) of executable (FILETIME)
+
|-
+
|
+
| <b>0x0088</b>
+
| <b>7 x 8 = 56</b>
+
| <b>FILETIME</b>
+
| <b>Older (most recent) latest execution time (or run time) of executable (FILETIME)</b>
+
|-
+
|
+
| <b>0x00C0</b>
+
| <b>16</b>
+
| <b>?</b>
+
| <b>Unknown</b>
+
|-
+
|
+
| 0x00D0
+
| 4
+
| DWORD
+
| Execution counter (or run count)
+
|-
+
|
+
| <b>0x00D4</b>
+
| <b>4</b>
+
| <b>?</b>
+
| <b>Unknown</b>
+
|-
+
|
+
| <b>0x00D8</b>
+
| <b>4</b>
+
| <b>?</b>
+
| <b>Unknown</b>
+
|-
+
|
+
| <b>0x00DC</b>
+
| <b>88</b>
+
| <b>?</b>
+
| <b>Unknown</b>
+
|-
+
|}
+
  
== Section A - Metrics array ==
+
== HFS/HFS+ date and time values ==
This section contains an array with 20 byte (version 17) or 32 byte (version 23 and 26) metrics array entry records.
+
  
A metrics entry records consists of:
+
In HFS+ date and time values are stored in an unsigned 32-bit integer containing the number of seconds since January 1, 1904 at 00:00:00 (midnight) UTC (GMT). This is slightly different from HFS where the date and time value are stored using the local time. The maximum representable date is February 6, 2040 at 06:28:15 UTC (GMT). The date values do not account for leap seconds. They do include a leap day in every year that is evenly divisible by four. This is sufficient given that the range of representable dates does not contain 1900 or 2100, neither of which have leap days. Also see: [http://web.archive.org/web/20090214212148/http://developer.apple.com/technotes/tn/tn1150.html Technical Note TN1150 - HFS Plus Volume Format]
{| class="wikitable"
+
|-
+
! Field
+
! Offset
+
! Length
+
! Type
+
! Notes
+
|-
+
|
+
| 0
+
| 4
+
| DWORD
+
| Start time in ms
+
|-
+
|
+
| 4
+
| 4
+
| DWORD
+
| Duration in ms
+
|-
+
|
+
| 8
+
| 4
+
| DWORD
+
| Average duration in ms?
+
|-
+
|
+
| 12
+
| 4
+
| DWORD
+
| Filename string offset <br> The offset is relative to the start of the filename string section (section C)
+
|-
+
|
+
| 16
+
| 4
+
| DWORD
+
| Filename string number of characters without end-of-string character
+
|-
+
|
+
| 20
+
| 4
+
| DWORD
+
| Unknown, flags?
+
|-
+
|
+
| 24
+
| 8
+
|
+
| NTFS file reference
+
|}
+
  
== Section B - Trace chains array ==
+
Converting HFS/HFS+ date and time values with Python:
This section contains an array with 12 byte (version 17, 23 and 26) entry records.
+
<pre>
 +
import datetime
  
{| class="wikitable"
+
print datetime.datetime( 1904, 1, 1 ) + datetime.timedelta( seconds=0xCBDAF25B )
|-
+
</pre>
! Field
+
! Offset
+
! Length
+
! Type
+
! Notes
+
|-
+
|
+
| 0
+
| 4
+
|
+
| Next array entry index <br> Contains the next trace chain array entry index in the chain, where the first entry index starts with 0, or -1 (0xffffffff) for the end-of-chain.
+
|-
+
|
+
| 4
+
| 4
+
|
+
| Total block load count <br> Number of blocks loaded (or fetched) <br> The block size 512k (512 x 1024) bytes
+
|-
+
|
+
| 8
+
| 1
+
|
+
| Unknown
+
|-
+
|
+
| 9
+
| 1
+
|
+
| Sample duration in ms?
+
|-
+
|
+
| 10
+
| 2
+
|
+
| Unknown
+
|}
+
  
== Section C - Filename strings ==
+
== Launch Agents ==
This section contains filenames strings, it consists of an array of UTF-16 little-endian formatted strings with end-of-string characters (U+0000).
+
System-wide:
 +
<pre>
 +
/Library/LaunchAgents
 +
/System/Library/LaunchAgents
 +
</pre>
  
At the end of the section there seems to be alignment padding that can contain remnant values.
+
Per user:
 +
<pre>
 +
/Users/$USERNAME/Library/LaunchAgents
 +
</pre>
  
== Section D - Volumes information (block) ==
+
These directories contain  [[Property list (plist)]] files.
  
Section D contains one or more subsections, each subsection refers to directories on a volume.
+
== Launch Daemons ==
 +
System-wide:
 +
<pre>
 +
/Library/LaunchDaemons
 +
/System/Library/LaunchDaemons
 +
</pre>
  
If all the executables and libraries referenced in the C section are from one single disk volume, there will be only one section in the D section. If multiple volumes are referenced by section C, section D will contain multiple sections.  (A simple way to force this situation is to copy, say, NOTEPAD.EXE to a USB drive, and start it from that volume. The corresponding prefetch file will have one D header referring to, e.g. \DEVICE\HARDDISK1\DP(1)0-0+4 (the USB drive), and one to, e.g. \DEVICE\HARDDISKVOLUME1\ (where the .DLLs and other support files were found).
+
These directories contain [[Property list (plist)]] files.
  
In this section, all offsets are assumed to be counted from the start of the D section.
+
== Startup Items ==
 +
<pre>
 +
/Library/StartupItems/
 +
/System/Library/StartupItems/
 +
</pre>
  
=== Volume information ===
+
== Crash Reporter ==
The structure of the volume information is version dependent.
+
<pre>
 +
/Library/Application Support/CrashReporter
 +
</pre>
  
==== Volume information - version 17 ====
+
Contains text files named .crash, .diag, .spin
The volume information – version 17 is 40 bytes in size and consists of:
+
  
{| class="wikitable"
+
== Diagnostic Reports ==
|-
+
<pre>
! Field
+
/Library/Logs/DiagnosticReports
! Offset
+
</pre>
! Length
+
! Type
+
! Notes
+
|-
+
| VI1
+
| +0x0000
+
| 4
+
| DWORD
+
| Offset to volume device path (Unicode, terminated by U+0000)
+
|-
+
| VI2
+
| +0x0004
+
| 4
+
| DWORD
+
| Length of volume device path (nr of characters, including terminating U+0000)
+
|-
+
| VI3
+
| +0x0008
+
| 8
+
| FILETIME
+
| Volume creation time.
+
|-
+
| VI4
+
| +0x0010
+
| 4
+
| DWORD
+
| Volume serial number of volume indicated by volume string
+
|-
+
| VI5
+
| +0x0014
+
| 4
+
| DWORD
+
| Offset to sub section E
+
|-
+
| VI6
+
| +0x0018
+
| 4
+
| DWORD
+
| Length of sub section E (in bytes)
+
|-
+
| VI7
+
| +0x001C
+
| 4
+
| DWORD
+
| Offset to sub section F
+
|-
+
| VI8
+
| +0x0020
+
| 4
+
| DWORD
+
| Number of strings in sub section F
+
|-
+
| VI9
+
| +0x0024
+
| 4
+
| ?
+
| Unknown
+
|-
+
|}
+
  
==== Volume information - version 23 ====
+
== Internet Plug-Ins ==
The volume information entry – version 23 is 104 bytes in size and consists of:
+
System-wide:
 +
<pre>
 +
/Library/Internet Plug-Ins
 +
</pre>
  
{| class="wikitable"
+
Per user:
|-
+
<pre>
! Field
+
/Users/$USERNAME/Library/Internet Plug-Ins
! Offset
+
</pre>
! Length
+
! Type
+
! Notes
+
|-
+
| VI1
+
| +0x0000
+
| 4
+
| DWORD
+
| Offset to volume device path (Unicode, terminated by U+0000)
+
|-
+
| VI2
+
| +0x0004
+
| 4
+
| DWORD
+
| Length of volume device path (nr of characters, including terminating U+0000)
+
|-
+
| VI3
+
| +0x0008
+
| 8
+
| FILETIME
+
| Volume creation time.
+
|-
+
| VI4
+
| +0x0010
+
| 4
+
| DWORD
+
| Volume serial number of volume indicated by volume string
+
|-
+
| VI5
+
| +0x0014
+
| 4
+
| DWORD
+
| Offset to sub section E
+
|-
+
| VI6
+
| +0x0018
+
| 4
+
| DWORD
+
| Length of sub section E (in bytes)
+
|-
+
| VI7
+
| +0x001C
+
| 4
+
| DWORD
+
| Offset to sub section F
+
|-
+
| VI8
+
| +0x0020
+
| 4
+
| DWORD
+
| Number of strings in sub section F
+
|-
+
| VI9
+
| +0x0024
+
| 4
+
| ?
+
| Unknown
+
|-
+
| <b>VI10</b>
+
| <b>+0x0028</b>
+
| <b>28</b>
+
| <b>?</b>
+
| <b>Unknown</b>
+
|-
+
| <b>VI11</b>
+
| <b>+0x0044</b>
+
| <b>4</b>
+
| <b>?</b>
+
| <b>Unknown</b>
+
|-
+
| <b>VI12</b>
+
| <b>+0x0048</b>
+
| <b>28</b>
+
| <b>?</b>
+
| <b>Unknown</b>
+
|-
+
| <b>VI13</b>
+
| <b>+0x0064</b>
+
| <b>4</b>
+
| <b>?</b>
+
| <b>Unknown</b>
+
|-
+
|}
+
  
==== Volume information - version 26 ====
+
== Quarantine event database ==
The volume information entry – version 26 appears to be similar to volume information – version 23.
+
See [http://menial.co.uk/blog/2011/06/16/mac-quarantine-event-database/]
  
=== Sub section E - NTFS file references ===
+
Snow Leopard and earlier
This sub section can contain NTFS file references.
+
<pre>
 +
/Users/$USER/Library/Preferences/com.apple.LaunchServices.QuarantineEvents
 +
</pre>
  
For more information see [https://googledrive.com/host/0B3fBvzttpiiSbl9XZGZzQ05hZkU/Windows%20Prefetch%20File%20(PF)%20format.pdf Windows Prefetch File (PF) format].
+
<pre>
 +
SELECT datetime(LSQuarantineTimeStamp + 978307200, "unixepoch") as LSQuarantineTimeStamp, LSQuarantineAgentName, LSQuarantineOriginURLString, LSQuarantineDataURLString from LSQuarantineEvent;
 +
</pre>
  
=== Sub section F - Directory strings ===
+
Lion and later
This sub sections contains directory strings. The number of strings is stored in the volume information.
+
<pre>
 +
/Users/$USER/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2
 +
</pre>
  
A directory string is stored in the following structure:
+
== sleepimage ==
{| class="wikitable"
+
This file is similar to the hibernation file on Windows.
|-
+
<pre>
! Field
+
/private/var/vm/sleepimage
! Offset
+
</pre>
! Length
+
! Type
+
! Notes
+
|-
+
|
+
| 0x0000
+
| 2
+
| DWORD
+
| Number of characters (WORDs) of the directory name. The value does not include the end-of-string character.
+
|-
+
|
+
| 0x0002
+
|
+
| USTR
+
| The directory name as a Unicode (UTF-16 litte-endian string) terminated by an end-of-string character (U+0000).
+
|-
+
|}
+
  
== See Also ==
+
Also see: [http://osxdaily.com/2010/10/11/sleepimage-mac/]
* [[Prefetch]]
+
 
 +
== Last shutdown logs ==
 +
<pre>
 +
/private/var/log/com.apple.launchd/launchd-shutdown.system.log
 +
/private/var/log/com.apple.launchd/launchd-shutdown.system.log.1
 +
</pre>
 +
 
 +
== Package Files (.PKG) ==
 +
Package Files (.PKG) are XAR archives [http://en.wikipedia.org/wiki/Xar_(archiver)] that contain a cpio archive and metadata [http://s.sudre.free.fr/Stuff/Ivanhoe/FLAT.html].
 +
 
 +
== Also see ==
 +
* [[MacOS Process Monitoring]]
 +
* [[Acquiring a MacOS System with Target Disk Mode]]
 +
* [[Converting Binary Plists]]
 +
* [[FileVault Disk Encryption]]
 +
* [[File Vault]]
 +
 
 +
=== Formats ===
 +
* [[Basic Security Module (BSM) file format]]
 +
* [[Property list (plist)]]
  
 
== External Links ==
 
== External Links ==
* [https://googledrive.com/host/0B3fBvzttpiiSbl9XZGZzQ05hZkU/Windows%20Prefetch%20File%20(PF)%20format.pdf Windows Prefetch File (PF) format], by the [[libssca|libssca project]]
+
* [http://www.apple.com/macosx/ Official website]
* [http://bitbucket.cassidiancybersecurity.com/prefetch-parser/wiki/Home Windows Prefetch file format], by the [http://bitbucket.cassidiancybersecurity.com/prefetch-parser prefetch-parser] project.
+
* [http://en.wikipedia.org/wiki/OS_X Wikipedia entry on OS X]
 +
* [http://menial.co.uk/blog/2011/06/16/mac-quarantine-event-database/ Quarantine event database]
 +
* [http://www2.tech.purdue.edu/cit/Courses/cit556/readings/MacForensicsCraiger.pdf Mac Forensics: Mac OS X and the HFS+ File System] by P. Craiger
 +
* [http://web.me.com/driley/iWeb/Previous_files/Directory_Services_Overview.pdf Mac OS X Directory Services Integration including Active Directory]
 +
* [http://digitalinvestigation.wordpress.com/2012/04/04/geek-post-nskeyedarchiver-files-what-are-they-and-how-can-i-use-them/ NSKeyedArchiver files – what are they, and how can I use them?]
 +
* [http://krypted.com/mac-os-x/command-line-alf-on-mac-os-x/ Command Line ALF on Mac OS X]
 +
* [http://newosxbook.com/DMG.html Demystifying the DMG File Format]
 +
* [https://code.google.com/p/mac-security-tips/wiki/ALL_THE_TIPS mac-security-tips]
 +
 
 +
=== Apple Examiner ===
 +
* [http://www.appleexaminer.com/ The Apple Examiner]
 +
* [http://www.appleexaminer.com/MacsAndOS/Analysis/USBOSX/USBOSX.html USB Entries on OS X]
 +
* [http://www.appleexaminer.com/Downloads/MacForensics.pdf Macintosh Forensics - A Guide for the Forensically Sound Examination of a Macintosh Computer] by Ryan R. Kubasiak
 +
 
 +
=== EFI ===
 +
* [http://refit.sourceforge.net/info/boot_process.html The Intel Mac boot process], by the [[rEFIt|rEFIt project]]
 +
* [http://ho.ax/posts/2012/02/carving-up-efi-fat-binaries/ Carving up EFI fat binaries], by snare, February 24, 2012
 +
 
 +
=== iCloud ===
 +
* [http://support.apple.com/kb/HT4865?viewlocale=en_US&locale=en_US iCloud: iCloud security and privacy overview]
  
[[Category:File Formats]]
+
[[Category:Mac OS X]]
 +
[[Category:Operating systems]]

Revision as of 06:04, 25 June 2014

Information icon.png

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

Apple Inc.'s Macintosh OS X (pronounced "OS Ten") is the operating system distributed with Apple computers. It includes heavily used several programs by default, including Apple Mail, a web browser called Safari, and an Apple Address Book, and iCal.

EFI boot

  • Configuration in nvram

The firmware looks for the boot partition in nvram.

Mac OS X EFI boot process supports both MZ-PE/COFF and EFI fat binary type executables.

/com.apple.recovery.boot/boot.efi
/System/Library/CoreServices/boot.efi
/usr/standalone/i386/boot.efi

Disk image types

Mac OS X has support for various disk image types build-in, some of which are:

Burn Folder

Mac OS X Burn Folder:

$NAME.fpbf

This folder normally contains alias files (similar to LNK files under Windows). Which should have the following signature.

00000000  62 6f 6f 6b 00 00 00 00  6d 61 72 6b 00 00 00 00  |book....mark....|

These alias files contain additional date and time values.

Also check the following files for references to deleted .fpbf paths:

/Users/$USERNAME/Library/Preferences/com.apple.finder.plist
/Users/$USERNAME/Library/Preferences/com.apple.sidebarlists.plist

Actual burning of optical media is logged in:

/var/log/system.log
/Users/$USERNAME/Library/Logs/DiscRecording.log
/private/var/.logs_exporter/cache/Users/$USERNAME/Library/Logs/DiscRecording.log

HFS/HFS+ date and time values

In HFS+ date and time values are stored in an unsigned 32-bit integer containing the number of seconds since January 1, 1904 at 00:00:00 (midnight) UTC (GMT). This is slightly different from HFS where the date and time value are stored using the local time. The maximum representable date is February 6, 2040 at 06:28:15 UTC (GMT). The date values do not account for leap seconds. They do include a leap day in every year that is evenly divisible by four. This is sufficient given that the range of representable dates does not contain 1900 or 2100, neither of which have leap days. Also see: Technical Note TN1150 - HFS Plus Volume Format

Converting HFS/HFS+ date and time values with Python:

import datetime

print datetime.datetime( 1904, 1, 1 ) + datetime.timedelta( seconds=0xCBDAF25B )

Launch Agents

System-wide:

/Library/LaunchAgents
/System/Library/LaunchAgents

Per user:

/Users/$USERNAME/Library/LaunchAgents

These directories contain Property list (plist) files.

Launch Daemons

System-wide:

/Library/LaunchDaemons
/System/Library/LaunchDaemons

These directories contain Property list (plist) files.

Startup Items

/Library/StartupItems/
/System/Library/StartupItems/

Crash Reporter

/Library/Application Support/CrashReporter

Contains text files named .crash, .diag, .spin

Diagnostic Reports

/Library/Logs/DiagnosticReports

Internet Plug-Ins

System-wide:

/Library/Internet Plug-Ins

Per user:

/Users/$USERNAME/Library/Internet Plug-Ins

Quarantine event database

See [1]

Snow Leopard and earlier

/Users/$USER/Library/Preferences/com.apple.LaunchServices.QuarantineEvents
SELECT datetime(LSQuarantineTimeStamp + 978307200, "unixepoch") as LSQuarantineTimeStamp, LSQuarantineAgentName, LSQuarantineOriginURLString, LSQuarantineDataURLString from LSQuarantineEvent;

Lion and later

/Users/$USER/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2

sleepimage

This file is similar to the hibernation file on Windows.

/private/var/vm/sleepimage

Also see: [2]

Last shutdown logs

/private/var/log/com.apple.launchd/launchd-shutdown.system.log
/private/var/log/com.apple.launchd/launchd-shutdown.system.log.1

Package Files (.PKG)

Package Files (.PKG) are XAR archives [3] that contain a cpio archive and metadata [4].

Also see

Formats

External Links

Apple Examiner

EFI

iCloud