Type File Details

From truxwiki.com
Jump to navigation Jump to search
<< Details >>
Defined Constant Type_File_Details
File Type Value 118
Parent Type JSON
Carve No
Format Details No
MIME Type application/json
Filename Extension json

File Details

Description

Details extracted from the file format.

Details

File details are fields within the file's format are extracted, normalized, interpreted and written to a JSON file that you can use to do further analysis.

This file is the source of information displayed to the user when clicking on "Additional Details" tab when viewing a file's contents. It was created to hold information that may be useful for other tools. Let's take a look at some file details for a Windows 32-bit executable:

[
  {
    "Label": "Original Filename",
    "Meaning": "OEMUNI.DLL",
    "Integer": "0",
    "Field": {
      "Type": "wide char",
      "Offset": "28756",
      "Length": "20"
    }
  },
  {
    "Label": "Machine",
    "Meaning": "Intel 386",
    "Integer": "332",
    "Field": {
      "Type": "uint16",
      "Offset": "260",
      "Length": "2"
    }
  },
  {
    "Label": "Base Address",
    "Meaning": "0x5B8C0000",
    "Integer": "1535901696",
    "Field": {
      "Type": "uint32",
      "Offset": "308",
      "Length": "4"
    }
  },
  {
    "Label": "Characteristics",
    "Meaning": "File is executable, Line numbers stripped, Local symbols stripped, 32 bit word, DLL",
    "Integer": "8462",
    "Field": {
      "Type": "uint16",
      "Offset": "278",
      "Length": "2"
    }
  },
  {
    "Label": "DLL Characteristics",
    "Meaning": "",
    "Integer": "0",
    "Field": {
      "Type": "uint16",
      "Offset": "348",
      "Length": "2"
    }
  },
  {
    "Label": "Subsystem",
    "Meaning": "Windows Console",
    "Integer": "3",
    "Field": {
      "Type": "uint16",
      "Offset": "348",
      "Length": "2"
    }
  },
  {
    "Label": "Compiled",
    "Meaning": "2001-08-18T05:35:41Z",
    "Integer": "998112941",
    "Field": {
      "Type": "uint32",
      "Offset": "264",
      "Length": "4"
    }
  },
  {
    "Label": "File Alignment",
    "Meaning": "512",
    "Integer": "512",
    "Field": {
      "Type": "uint32",
      "Offset": "316",
      "Length": "4"
    }
  },
  {
    "Label": "Code Size",
    "Meaning": "20480",
    "Integer": "20480",
    "Field": {
      "Type": "uint32",
      "Offset": "284",
      "Length": "4"
    }
  },
  {
    "Label": "Initialized Data Size",
    "Meaning": "901120",
    "Integer": "901120",
    "Field": {
      "Type": "uint32",
      "Offset": "288",
      "Length": "4"
    }
  },
  {
    "Label": "Uninitialized Data Size",
    "Meaning": "0",
    "Integer": "0",
    "Field": {
      "Type": "uint32",
      "Offset": "292",
      "Length": "4"
    }
  },
  {
    "Label": "Major OS Version",
    "Meaning": "5",
    "Integer": "5",
    "Field": {
      "Type": "uint16",
      "Offset": "320",
      "Length": "2"
    }
  },
  {
    "Label": "Minor OS Version",
    "Meaning": "1",
    "Integer": "1",
    "Field": {
      "Type": "uint16",
      "Offset": "322",
      "Length": "2"
    }
  },
  {
    "Label": "Major Image Version",
    "Meaning": "5",
    "Integer": "5",
    "Field": {
      "Type": "uint16",
      "Offset": "324",
      "Length": "2"
    }
  },
  {
    "Label": "Minor Image Version",
    "Meaning": "1",
    "Integer": "1",
    "Field": {
      "Type": "uint16",
      "Offset": "326",
      "Length": "2"
    }
  },
  {
    "Label": "Major Subsystem Version",
    "Meaning": "4",
    "Integer": "4",
    "Field": {
      "Type": "uint16",
      "Offset": "328",
      "Length": "2"
    }
  },
  {
    "Label": "Minor Subsystem Version",
    "Meaning": "10",
    "Integer": "10",
    "Field": {
      "Type": "uint16",
      "Offset": "330",
      "Length": "2"
    }
  },
  {
    "Label": "Rich 01 Component ID",
    "Meaning": "0019",
    "Integer": "25",
    "Field": {
      "Type": "uint16",
      "Offset": "146",
      "Length": "2"
    }
  },
  {
    "Label": "Rich 01 Component Version",
    "Meaning": "9043",
    "Integer": "9043",
    "Field": {
      "Type": "uint16",
      "Offset": "144",
      "Length": "2"
    }
  },
  {
    "Label": "Rich 01 Times",
    "Meaning": "6",
    "Integer": "6",
    "Field": {
      "Type": "uint32",
      "Offset": "148",
      "Length": "4"
    }
  },
  {
    "Label": "Rich 02 Component ID",
    "Meaning": "001C",
    "Integer": "28",
    "Field": {
      "Type": "uint16",
      "Offset": "154",
      "Length": "2"
    }
  },
  {
    "Label": "Rich 02 Component Version",
    "Meaning": "9037",
    "Integer": "9037",
    "Field": {
      "Type": "uint16",
      "Offset": "152",
      "Length": "2"
    }
  },
  {
    "Label": "Rich 02 Times",
    "Meaning": "1",
    "Integer": "1",
    "Field": {
      "Type": "uint32",
      "Offset": "156",
      "Length": "4"
    }
  },
  {
    "Label": "Rich 03 Component ID",
    "Meaning": "000E",
    "Integer": "14",
    "Field": {
      "Type": "uint16",
      "Offset": "162",
      "Length": "2"
    }
  },
  {
    "Label": "Rich 03 Component Version",
    "Meaning": "7299",
    "Integer": "7299",
    "Field": {
      "Type": "uint16",
      "Offset": "160",
      "Length": "2"
    }
  },
  {
    "Label": "Rich 03 Times",
    "Meaning": "2",
    "Integer": "2",
    "Field": {
      "Type": "uint32",
      "Offset": "164",
      "Length": "4"
    }
  },
  {
    "Label": "Content MD5",
    "Meaning": "902e45a45fa18a365ebdea18d21d03b4",
    "Integer": "0",
    "Field": {
      "Type": "byte",
      "Offset": "0",
      "Length": "33280"
    }
  }
]

Detail Records

The file details record contains the data items from the file format. Each record contains the location in the file where the data came from as well as the meaning of the field translated to something a human can understand.

JSON Fields

Label

This is the name of the record. It is generally expected that this will be non-technical name.

Meaning

This field interprets the data to make it more understandable. For example, dates can be represented many different ways in a file. The Meaning field will contain the time decoded into something a human can understand.

Integer

If the underlying data was an integer, this field will contain the raw value.

Field

This describes the location and format of the record. It will contain three sub-fields.

Type

This describes the format of the raw data. It will map to one of the data type identifiers.

Offset

The offset in bytes from the beginning of the file where this field began.

Length

The number of bytes in the field.

Sample

Let's take apart a record from our sample:

{
  "Label": "Machine",
  "Meaning": "Intel 386",
  "Integer": "332",
  "Field": {
    "Type": "uint16",
    "Offset": "260",
    "Length": "2"
  }
}

Truxton read 2 bytes beginning with the 260th byte in the file and interpreted those bytes as a little endian sixteen-bit unsigned integer with a value of 332. This integer value in this field of the file matches the defined constant IMAGE_FILE_MACHINE_I386. Truxton translated that into something a little more palatable for a human, "Intel 386"