Difference between pages "Mac OS X" and "Executable"

From ForensicsWiki
(Difference between pages)
Jump to: navigation, search
 
m
 
Line 1: Line 1:
{{Expand}}
+
{{expand}}
  
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]].  
+
An executable file is used to perform tasks according to encoded instructions. Executable files are sometimes also referred to as binaries which technically can be considered a sub class of executable files.
  
== EFI boot ==
+
There are multiple families of executable files:
* Configuration in nvram
+
* Scripts; e.g. shell scripts, batch scripts (.bat)
* EFI executables:
+
* DOS, Windows executable files (.exe) which can be of various formats like: MZ, PE/COFF, NE
<pre>
+
** EFI fat binary
/com.apple.recovery.boot/boot.efi
+
* ELF
/System/Library/CoreServices/boot.efi
+
* Mach-O
/usr/standalone/i386/boot.efi
+
</pre>
+
  
== Disk image types ==
+
== External Links ==
 +
* [http://en.wikipedia.org/wiki/Executable Wikipedia: Executable]
 +
* [ftp://ftp.cs.wisc.edu/paradyn/papers/Rosenblum10prov.pdf Extracting Compiler Provenance from Program Binaries], by Nathan E. Rosenblum, Barton P. Miller, Xiaojin Zhu, June 2010
  
Mac OS X has support for various disk image types build-in, some of which are:
+
=== ELF ===
* read-write disk image (.dmg) some of which use the [[Raw Image Format]]
+
* [http://robinhoksbergen.com/papers/howto_elf.html Manually Creating an ELF Executable], by Robin Hoksbergen
* [[Sparse Image format|Sparse disk image (.spareimage)]]
+
* [[Sparse Bundle Image format|Sparse bundle disk image (.sparsebundle)]]
+
  
== Burn Folder ==
+
=== MZ, PE/COFF ===
 +
* [http://en.wikipedia.org/wiki/Portable_Executable Wikipedia: Portable Executable]
 +
* [http://msdn.microsoft.com/en-us/windows/hardware/gg463119.aspx Microsoft PE and COFF Specification]
 +
* [http://msdn.microsoft.com/en-us/magazine/ms809762.aspx Peering Inside the PE: A Tour of the Win32 Portable Executable File Format], by Matt Pietrek, March 1994
 +
* [http://www.microsoft.com/msj/0797/hood0797.aspx Under the Hood], by Matt Pietrek, July 1997
 +
* [http://msdn.microsoft.com/en-us/magazine/cc301805.aspx An In-Depth Look into the Win32 Portable Executable File Format], by Matt Pietrek, February 2002
 +
* [https://googledrive.com/host/0B3fBvzttpiiSd1dKQVU0WGVESlU/Executable%20(EXE)%20file%20format.pdf MZ, PE-COFF executable file format (EXE)], by the [[libexe|libexe project]], October 2011
 +
* [http://seclists.org/fulldisclosure/2013/Oct/157 The Internal of Reloc .text], Full Disclosure Mailing list, October 21, 2013
 +
* [http://ho.ax/posts/2012/02/carving-up-efi-fat-binaries/ Carving up EFI fat binaries], by snare, February 24, 2012
  
Mac OS X Burn Folder:
+
=== DBG, PDB ===
<pre>
+
* [http://en.wikipedia.org/wiki/Program_database Wikipedia: Program database]
$NAME.fpbf
+
* [http://www.debuginfo.com/articles/debuginfomatch.html Matching Debug Information], by debuginfo.com
</pre>
+
* [http://support.microsoft.com/kb/121366 Description of the .PDB files and of the .DBG files], by [[Microsoft]]
 +
* [http://msdn.microsoft.com/en-us/library/ff553493(v=vs.85).aspx Public and Private Symbols], by [[Microsoft]]
 +
* [http://msdn.microsoft.com/en-us/library/windows/desktop/ms679293(v=vs.85).aspx DbgHelp Structures], by [[Microsoft]]
 +
* [http://web.archive.org/web/20070915060650/http://www.x86.org/ftp/manuals/tools/sym.pdf Internet Archive: Microsoft Symbol and Type Information], by [[Microsoft]]
 +
* [http://pierrelib.pagesperso-orange.fr/exec_formats/MS_Symbol_Type_v1.0.pdf Microsoft Symbol and Type Information]
 +
* [https://code.google.com/p/pdbparse/wiki/StreamDescriptions Stream Descriptions], [https://code.google.com/p/pdbparse/ pdbparse project]
 +
* [http://sourceforge.net/p/mingw-w64/code/HEAD/tree/experimental/tools/libmsdebug/ libmsdebug], by the [[MinGW|MinGW project]]
 +
* [http://moyix.blogspot.com/2007/10/types-stream.html The Types Stream], by [[Brendan Dolan-Gavitt]], October 4, 2007
  
This folder normally contains [[Mac OS X Alias Files|alias files]] (similar to LNK files under Windows). Which should have the following signature.
+
=== Minidump ===
<pre>
+
* [http://msdn.microsoft.com/en-us/library/windows/desktop/ms680378(v=vs.85).aspx MSDN: MINIDUMP_HEADER structure]
00000000  62 6f 6f 6b 00 00 00 00  6d 61 72 6b 00 00 00 00  |book....mark....|
+
* [https://code.google.com/p/google-breakpad/source/browse/trunk/src/google_breakpad/common/minidump_format.h minidump_format.h], by [[Google]], 2006
</pre>
+
* [http://moyix.blogspot.com/2008/05/parsing-windows-minidumps.html Parsing Windows Minidumps], by [[Brendan Dolan-Gavitt]], May 7, 2008
 +
* [http://web.archive.org/web/20110814041817/http://www.stackhash.com/blog/post/Format-of-a-minidump-(mdmp)-file.aspx Format of a minidump (mdmp) file], Internet Archive: StackHash blog, May 16, 2011
  
These [[Mac OS X Alias Files|alias files]] contain additional date and time values.
+
=== Mach-O ===
 +
* [http://en.wikipedia.org/wiki/Mach-O Wikipedia: Mach-O]
  
Also check the following files for references to deleted .fpbf paths:
+
=== Packers ===
<pre>
+
* [http://www.woodmann.com/crackz/Packers.htm Packers & Unpackers]
/Users/$USERNAME/Library/Preferences/com.apple.finder.plist
+
/Users/$USERNAME/Library/Preferences/com.apple.sidebarlists.plist
+
</pre>
+
  
Actual burning of optical media is logged in:
+
== Tools ==
<pre>
+
/var/log/system.log
+
/Users/$USERNAME/Library/Logs/DiscRecording.log
+
/private/var/.logs_exporter/cache/Users/$USERNAME/Library/Logs/DiscRecording.log
+
</pre>
+
  
== HFS/HFS+ date and time values ==
+
=== MZ, PE/COFF ===
 
+
* [https://code.google.com/p/pefile/ pefile], multi-platform Python module to read and work with Portable Executable (aka PE) files
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]
+
 
+
Converting HFS/HFS+ date and time values with Python:
+
<pre>
+
import datetime
+
 
+
print datetime.datetime( 1904, 1, 1 ) + datetime.timedelta( seconds=0xCBDAF25B )
+
</pre>
+
 
+
== Launch Agents ==
+
System-wide:
+
<pre>
+
/Library/LaunchAgents
+
/System/Library/LaunchAgents
+
</pre>
+
 
+
Per user:
+
<pre>
+
/Users/$USERNAME/Library/LaunchAgents
+
</pre>
+
 
+
These directories contain  [[Property list (plist)]] files.
+
 
+
== Launch Daemons ==
+
System-wide:
+
<pre>
+
/Library/LaunchDaemons
+
/System/Library/LaunchDaemons
+
</pre>
+
 
+
These directories contain [[Property list (plist)]] files.
+
 
+
== Startup Items ==
+
<pre>
+
/Library/StartupItems/
+
/System/Library/StartupItems/
+
</pre>
+
 
+
== Crash Reporter ==
+
<pre>
+
/Library/Application Support/CrashReporter
+
</pre>
+
 
+
Contains text files named .crash, .diag, .spin
+
 
+
== Diagnostic Reports ==
+
<pre>
+
/Library/Logs/DiagnosticReports
+
</pre>
+
 
+
== Internet Plug-Ins ==
+
System-wide:
+
<pre>
+
/Library/Internet Plug-Ins
+
</pre>
+
 
+
Per user:
+
<pre>
+
/Users/$USERNAME/Library/Internet Plug-Ins
+
</pre>
+
 
+
== Quarantine event database ==
+
See [http://menial.co.uk/blog/2011/06/16/mac-quarantine-event-database/]
+
 
+
Snow Leopard and earlier
+
<pre>
+
/Users/$USER/Library/Preferences/com.apple.LaunchServices.QuarantineEvents
+
</pre>
+
 
+
<pre>
+
SELECT datetime(LSQuarantineTimeStamp + 978307200, "unixepoch") as LSQuarantineTimeStamp, LSQuarantineAgentName, LSQuarantineOriginURLString, LSQuarantineDataURLString from LSQuarantineEvent;
+
</pre>
+
 
+
Lion and later
+
<pre>
+
/Users/$USER/Library/Preferences/com.apple.LaunchServices.QuarantineEventsV2
+
</pre>
+
 
+
== sleepimage ==
+
This file is similar to the hibernation file on Windows.
+
<pre>
+
/private/var/vm/sleepimage
+
</pre>
+
 
+
Also see: [http://osxdaily.com/2010/10/11/sleepimage-mac/]
+
 
+
== 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 ==
+
* [http://www.apple.com/macosx/ Official website]
+
* [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://ho.ax/posts/2012/02/carving-up-efi-fat-binaries/ Carving up EFI fat binaries], by snare, February 24, 2012
+
  
=== iCloud ===
+
=== PDB ===
* [http://support.apple.com/kb/HT4865?viewlocale=en_US&locale=en_US iCloud: iCloud security and privacy overview]
+
* [https://code.google.com/p/pdbparse/ pdbparse], Open-source parser for Microsoft debug symbols (PDB files)
  
[[Category:Mac OS X]]
+
=== Minidump ===
[[Category:Operating systems]]
+
* [http://support.microsoft.com/kb/315271 Dumpchk.exe], by [[Microsoft]]
 +
* [http://amnesia.gtisc.gatech.edu/~moyix/minidump.py minidump.py], by [[Brendan Dolan-Gavitt]]

Revision as of 03:53, 25 June 2014

Information icon.png

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

An executable file is used to perform tasks according to encoded instructions. Executable files are sometimes also referred to as binaries which technically can be considered a sub class of executable files.

There are multiple families of executable files:

  • Scripts; e.g. shell scripts, batch scripts (.bat)
  • DOS, Windows executable files (.exe) which can be of various formats like: MZ, PE/COFF, NE
    • EFI fat binary
  • ELF
  • Mach-O

External Links

ELF

MZ, PE/COFF

DBG, PDB

Minidump

Mach-O

Packers

Tools

MZ, PE/COFF

  • pefile, multi-platform Python module to read and work with Portable Executable (aka PE) files

PDB

  • pdbparse, Open-source parser for Microsoft debug symbols (PDB files)

Minidump