Difference between pages "RAR" and "Plaso"

From ForensicsWiki
(Difference between pages)
Jump to: navigation, search
 
(File formats)
 
Line 1: Line 1:
RAR Archives ('''R'''oshal '''AR'''chive file format) is a proprietary format for storing information created by Eugene Roshal. The format is currently handled by Alexander Roshal, Eugene's brother.
+
{{Infobox_Software |
 +
  name = plaso |
 +
  maintainer = [[Kristinn Gudjonsson]], [[Joachim Metz]] |
 +
  os = [[Linux]], [[Mac OS X]], [[Windows]] |
 +
  genre = {{Analysis}} |
 +
  license = {{APL}} |
 +
  website = [https://code.google.com/p/plaso/ code.google.com/p/plaso/] |
 +
}}
  
==Format==
+
Plaso (plaso langar að safna öllu) is the Python based back-end engine used by tools such as log2timeline for automatic creation of a super timelines. The goal of log2timeline (and thus plaso) is to provide a single tool that can parse various log files and forensic artifacts from computers and related systems, such as network equipment to produce a single correlated timeline. This timeline can then be easily analysed by forensic investigators/analysts, speeding up investigations by correlating the vast amount of information found on an average computer system. Plaso is intended to be applied for creating super timelines but also supports creating [http://blog.kiddaland.net/2013/02/targeted-timelines-part-i.html targeted timelines].
The file has the magic number of:
+
<pre>0x 52 61 72 21 1A 07 00</pre>
+
which is a break down of the following to describe an Archive Header:
+
:* 0x6152 - HEAD_CRC
+
:* 0x72 - HEAD_TYPE
+
:* 0x1a21 - HEAD_FLAGS
+
:* 0x0007 - HEAD_SIZE
+
  
----
+
The Plaso project site also provides [[4n6time]], formerly "l2t_Review", which is a cross-platform forensic tool for timeline creation and review by [[David Nides]].
===RAR File Format===
+
  
Each Block has the following fields
+
== Supported Formats ==
{| class="wikitable"
+
The information below is based of version 1.1.0
|+ Block Fields
+
! Name
+
! Size (bytes)
+
! Description
+
|-
+
| HEAD_CRC
+
| 2
+
| CRC of total block or block part
+
|-
+
| HEAD_TYPE
+
| 1
+
| Block type
+
|-
+
| HEAD_FLAGS
+
| 2
+
| Block flags
+
|-
+
| HEAD_SIZE
+
| 2
+
| Block size
+
|-
+
| ADD_SIZE
+
| 4
+
| Optional field - added block size
+
|}
+
  
----
+
=== Storage Media Image File Formats ===
There are certain block types
+
Storage Medis Image File Format support is provided by [[dfvfs]].
  
{| class="wikitable"
+
=== Volume System Formats ===
|+ Block Types
+
Volume System Format support is provided by [[dfvfs]].
! Head Type Signifier
+
! Description
+
|-
+
| HEAD_TYPE=0x72
+
| marker block
+
|-
+
| HEAD_TYPE=0x73
+
| archive header
+
|-
+
| HEAD_TYPE=0x74
+
| file header
+
|-
+
| HEAD_TYPE=0x75
+
| old style comment header
+
|-
+
| HEAD_TYPE=0x76
+
| old style authenticity information
+
|-
+
| HEAD_TYPE=0x77
+
| old style subblock
+
|-
+
| HEAD_TYPE=0x78
+
| old style recovery record
+
|-
+
| HEAD_TYPE=0x79
+
| old style authenticity information
+
|-
+
| HEAD_TYPE=0x7a
+
| subblock
+
|}
+
  
----
+
=== File System Formats ===
===Block Formats===
+
File System Format support is provided by [[dfvfs]].
There are several block formats that are contained within a RAR file. They are Marker Block, Archive Header, and File Header.
+
  
 +
=== File formats ===
 +
* Apple System Log (ASL)
 +
* Basic Security Module (BSM)
 +
* Bencode files
 +
* [[Google Chrome|Chrome cache files]]
 +
* CUPS IPP
 +
* [[Extensible Storage Engine (ESE) Database File (EDB) format]] using [[libesedb]]
 +
* Firefox Cache
 +
* Java IDX
 +
* MacOS-X Application firewall
 +
* MacOS-X Keychain
 +
* MacOS-X Securityd
 +
* MacOS-X Wifi
 +
* ([[SleuthKit]]) mactime logs
 +
* McAfee Anti-Virus Logs
 +
* Microsoft [[Internet Explorer History File Format]] (also known as MSIE 4 - 9 Cache Files or index.dat) using [[libmsiecf]]
 +
* [[OLE Compound File]] using [[libolecf]]
 +
* Opera Browser history
 +
* OpenXML
 +
* Pcap files
 +
* Popularity Contest log
 +
* [[Property list (plist)|Property list (plist) format]] using [[binplist]]
 +
* SELinux audit logs
 +
* SkyDrive log and error log files
 +
* [[SQLite database format]] using [[SQLite]]
 +
* Symantec AV Corporate Edition and Endpoint Protection log
 +
* Syslog
 +
* UTMP
 +
* UTMPX
 +
* [[Windows Event Log (EVT)]] using [[libevt]]
 +
* Windows Firewall
 +
* Windows Job files (also known as "at jobs")
 +
* Windows Prefetch files
 +
* Windows Recycle bin (INFO2 and $I/$R)
 +
* [[Windows NT Registry File (REGF)]] using [[libregf]]
 +
* [[LNK|Windows Shortcut File (LNK) format]] using [[liblnk]]
 +
* [[Windows XML Event Log (EVTX)]] using [[libevtx]]
 +
* Xchat and Xchat scrollback files
  
----
+
=== Bencode file formats ===
====Marker Block (MARK_HEAD)====
+
* Transmission
 +
* uTorrent
  
{| class="wikitable"
+
=== ESE database file formats ===
|+ MARK_HEAD
+
* Internet Explorer WebCache format
! Field Name
+
! Size (bytes)
+
! Possibilities
+
|-
+
| HEAD_CRC
+
| 2
+
| Always 0x6152
+
|-
+
| HEAD_TYPE
+
| 1
+
| Header type: 0x72
+
|-
+
| HEAD_FLAGS
+
| 2
+
| Always 0x1a21
+
|-
+
| HEAD_SIZE
+
| 2
+
| Block size = 0x0007
+
|}
+
  
* Note: the marker block is considered a fixed byte sequence (AKA, magic number) of: 0x52 0x61 0x72 0x21 0x1a 0x07 0x00 (which is seen as 'Rar!  ')
+
=== OLE Compound File formats ===
 +
* Document summary information
 +
* Summary information (top-level only)
  
----
+
=== Property list (plist) formats ===
====Archive Header (MAIN_HEAD)====
+
* Airport
 +
* Apple Account
 +
* Bluetooth
 +
* Install History
 +
* iPod/iPhone
 +
* Mac User
 +
* Safari history
 +
* Software Update
 +
* Spotlight
 +
* Spotlight Volume Information
 +
* Timemachine
  
{| class="wikitable"
+
=== SQLite database file formats ===
|+ MAIN_HEAD
+
* Android call logs
! Field Name
+
* Android SMS
! Size (bytes)
+
* Chrome cookies
! Description
+
* [[Google Chrome|Chrome browsing and downloads history]]
|-
+
* [[Mozilla Firefox|Firefox browsing and downloads history]]
| HEAD_CRC
+
* Google Drive
| 2
+
* Launch services quarantine events
| CRC of fields HEAD_TYPE to RESERVED2
+
* MacKeeper cache
|-
+
* Mac OS X document versions
| HEAD_TYPE
+
* Skype text conversations
| 1
+
* [[Zeitgeist|Zeitgeist activity database]]
| Header Type: 0x73
+
|-
+
| HEAD_FLAGS
+
| 2
+
| Bit Flags (Please see 'Bit Flags for MAIN_HEAD' table for all possibilities).
+
|-
+
| HEAD_SIZE
+
| 2
+
| Archive header total size including archive comments
+
|-
+
| RESERVED1
+
| 2
+
| RESERVED
+
|-
+
| RESERVED2
+
| 4
+
| RESERVED
+
|}
+
  
 +
=== [[Windows Registry]] formats ===
 +
* [[Windows Application Compatibility|AppCompatCache]]
 +
* CCleaner
 +
* Less Frequently Used
 +
* MountPoints2
 +
* MRUList and MRUListEx (no shell item support)
 +
* [[Internet Explorer|MSIE Zones]]
 +
* Office MRU
 +
* Outlook Search
 +
* Run Keys
 +
* Services
 +
* Terminal Server MRU
 +
* Typed URLS
 +
* USBStor
 +
* UserAssist
 +
* WinRar
 +
* Windows version information
  
{| class="wikitable"
+
== History ==
|+ Bit Flags for MAIN_HEAD
+
Plaso is a Python-based rewrite of the Perl-based [[log2timeline]] initially created by [[Kristinn Gudjonsson]]. Plaso builds upon the [[SleuthKit]], [[libyal]], [[dfvfs]] and various other projects.
! Flag (0x)
+
! Description
+
|-
+
| 0001
+
| Volume attribute (archive volume)
+
|-
+
| 0002
+
| Archive comment present RAR 3.x uses the separate comment block and does not set this flag.
+
|-
+
| 0004
+
| Archive lock attribute
+
|-
+
| 0008
+
| Solid attribute (solid archive)
+
|-
+
| 0010
+
| New volume naming scheme ('volname.partN.rar')
+
|-
+
| 0020
+
| Authenticity information present RAR 3.x does not set this flag.
+
|-
+
| 0040
+
| Recovery record present
+
|-
+
| 0080
+
| Block headers are encrypted
+
|-
+
| 0100
+
| First volume (set only by RAR 3.0 and later)
+
|}
+
* Other bits in HEAD_FLAGS are reserved for internal use.
+
----
+
  
====File Header (File in Archive)====
+
== See Also ==
{| class="wikitable"
+
* [[dfvfs]]
|+ File Header
+
* [[log2timeline]]
! Field Name
+
! Size (bytes)
+
! Description
+
|-
+
| HEAD_CRC
+
| 2
+
| CRC of fields from HEAD_TYPE to FILEATTR and file name
+
|-
+
| HEAD_TYPE
+
| 1
+
| Header Type: 0x74
+
|-
+
| HEAD_FLAGS
+
| 2
+
| Bit Flags (Please see 'Bit Flags for File in Archive' table for all possibilities)
+
|-
+
| HEAD_SIZE
+
| 2
+
| File header full size including file name and comments
+
|-
+
| PACK_SIZE
+
| 4
+
| Compressed file size
+
|-
+
| UNP_SIZE
+
| 4
+
| Uncompressed file size
+
|-
+
| HOST_OS
+
| 1
+
| Operating system used for archiving (See the 'Operating System Indicators' table for the flags used)
+
|-
+
| FILE_CRC
+
| 4
+
| File CRC
+
|-
+
| FTIME
+
| 4
+
| Date and time in standard MS DOS format
+
|-
+
| UNP_VER
+
| 1
+
| RAR version needed to extract file (Version number is encoded as 10 * Major version + minor version.)
+
|-
+
| METHOD
+
| 1
+
| Packing method (Please see 'Packing Method' table for all possibilities
+
|-
+
| NAME_SIZE
+
| 2
+
| File name size
+
|-
+
| ATTR
+
| 4
+
| File attributes
+
|-
+
| HIGH_PACK_SIZE
+
| 4
+
| High 4 bytes of 64-bit value of compressed file size. Optional value, presents only if bit 0x100 in HEAD_FLAGS is set.
+
|-
+
| HIGH_UNP_SIZE
+
| 4
+
| High 4 bytes of 64-bit value of uncompressed file size. Optional value, presents only if bit 0x100 in HEAD_FLAGS is set.
+
|-
+
| FILE)NAME
+
| NAME_SIZE bytes
+
| File name - string of NAME_SIZE bytes size
+
|-
+
| SALT
+
| 8
+
| present if (HEAD_FLAGS & 0x400) != 0
+
|-
+
| EXT_TIME
+
| variable size
+
| present if (HEAD_FLAGS & 0x1000) != 0
+
|}
+
  
*other new fields may appear here.
+
== External Links ==
 
+
* [https://code.google.com/p/plaso/ Project site]
 
+
* [https://sites.google.com/a/kiddaland.net/plaso/home Project documentation]
{| class="wikitable"
+
* [http://blog.kiddaland.net/ Project blog]
|+ Bit Flags for Files in Archive
+
* [https://sites.google.com/a/kiddaland.net/plaso/usage/4n6time 4n6time]
! Flag (0x)
+
! Description
+
|-
+
| 01
+
| File continued from previous volume
+
|-
+
| 02
+
| File continued in next volume
+
|-
+
| 04
+
| File encrypted with password
+
|-
+
| 08
+
| File comment present. RAR 3.x uses the separate comment block and does not set this flag.
+
|-
+
| 10
+
| Information from previous files is used (solid flag) (for RAR 2.0 and later)
+
|-
+
| Dictionary bits 7 6 5 (for RAR 2.0 and later)
+
| Please see the 'Dictionary Bits' table for this descriptions
+
|-
+
| 100
+
| HIGH_PACK_SIZE and HIGH_UNP_SIZE fields are present. These fields are used to archive only very large files (larger than 2Gb), for smaller files these fields are absent.
+
|-
+
| 200
+
| FILE_NAME contains both usual and encoded Unicode name separated by zero. In this case NAME_SIZE field is equal to the length of usual name plus encoded Unicode name plus 1. If this flag is present, but FILE_NAME does not contain zero bytes, it means that file name is encoded using UTF-8.
+
|-
+
| 400
+
| The header contains additional 8 bytes after the file name, which are required to increase encryption security (so called 'salt').
+
|-
+
| 800
+
| Version flag. It is an old file version, a version number is appended to file name as ';n'.
+
|-
+
| 1000
+
| Extended time field present.
+
|-
+
| 8000
+
| This bit always is set, so the complete block size is HEAD_SIZE + PACK_SIZE (and plus HIGH_PACK_SIZE, if bit 0x100 is set)
+
|}
+
 
+
{| class="wikitable"
+
|+Dictionary Bits
+
! Bits (7 6 5)
+
! Description
+
! Size (KB)
+
|-
+
| 0 0 0
+
| Dictionary Size
+
| 64
+
|-
+
| 0 0 1
+
| Dictionary Size
+
| 128
+
|-
+
| 0 1 0
+
| Dictionary Size
+
| 256
+
|-
+
| 0 1 1
+
| Dictionary Size
+
| 512
+
|-
+
| 1 0 0
+
| Dictionary Size
+
| 1024
+
|-
+
| 1 0 1
+
| Dictionary Size
+
| 2048
+
|-
+
| 1 1 0
+
| Dictionary Size
+
| 4096
+
|-
+
| 1 1 1
+
| file is a directory
+
| N/A
+
|}
+
 
+
{| class="wikitable"
+
|+ Operating System Indicators
+
! Byte Indicator
+
! Operating System
+
|-
+
| 0
+
| MS DOS
+
|-
+
| 1
+
| OS/2
+
|-
+
| 2
+
| Windows
+
|-
+
| 3
+
| Unix
+
|-
+
| 4
+
| Mac OS
+
|-
+
| 5
+
| BeOS
+
|}
+
----
+
 
+
 
+
==Metadata==
+
 
+
 
+
 
+
==Sub-formats==
+
 
+
The RAR format is comprised of many sub-formats that have changed over the years. The different formats and their descriptions are as follows:
+
:* 1.3 (Does not have the RAR! signature)
+
:** There is difficulty finding information regarding this sub-format. Please update if you know something.
+
:* 1.5
+
:** Utilizes a proprietary compression method that is not available to the public.
+
:** Considered the root model of subsequent formats.
+
:** A detailed list of information can be found [http://www.win-rar.com/index.php?id=24&kb_article_id=162 here].
+
:* 2.0
+
:** Utilizes a proprietary compression method that is not available to the public.
+
:** Based off of version 1.5 of the RAR file format.
+
:* 3.0
+
:** Utilizes the [http://en.wikipedia.org/wiki/Prediction_by_Partial_Matching PPMII] and [http://en.wikipedia.org/wiki/LZ77_and_LZ78 Lempel-Ziv (LZSS)]] algorithms.
+
:** Encryption now uses cipher block chaining (CBC) instead of Advanced Encryption Standard (AES).
+
:** Based off of version 1.5 of the RAR file format.
+
 
+
 
+
 
+
==Software==
+
 
+
This only way to create a RAR file is using the [http://www.rarlab.com/ Winrar software]. There are several implementations of the process to open a RAR file (commonly known as the "unrar" process). Some of them are:
+
 
+
;unrarLib
+
 
+
:* RAR file unarchiver written in C
+
:* Easy implementation with a header file and the source code file
+
:* [http://www.unrarlib.org/ Information Link]
+
 
+
;WinRAR
+
 
+
:* Only software that can create and open a RAR file
+
:* Distributed by a proprietary license
+
:* [http://www.rarlab.com/download.htm WinRAR executable for Windows]
+
 
+
;UnRAR
+
 
+
:* Created by Eugene Roshal for opening up RAR files only
+
:* May not be used to reverse engineer the RAR file format and create RAR files
+
:* Source code provided for people to implement/integrate methods of opening RAR files
+
:* Additionally, implementations of UnRAR are available for a plethora of operating systems
+
:* [http://www.rarlab.com/rar_add.htm Download Link]
+
 
+
;The Unarchiver
+
 
+
:* Utility made for Mac OSX to open a multitude of files, including RAR files
+
:* Very handy for dealing with multiple file types
+
:* [http://code.google.com/p/theunarchiver/downloads/list Source Code Download]
+
:* [http://unarchiver.c3.cx/ Information Website]
+
 
+
;7-Zip
+
 
+
:* Utility made for Windows applications to open a multitude of files, including RAR files
+
:* [http://www.7-zip.org/download.html Download Link]
+
 
+
 
+
There is a lot more software to open RAR files, but have been omitted due to redundancy.
+
==See Also==
+
* [http://en.wikipedia.org/wiki/RAR Wikipedia: RAR]
+
* [http://acritum.com/winrar/rar-format RAR File Format Information]
+
* RAR File Format Technical Information for Version 4.11 [[File:RARFileStructure.txt]]
+
 
+
[[Category:File Formats]]
+

Revision as of 01:47, 4 June 2014

plaso
Maintainer: Kristinn Gudjonsson, Joachim Metz
OS: Linux, Mac OS X, Windows
Genre: Analysis
License: APL
Website: code.google.com/p/plaso/

Plaso (plaso langar að safna öllu) is the Python based back-end engine used by tools such as log2timeline for automatic creation of a super timelines. The goal of log2timeline (and thus plaso) is to provide a single tool that can parse various log files and forensic artifacts from computers and related systems, such as network equipment to produce a single correlated timeline. This timeline can then be easily analysed by forensic investigators/analysts, speeding up investigations by correlating the vast amount of information found on an average computer system. Plaso is intended to be applied for creating super timelines but also supports creating targeted timelines.

The Plaso project site also provides 4n6time, formerly "l2t_Review", which is a cross-platform forensic tool for timeline creation and review by David Nides.

Supported Formats

The information below is based of version 1.1.0

Storage Media Image File Formats

Storage Medis Image File Format support is provided by dfvfs.

Volume System Formats

Volume System Format support is provided by dfvfs.

File System Formats

File System Format support is provided by dfvfs.

File formats

Bencode file formats

  • Transmission
  • uTorrent

ESE database file formats

  • Internet Explorer WebCache format

OLE Compound File formats

  • Document summary information
  • Summary information (top-level only)

Property list (plist) formats

  • Airport
  • Apple Account
  • Bluetooth
  • Install History
  • iPod/iPhone
  • Mac User
  • Safari history
  • Software Update
  • Spotlight
  • Spotlight Volume Information
  • Timemachine

SQLite database file formats

Windows Registry formats

  • AppCompatCache
  • CCleaner
  • Less Frequently Used
  • MountPoints2
  • MRUList and MRUListEx (no shell item support)
  • MSIE Zones
  • Office MRU
  • Outlook Search
  • Run Keys
  • Services
  • Terminal Server MRU
  • Typed URLS
  • USBStor
  • UserAssist
  • WinRar
  • Windows version information

History

Plaso is a Python-based rewrite of the Perl-based log2timeline initially created by Kristinn Gudjonsson. Plaso builds upon the SleuthKit, libyal, dfvfs and various other projects.

See Also

External Links