<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://truxwiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin</id>
	<title>truxwiki.com - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://truxwiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin"/>
	<link rel="alternate" type="text/html" href="https://truxwiki.com/Special:Contributions/Admin"/>
	<updated>2026-09-09T20:12:07Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.1</generator>
	<entry>
		<id>https://truxwiki.com/index.php?title=Python_Sample_Exploitation_ETL&amp;diff=6439</id>
		<title>Python Sample Exploitation ETL</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Python_Sample_Exploitation_ETL&amp;diff=6439"/>
		<updated>2023-05-25T09:37:39Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Code Walkthrough */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This sample shows the steps needed to implement a file exploitation ETL in Truxton.&lt;br /&gt;
You can see this same sample implemented in [[C Sample Exploitation ETL|C]].&lt;br /&gt;
&lt;br /&gt;
=Sample File Format=&lt;br /&gt;
This sample will exploit a fake file format we call Acme.&lt;br /&gt;
[https://en.wikipedia.org/wiki/Acme_Corporation Acme Corporation] is a known supplier of nefarious devices and explosives.&lt;br /&gt;
Their file format begins with a five byte [https://en.wikipedia.org/wiki/Magic_number_(programming) magic value] followed by eleven bytes in a data structure.&lt;br /&gt;
If the sixth byte in the file is 0x11 then it is a serial number file that uniquely identifies the user.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
0000h: 88 77 66 55 00 11 22 33 44 55 66 77 88 99 AA BB&lt;br /&gt;
0010h: CC&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Source Code=&lt;br /&gt;
&amp;lt;source line lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
sys.path.append('C:/Program Files/Truxton/SDK')&lt;br /&gt;
import truxton&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
&lt;br /&gt;
  etl = truxton.etl()&lt;br /&gt;
  etl.name = &amp;quot;Acme Exploitation&amp;quot;&lt;br /&gt;
  etl.description = &amp;quot;This exploits Acme Corporation data files&amp;quot;&lt;br /&gt;
  etl.queue = &amp;quot;wiley&amp;quot;&lt;br /&gt;
  etl.stage = 40&lt;br /&gt;
  etl.addtype(11111)&lt;br /&gt;
&lt;br /&gt;
  message = etl.getmessage()&lt;br /&gt;
&lt;br /&gt;
  while message is not None:&lt;br /&gt;
    file_in_truxton = message.file()&lt;br /&gt;
&lt;br /&gt;
    file_in_truxton.seek(5)&lt;br /&gt;
&lt;br /&gt;
    next_byte = file_in_truxton.read(1)&lt;br /&gt;
    if next_byte[0] == 0x11:&lt;br /&gt;
      # Serial Number. The next 8 bytes are a serial number&lt;br /&gt;
      file_in_truxton.seek(6)&lt;br /&gt;
      serial_number = file_in_truxton.read(8)&lt;br /&gt;
&lt;br /&gt;
      artifact = file_in_truxton.newartifact()&lt;br /&gt;
      artifact.type = truxton.ENTITY_TYPE_SERIAL_NUMBER&lt;br /&gt;
      artifact.value = serial_number.hex()&lt;br /&gt;
      artifact.datatype = truxton.DATA_TYPE_uint8_t&lt;br /&gt;
      artifact.offset = 6&lt;br /&gt;
      artifact.length = 8&lt;br /&gt;
      artifact.save()&lt;br /&gt;
&lt;br /&gt;
    # Pause here until we get another message from the &amp;quot;wiley&amp;quot; message queue&lt;br /&gt;
    message = etl.getmessage()&lt;br /&gt;
&lt;br /&gt;
  return None&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Code Walkthrough=&lt;br /&gt;
Lines 7-12 setup the ETL. The message queue name will be &amp;quot;wiley&amp;quot;, we are an early stage and want to receive Acme files (11111 was chosen as the identifier of Acme files).&lt;br /&gt;
&lt;br /&gt;
Line 14 starts the ETL logic and waits until a message arrives on the &amp;quot;wiley&amp;quot; queue.&lt;br /&gt;
&lt;br /&gt;
Line 17 opens the file so we can read from it.&lt;br /&gt;
&lt;br /&gt;
Lines 21-22 read the sixth byte in the file and checks it for validity.&lt;br /&gt;
&lt;br /&gt;
Lines 27-33 creates an artifact (which will be stored in the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Entity Table|Entity]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table in the database) and saves it to Truxton.&lt;br /&gt;
&lt;br /&gt;
Line 28 sets the [[Entity Types|type of artifact]] to a serial number.&lt;br /&gt;
This allows analysts to quickly find items of interest by their type.&lt;br /&gt;
&lt;br /&gt;
Line 30 stores the [[DATA_TYPE|format]] of how the serial number was stored in the file.&lt;br /&gt;
&lt;br /&gt;
Line 33 saves the data to Truxton.&lt;br /&gt;
It will create a record in the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Entity Table|Entity]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table in the database.&lt;br /&gt;
Saving the artifact will cause Truxton to route it to any ETL that has subscribed to &amp;lt;code&amp;gt;[[Type_Artifact]]&amp;lt;/code&amp;gt; messages.&lt;br /&gt;
&lt;br /&gt;
Line 36 pauses your ETL until a new message arrives on it queue.&lt;br /&gt;
&lt;br /&gt;
=Development and Debugging=&lt;br /&gt;
Truxton ETLs assume they are part of a processing stream instead of processing a file from the local system.&lt;br /&gt;
This can slow your development cycle down.&lt;br /&gt;
Here's one strategy that will make your development iterations quicker:&lt;br /&gt;
# Perform a load with your sample file in it&lt;br /&gt;
# Find the file using the desktop GUI, copy the file identifier.&lt;br /&gt;
# Stop the Truxton service. This will prevent a &amp;quot;real&amp;quot; ETL from grabbing your file.&lt;br /&gt;
# Modify your program to use the &amp;lt;code&amp;gt;[[TruxtonETL#sendmefileid.28file_id.29|sendmefileid()]]&amp;lt;/code&amp;gt; function.&lt;br /&gt;
# Now every time you run your program you will immediately receive that file to play with.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot; highlight=&amp;quot;14&amp;quot;&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
sys.path.append('C:/Program Files/Truxton/SDK')&lt;br /&gt;
import truxton&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
&lt;br /&gt;
  etl = truxton.etl()&lt;br /&gt;
  etl.name = &amp;quot;Acme Exploitation&amp;quot;&lt;br /&gt;
  etl.description = &amp;quot;This exploits Acme Corporation data files&amp;quot;&lt;br /&gt;
  etl.queue = &amp;quot;wiley&amp;quot;&lt;br /&gt;
  etl.stage = 40&lt;br /&gt;
  etl.addtype(11000)&lt;br /&gt;
&lt;br /&gt;
  etl.sendmefileid(&amp;quot;5f06ef4d-03dd-5258-2758-378e00000011&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  message = etl.getmessage()&lt;br /&gt;
&lt;br /&gt;
  while message is not None:&lt;br /&gt;
    file_in_truxton = message.file()&lt;br /&gt;
&lt;br /&gt;
    file_in_truxton.seek(5)&lt;br /&gt;
&lt;br /&gt;
    next_byte = file_in_truxton.read(1)&lt;br /&gt;
    if next_byte[0] == 0x11:&lt;br /&gt;
      # Serial Number. The next 8 bytes are a serial number&lt;br /&gt;
      file_in_truxton.seek(6)&lt;br /&gt;
      serial_number = file_in_truxton.read(8)&lt;br /&gt;
&lt;br /&gt;
      artifact = file_in_truxton.newartifact()&lt;br /&gt;
      artifact.type = truxton.ENTITY_TYPE_SERIAL_NUMBER&lt;br /&gt;
      artifact.value = serial_number.hex()&lt;br /&gt;
      artifact.datatype = truxton.DATA_TYPE_uint8_t&lt;br /&gt;
      artifact.offset = 6&lt;br /&gt;
      artifact.length = 8&lt;br /&gt;
      artifact.save()&lt;br /&gt;
&lt;br /&gt;
    # Pause here until we get another message from the &amp;quot;wiley&amp;quot; message queue&lt;br /&gt;
    message = etl.getmessage()&lt;br /&gt;
&lt;br /&gt;
  return None&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
    main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Python&amp;diff=5565</id>
		<title>Python</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Python&amp;diff=5565"/>
		<updated>2022-04-19T02:14:36Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Truxton supports Python 3.10 via the &amp;lt;code&amp;gt;Truxton.pyd&amp;lt;/code&amp;gt; library.&lt;br /&gt;
This exposes the functionality of Truxton to Python.&lt;br /&gt;
Truxton does not limit Python's capabilities in any way.&lt;br /&gt;
&lt;br /&gt;
=Overview=&lt;br /&gt;
You must use the &amp;quot;import&amp;quot; directive to load the Truxton Python provider in &amp;lt;code&amp;gt;truxton.pyd&amp;lt;/code&amp;gt;.&lt;br /&gt;
This directive will search a variety of folders for the &amp;lt;code&amp;gt;[https://docs.python.org/3/faq/windows.html#is-a-pyd-file-the-same-as-a-dll pyd]&amp;lt;/code&amp;gt; file for Truxton (&amp;lt;code&amp;gt;truxton.pyd&amp;lt;/code&amp;gt;).&lt;br /&gt;
Normally, this file is installed in the SDK folder (&amp;lt;code&amp;gt;C:\Program Files\Truxton\SDK&amp;lt;/code&amp;gt;) along with all of the dependent files.  Be sure to include the full path (e.g. &amp;lt;code&amp;gt;c:\program files\truxton\sdk&amp;lt;/code&amp;gt;) &lt;br /&gt;
in your PATH environment variable so that Windows can locate all the needed dependencies.&lt;br /&gt;
&lt;br /&gt;
You can modify the &amp;lt;code&amp;gt;[https://docs.python.org/3/using/cmdline.html?highlight=pythonpath#envvar-PYTHONPATH PYTHONPATH]&amp;lt;/code&amp;gt; environment variable to include the SDK folder and Python will automatically search this folder.&lt;br /&gt;
Doing so will allow you to simply specify the Truxton library at the top of your scripts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Python&amp;quot;&amp;gt;&lt;br /&gt;
import truxton&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you don't have permission to modify environment variables, or you want to test your code with different versions of Truxton, you can manually modify Python's module search path.&lt;br /&gt;
Instead of using &amp;lt;code&amp;gt;PYTHONPATH&amp;lt;/code&amp;gt; environment variable, you can tell Python which folder contains &amp;lt;code&amp;gt;truxton.pyd&amp;lt;/code&amp;gt; by adding the following to the top of your scripts:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Python&amp;quot;&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
sys.path.append('C:/Program Files/Truxton/SDK')&lt;br /&gt;
import truxton&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can, within code, change which version of Truxton will be used with your script.&lt;br /&gt;
This ensures your script will always work should a breaking change be introduced in a subsequent release of Truxton.&lt;br /&gt;
&lt;br /&gt;
When you import &amp;lt;code&amp;gt;truxton&amp;lt;/code&amp;gt; you will get all of the predefined constants for [[File Types Supported|file type,]] [[DATA TYPE|data type,]] [[Origin|origins,]] [[Location Types|locations,]]&lt;br /&gt;
[[Message Types|messages,]] [[Entity Types|entities,]] [[Relation Types|relations,]] [[Event Types|events,]] [[Media Types|media,]] [[Object Types|objects,]] [[URL Methods|url methods,]] and [[URL Types|urls.]]&lt;br /&gt;
You can see them all by issuing a &amp;lt;code&amp;gt;dir&amp;lt;/code&amp;gt; command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; dir(truxton)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will allow your Python code to use the same constant names as C, C++ and C# code.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Python&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt;&amp;gt; print(truxton.Type_JPEG)&lt;br /&gt;
203&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Once you have this working, you can start playing with Truxton.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Python&amp;quot;&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
sys.path.append('C:/Program Files/Truxton/SDK')&lt;br /&gt;
import truxton&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
  t = truxton.create()&lt;br /&gt;
  print(t.version)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
  main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Style=&lt;br /&gt;
In general, when using a Truxton Python object, you will follow this pattern:&lt;br /&gt;
# Create the object&lt;br /&gt;
# Set the data members of the object&lt;br /&gt;
# Call &amp;lt;code&amp;gt;save()&amp;lt;/code&amp;gt; to store the object in the Truxton database.&lt;br /&gt;
&lt;br /&gt;
Until you call &amp;lt;code&amp;gt;save()&amp;lt;/code&amp;gt;, nothing will appear in Truxton.&lt;br /&gt;
&lt;br /&gt;
=Classes=&lt;br /&gt;
Truxton exposes several classes to Python.&lt;br /&gt;
* [[Truxton Top Level Object | Truxton]] - The top level object.&lt;br /&gt;
* [[TruxtonArtifact]] - For adding records to the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Entity Table|Entity]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table.&lt;br /&gt;
* [[TruxtonArtifactType]] - For adding custom artifact types to Truxton. This will make an entry in the &amp;lt;code&amp;gt;[EntityType]&amp;lt;/code&amp;gt; table.&lt;br /&gt;
* [[TruxtonBolo]] - For adding [https://en.wikipedia.org/wiki/All-points_bulletin#Policing BOLO] criteria to generate alerts.&lt;br /&gt;
* [[TruxtonChildFileIO]] - For writing a file to Truxton.&lt;br /&gt;
* [[TruxtonCommunication]] - For adding email, sms, mms, etc. communications to Truxton.&lt;br /&gt;
* [[TruxtonETL]] - For becoming a Truxton [https://en.wikipedia.org/wiki/Extract,_transform,_load ETL] process.&lt;br /&gt;
* [[TruxtonEvent]] - For adding records to the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Event Table|Event]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table.&lt;br /&gt;
* [[TruxtonEventType]] - For adding custom event types to Truxton. This will make an entry in the &amp;lt;code&amp;gt;[EventType]&amp;lt;/code&amp;gt; table.&lt;br /&gt;
* [[TruxtonExport]] - For exporting files out of Truxton.&lt;br /&gt;
* [[TruxtonEXIF]] - For adding records to the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[EXIF Table|EXIF]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table.&lt;br /&gt;
* [[TruxtonFileIO]] - For working with a read-only file stored in Truxton.&lt;br /&gt;
* [[TruxtonFileType]] - For adding new file types to Truxton. This will make an entry in the &amp;lt;code&amp;gt;[FileType]&amp;lt;/code&amp;gt; table.&lt;br /&gt;
* [[TruxtonInvestigation]] - For creating new investigations in Truxton. This will make an entry in the &amp;lt;code&amp;gt;[Investigation]&amp;lt;/code&amp;gt; table.&lt;br /&gt;
* [[TruxtonJurisdiction]] - For creating new jurisdictions in Truxton. This will make an entry in the &amp;lt;code&amp;gt;[Jurisdiction]&amp;lt;/code&amp;gt; table.&lt;br /&gt;
* [[TruxtonLocation]] - For adding geographic coordinates to the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Location Table|Location]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table.&lt;br /&gt;
* [[TruxtonMedia]] - For adding media to Truxton. This will make an entry in the &amp;lt;code&amp;gt;[Media]&amp;lt;/code&amp;gt; table.&lt;br /&gt;
* [[TruxtonMessage]] - The way Truxton [https://en.wikipedia.org/wiki/Extract,_transform,_load ETL] processes communicate.&lt;br /&gt;
* [[TruxtonObject]] - The object responsible for a connection to Truxton.&lt;br /&gt;
* [[TruxtonOptions]] - The object responsible for retrieving configuration variables from Truxton's [[Configuration System]].&lt;br /&gt;
* [[TruxtonRelation]] - For adding records to the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Relation Table|Relation]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table for relating two items in Truxton.&lt;br /&gt;
* [[TruxtonSensitiveSiteList]] - For handling Sensitive Site Lists&lt;br /&gt;
* [[TruxtonSubject]] - For adding subjects of investigations, aka persons of interest, aka suspects. This will make an entry in the &amp;lt;code&amp;gt;[Suspect]&amp;lt;/code&amp;gt; table.&lt;br /&gt;
* [[TruxtonUrl]] - For adding records to the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[WebsiteVisit Table|WebsiteVisit]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table.&lt;br /&gt;
* [[TruxtonUSB]] - For adding records to the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[USBDevice Table|USBDevice]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
=Remarks=&lt;br /&gt;
The Python API is designed primarily for programs to contribute to Truxton.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;Truxton.pyd&amp;lt;/code&amp;gt; was developed using the [[Truxton C API | C API]] with a thin [https://docs.python.org/3/c-api/index.html adapter layer] of code to translate from Python provider semantics to Truxton calls.&lt;br /&gt;
&lt;br /&gt;
=Samples=&lt;br /&gt;
* [[Python Sample Register a New File Type|Register a New File Type]] - Create your own type of file&lt;br /&gt;
* [[Python Sample Identification ETL|ETL for File Identification]] - Identify new file types&lt;br /&gt;
* [[Python Sample Exploitation ETL|ETL for File Exploitation]] - Exploit files&lt;br /&gt;
* [[Python Sample Export Videos|Export Videos]] - Export only unique videos from Truxton&lt;br /&gt;
* [[Helpful scripts#E01 of E01s|Export E01s]] - Exporting E01s from Truxton&lt;br /&gt;
* [[Creating a Rack#Display Machine Configuration|Rack Configuration]] - Displaying information about the configuration of a server in a rack&lt;br /&gt;
* [[Query Truxton|Query the Truxton Database]] - Using Python to pull information out of the Truxton database&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=TruxtonLocation&amp;diff=5564</id>
		<title>TruxtonLocation</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=TruxtonLocation&amp;diff=5564"/>
		<updated>2022-04-18T18:53:59Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Sample */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This class lets you add to the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Location Table|Location]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table in Truxton.&lt;br /&gt;
=Attributes and Methods=&lt;br /&gt;
&lt;br /&gt;
==altitude==&lt;br /&gt;
The altitude in meters.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;code&amp;gt;fileid&amp;lt;/code&amp;gt;==&lt;br /&gt;
The [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the file this location came from.&lt;br /&gt;
This corresponds to the &amp;lt;code&amp;gt;[FileID]&amp;lt;/code&amp;gt; column of the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Location Table|Location]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;code&amp;gt;id&amp;lt;/code&amp;gt;==&lt;br /&gt;
This is the [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the record.&lt;br /&gt;
It becomes non-zero after &amp;lt;code&amp;gt;save()&amp;lt;/code&amp;gt; has been called.&lt;br /&gt;
This corresponds to the &amp;lt;code&amp;gt;[ID]&amp;lt;/code&amp;gt; column of the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Location Table|Location]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;code&amp;gt;label&amp;lt;/code&amp;gt;==&lt;br /&gt;
The short label for this location.&lt;br /&gt;
This corresponds to the &amp;lt;code&amp;gt;[Label]&amp;lt;/code&amp;gt; column of the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Location Table|Location]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;code&amp;gt;latitude&amp;lt;/code&amp;gt;==&lt;br /&gt;
The [https://en.wikipedia.org/wiki/Latitude latitude] portion of the geographic coordinate using the [https://en.wikipedia.org/wiki/World_Geodetic_System#WGS84 WGS84] ellipsoid.&lt;br /&gt;
This corresponds to the &amp;lt;code&amp;gt;[Latitude]&amp;lt;/code&amp;gt; column of the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Location Table|Location]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;code&amp;gt;longitude&amp;lt;/code&amp;gt;==&lt;br /&gt;
The [https://en.wikipedia.org/wiki/Longitude longitude] portion of the geographic coordinate using the [https://en.wikipedia.org/wiki/World_Geodetic_System#WGS84 WGS84] ellipsoid.&lt;br /&gt;
Many thanks go to [https://en.wikipedia.org/wiki/John_Harrison John Harrison] for his work.&lt;br /&gt;
This corresponds to the &amp;lt;code&amp;gt;[Longitude]&amp;lt;/code&amp;gt; column of the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Location Table|Location]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;code&amp;gt;mediaid&amp;lt;/code&amp;gt;==&lt;br /&gt;
This is the [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] of the media this location came from.&lt;br /&gt;
This corresponds to the &amp;lt;code&amp;gt;[MediaID]&amp;lt;/code&amp;gt; column of the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Location Table|Location]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;code&amp;gt;save()&amp;lt;/code&amp;gt;==&lt;br /&gt;
This will commit the information to the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Location Table|Location]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table.&lt;br /&gt;
It will return [https://docs.python.org/3/library/constants.html#True True] if the record was saved to the database, [https://docs.python.org/3/library/constants.html#False False] if there was an error.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;code&amp;gt;tag(tag, reason, origin)&amp;lt;/code&amp;gt;==&lt;br /&gt;
This creates a tag associated with this location in Truxton.&lt;br /&gt;
The &amp;lt;code&amp;gt;tag&amp;lt;/code&amp;gt; parameter is a short, one or two word, bit of text that will be displayed in the UI.&lt;br /&gt;
The &amp;lt;code&amp;gt;reason&amp;lt;/code&amp;gt; a sentence explaining why this location was tagged.&lt;br /&gt;
The &amp;lt;code&amp;gt;origin&amp;lt;/code&amp;gt; is either &amp;lt;code&amp;gt;TAG_ORIGIN_AUTOMATIC&amp;lt;/code&amp;gt; (1) or &amp;lt;code&amp;gt;TAG_ORIGIN_HUMAN&amp;lt;/code&amp;gt; (2).&lt;br /&gt;
It will return &lt;br /&gt;
[https://docs.python.org/3.8/library/constants.html?highlight=false#True True] if the tag was associated with the location, [https://docs.python.org/3.8/library/constants.html?highlight=false#False False] on failure.&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;==&lt;br /&gt;
The type of the location.&lt;br /&gt;
This corresponds to the &amp;lt;code&amp;gt;[LocationTypeID]&amp;lt;/code&amp;gt; column of the &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;[[Location Table|Location]]&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; table.&lt;br /&gt;
It must be a value listed in the &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; column of the &amp;lt;code&amp;gt;[LocationType]&amp;lt;/code&amp;gt; table.&lt;br /&gt;
You can also use a [[Location Types | predefined constant.]]&lt;br /&gt;
&lt;br /&gt;
==&amp;lt;code&amp;gt;when&amp;lt;/code&amp;gt;==&lt;br /&gt;
The time associated with this location in [https://docs.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-filetime FILETIME] ticks.&lt;br /&gt;
&lt;br /&gt;
=Sample=&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Python&amp;quot; highlight=&amp;quot;43-49&amp;quot;&amp;gt;&lt;br /&gt;
import sys&lt;br /&gt;
sys.path.append('C:/Program Files/Truxton/SDK')&lt;br /&gt;
import truxton&lt;br /&gt;
import shutil&lt;br /&gt;
&lt;br /&gt;
from datetime import datetime&lt;br /&gt;
from calendar import timegm&lt;br /&gt;
from pathlib import Path&lt;br /&gt;
&lt;br /&gt;
EPOCH_AS_FILETIME = 116444736000000000&lt;br /&gt;
HUNDREDS_OF_NANOSECONDS = 10000000&lt;br /&gt;
&lt;br /&gt;
def date_to_filetime(dt):&lt;br /&gt;
  return EPOCH_AS_FILETIME + (timegm(dt.timetuple()) * HUNDREDS_OF_NANOSECONDS)&lt;br /&gt;
&lt;br /&gt;
def add_file(parent_truxton_file, filename):&lt;br /&gt;
  source_file = open(filename, &amp;quot;rb&amp;quot;)&lt;br /&gt;
  child = parent_truxton_file.newchild()&lt;br /&gt;
  child.name = Path(filename).name&lt;br /&gt;
  shutil.copyfileobj(source_file, child)&lt;br /&gt;
  source_file.close()&lt;br /&gt;
  child.save()&lt;br /&gt;
  return child&lt;br /&gt;
&lt;br /&gt;
def add_media(t):&lt;br /&gt;
  media = t.newmedia()&lt;br /&gt;
&lt;br /&gt;
  media.name = &amp;quot;Public Documents&amp;quot;&lt;br /&gt;
  media.description = &amp;quot;Publicly available documents&amp;quot;&lt;br /&gt;
  media.case = &amp;quot;DC-SNAFU-2016.2020&amp;quot;&lt;br /&gt;
  media.evidencebag = &amp;quot;EV-0937459386623-a&amp;quot;&lt;br /&gt;
  media.originator = &amp;quot;Jeffrey Jensen&amp;quot;&lt;br /&gt;
  media.latitude = 38.897661&lt;br /&gt;
  media.longitude = -77.036458&lt;br /&gt;
  media.type = truxton.MEDIA_TYPE_LOGICAL_FILES&lt;br /&gt;
  media.save()&lt;br /&gt;
&lt;br /&gt;
  return media&lt;br /&gt;
&lt;br /&gt;
def add_cs(parent_file ):&lt;br /&gt;
  child_file = add_file(parent_file, &amp;quot;cs.jpg&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
  gps = child_file.newlocation()&lt;br /&gt;
  gps.type = truxton.LOCATION_TYPE_MEETING&lt;br /&gt;
  gps.latitude = 51.487329&lt;br /&gt;
  gps.longitude = -0.124057&lt;br /&gt;
  gps.label = &amp;quot;HQ&amp;quot;&lt;br /&gt;
  gps.when = date_to_filetime(datetime.fromisoformat(&amp;quot;2016-04-01T12:00:00-05:00&amp;quot;))&lt;br /&gt;
  gps.save()&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
  t = truxton.create()&lt;br /&gt;
&lt;br /&gt;
  media = add_media(t)&lt;br /&gt;
&lt;br /&gt;
  root_file = media.addroot()&lt;br /&gt;
  root_file.save()&lt;br /&gt;
&lt;br /&gt;
  add_cs(root_file)&lt;br /&gt;
&lt;br /&gt;
if __name__ == &amp;quot;__main__&amp;quot;:&lt;br /&gt;
  main()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=TruxtonService.xml&amp;diff=456</id>
		<title>TruxtonService.xml</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=TruxtonService.xml&amp;diff=456"/>
		<updated>2020-05-18T21:12:31Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Configuration File */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This file contains the information for turning a machine into a Truxton Exploitation node.&lt;br /&gt;
&lt;br /&gt;
=Truxton Service=&lt;br /&gt;
Checks once per minute to see if ETLs and Services are running.&lt;br /&gt;
&lt;br /&gt;
=Configuration File=&lt;br /&gt;
The Truxton Service uses the [[Configuration System]] to gather options.&lt;br /&gt;
&lt;br /&gt;
==Settings==&lt;br /&gt;
===purger===&lt;br /&gt;
Truxton has expiration dates for media.&lt;br /&gt;
The default expiration date of media is 99 years from when it was loaded.&lt;br /&gt;
This setting governs if this instance of the Truxton Service will query the database for expired media and automatically delete it.&lt;br /&gt;
&lt;br /&gt;
===employed===&lt;br /&gt;
When set to true, this instance of Truxton Service will spawn ETL processes and monitor them.&lt;br /&gt;
&lt;br /&gt;
===work_schedule===&lt;br /&gt;
This section specifies when ETL processes are allowed to run.&lt;br /&gt;
Each day of the week can have a different schedule.&lt;br /&gt;
When the services comes on duty, it will start the ETL processes.&lt;br /&gt;
When it goes off duty, it will gracefully stop the ETL processes.&lt;br /&gt;
&lt;br /&gt;
===etl===&lt;br /&gt;
This section defines an ETL process.&lt;br /&gt;
the &amp;lt;code&amp;gt;exe&amp;lt;/code&amp;gt; element describes how the ETL should run and what the name of the executable file is.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;controllable&amp;lt;/code&amp;gt; - This attribute tells the Truxton Service if the ETL was written using Truxton libraries. This allows &lt;br /&gt;
&lt;br /&gt;
===service===&lt;br /&gt;
A service will run as long as the Truxton Service is running.&lt;br /&gt;
It is immune from the work schedule.&lt;br /&gt;
&lt;br /&gt;
===shutdownmachine===&lt;br /&gt;
This setting will power the loader machine off when the ETLs go idle for a while.&lt;br /&gt;
This is handy if you have spun up several VMs and don't want them to run when there's nothing to do.&lt;br /&gt;
&lt;br /&gt;
==Sample Configuration File==&lt;br /&gt;
This section contains a sample configuration file from a running machine.&lt;br /&gt;
One of the things we try to do in Truxton is to log where things came from.&lt;br /&gt;
Notice the first comment in the file, it logs who created the configuration file and when.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;root&amp;gt;&lt;br /&gt;
  &amp;lt;truxton_options&amp;gt;&lt;br /&gt;
  &amp;lt;!-- This Truxton service configuration file was created 2020-05-14 14:55:35 by TruxtonService.exe running as SYSTEM from the machine named DESKTOP-5NRI5PO (10.0.0.172). --&amp;gt;&lt;br /&gt;
    &amp;lt;service_configuration_version&amp;gt;1840023666788&amp;lt;/service_configuration_version&amp;gt;&lt;br /&gt;
  &amp;lt;!-- There should only be one purger of expired media on your network --&amp;gt;&lt;br /&gt;
    &amp;lt;purger&amp;gt;yes&amp;lt;/purger&amp;gt;&lt;br /&gt;
    &amp;lt;work_schedule&amp;gt;&lt;br /&gt;
    &amp;lt;!-- If this service is not employed, the service will run but no ETLs will be allowed to run --&amp;gt;&lt;br /&gt;
      &amp;lt;employed&amp;gt;yes&amp;lt;/employed&amp;gt;&lt;br /&gt;
      &amp;lt;monday&amp;gt;&lt;br /&gt;
        &amp;lt;on_duty&amp;gt;0000-2359&amp;lt;/on_duty&amp;gt;&lt;br /&gt;
      &amp;lt;/monday&amp;gt;&lt;br /&gt;
      &amp;lt;tuesday&amp;gt;&lt;br /&gt;
        &amp;lt;on_duty&amp;gt;0000-2359&amp;lt;/on_duty&amp;gt;&lt;br /&gt;
      &amp;lt;/tuesday&amp;gt;&lt;br /&gt;
      &amp;lt;wednesday&amp;gt;&lt;br /&gt;
        &amp;lt;on_duty&amp;gt;0000-2359&amp;lt;/on_duty&amp;gt;&lt;br /&gt;
      &amp;lt;/wednesday&amp;gt;&lt;br /&gt;
      &amp;lt;thursday&amp;gt;&lt;br /&gt;
        &amp;lt;on_duty&amp;gt;0000-2359&amp;lt;/on_duty&amp;gt;&lt;br /&gt;
      &amp;lt;/thursday&amp;gt;&lt;br /&gt;
      &amp;lt;friday&amp;gt;&lt;br /&gt;
        &amp;lt;on_duty&amp;gt;0000-2359&amp;lt;/on_duty&amp;gt;&lt;br /&gt;
      &amp;lt;/friday&amp;gt;&lt;br /&gt;
      &amp;lt;saturday&amp;gt;&lt;br /&gt;
        &amp;lt;on_duty&amp;gt;0000-2359&amp;lt;/on_duty&amp;gt;&lt;br /&gt;
      &amp;lt;/saturday&amp;gt;&lt;br /&gt;
      &amp;lt;sunday&amp;gt;&lt;br /&gt;
        &amp;lt;on_duty&amp;gt;0000-2359&amp;lt;/on_duty&amp;gt;&lt;br /&gt;
      &amp;lt;/sunday&amp;gt;&lt;br /&gt;
    &amp;lt;/work_schedule&amp;gt;&lt;br /&gt;
    &amp;lt;emptyqueuethresholdseconds&amp;gt;3600&amp;lt;/emptyqueuethresholdseconds&amp;gt;&lt;br /&gt;
    &amp;lt;etls&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This consumes BOLOs and creates Alerts.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;alert&amp;quot;&amp;gt;Alert&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This expands archive files.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;archives&amp;quot;&amp;gt;Archives&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This carves free space for files.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;carve&amp;quot;&amp;gt;Carve&amp;lt;/exe&amp;gt;&lt;br /&gt;
        &amp;lt;arguments&amp;gt;-carve_threads 0&amp;lt;/arguments&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This generates video contact sheets, the 10x10 grid of images taken throughout the video.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;contactsheet&amp;quot;&amp;gt;ContactSheet&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This parses MIME email files.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;email&amp;quot;&amp;gt;EMail&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This is the main file expander service.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;4&amp;quot; queue=&amp;quot;expand&amp;quot;&amp;gt;Expand&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This performs final processing after all files are present. It performs count queries and updates statistics.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;finishedstage&amp;quot;&amp;gt;Finished&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This identifies file contents and routes accordingly.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;identify&amp;quot;&amp;gt;Identify&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This is a loader as an ETL. It has the responsibility to expand files and load media.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;load&amp;quot;&amp;gt;Load&amp;lt;/exe&amp;gt;&lt;br /&gt;
        &amp;lt;arguments&amp;gt;-lq load&amp;lt;/arguments&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This coordinates the poly file expansion process.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;poly&amp;quot;&amp;gt;Poly&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This finds the all of the pieces of multi-part archives and expands them.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;pfe&amp;quot;&amp;gt;PolyFileExpander&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This exploits Windows registry files.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;registry&amp;quot;&amp;gt;Registry&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This exports registry files to the local filesystem, spawns RegRipper.exe, grabs the result and makes it a child file of the registry file.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;regripper&amp;quot;&amp;gt;RegRipper&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This spawns executables to expand files then kills them when done.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;remoteexpand&amp;quot;&amp;gt;RemoteFileExpander&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This generates the reports.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;report&amp;quot;&amp;gt;Report&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This keeps the SOLR service running.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;solrcontentstage&amp;quot;&amp;gt;SOLR&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This sends files to SOLR for content indexing.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;solrfile&amp;quot;&amp;gt;SOLRFile&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This reassembles fragments of carved files into the correct order for viewing.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;stitch&amp;quot;&amp;gt;Stitch&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This extracts text from files.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;tqueue&amp;quot;&amp;gt;TextExtract&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This generates small thumbnail images from larger images.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;2&amp;quot; queue=&amp;quot;thumbnail&amp;quot;&amp;gt;Thumbnail&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This uses Yara to scan files for the rules you specify. Normally this is a malware scanner.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;yara&amp;quot;&amp;gt;Yara&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
    &amp;lt;/etls&amp;gt;&lt;br /&gt;
    &amp;lt;services&amp;gt;{Solr 5 Server||$TextIndexerData$Search/bin/solr.cmd|start -p 8983 -m 5416m -a &amp;amp;quot;-XX:-UsePerfData&amp;amp;quot;|$TextIndexerData$Search/bin/solr.cmd|stop -p 8983|java.exe|jetty.port=8983},&amp;lt;/services&amp;gt;&lt;br /&gt;
  &amp;lt;!-- The shutdownmachine boolean value tells Truxton if it should power down the server once all ETLs go idle --&amp;gt;&lt;br /&gt;
    &amp;lt;shutdownmachine&amp;gt;false&amp;lt;/shutdownmachine&amp;gt;&lt;br /&gt;
  &amp;lt;/truxton_options&amp;gt;&lt;br /&gt;
&amp;lt;/root&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Configuration_System&amp;diff=455</id>
		<title>Configuration System</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Configuration_System&amp;diff=455"/>
		<updated>2020-05-18T20:56:55Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
&lt;br /&gt;
The way to communicate settings to Truxton is through a class called &amp;lt;code&amp;gt;Options&amp;lt;/code&amp;gt;.&lt;br /&gt;
This is an interpretation of the Ye Olde &amp;quot;Command Line Options&amp;quot; of which much has been written.&lt;br /&gt;
In Truxton, an option is prefaced by a name followed by the value.&lt;br /&gt;
There is only one value per option.&lt;br /&gt;
In this article, we may refer to an option as a parameter or setting.&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
The following are the nine different places that a parameter can come from. The lower the number, the greater the precedence that option has. The harder it is for a user to define an option, the greater weight that option will be given. It is harder for a user to specify an option on a command line because they must type it out. The user exerts no effort whatsoever to use a default value compiled into programs. Therefore, the command line option will be used instead of the compiled default. &lt;br /&gt;
&lt;br /&gt;
# Command Line Parameters&lt;br /&gt;
# Command Line Configuration File&lt;br /&gt;
# Command Line Database&lt;br /&gt;
# Environment Variable&lt;br /&gt;
# ETL Configuration File&lt;br /&gt;
# ETL Machine File&lt;br /&gt;
# Database by Machine&lt;br /&gt;
# Truxton Settings File&lt;br /&gt;
# Compiled Defaults&lt;br /&gt;
&lt;br /&gt;
==Command Line Parameters==&lt;br /&gt;
If a human takes the time to physically type parameters on a command line, they must really mean that they want this value to be used. Anything specified on a command line takes precedence over any other location. The format of command line parameters is parameter name followed by a space and the parameter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
load.exe -w 1 --xx abc /z &amp;quot;3 4 and 5&amp;quot; disk.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the example above there are three options specified and one non-option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option Name&lt;br /&gt;
! Option Value&lt;br /&gt;
|-&lt;br /&gt;
| w&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| xx&lt;br /&gt;
| abc&lt;br /&gt;
|-&lt;br /&gt;
| z&lt;br /&gt;
| 3 4 and 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The non-option is &amp;quot;disk.dat&amp;quot; A command line is the only way to specify a non-option.&lt;br /&gt;
&lt;br /&gt;
Option names can be prefaced with a single dash, double dash or a slash depending on your command line religion.&lt;br /&gt;
&lt;br /&gt;
==Command Line Configuration File==&lt;br /&gt;
You can put the name of a configuration file on the command line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
Identify.exe my_settings.xml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;my_settings.xml&amp;lt;/code&amp;gt; would be assumed to be a file name since it was not part of an option.&lt;br /&gt;
That file would then be opened, parsed as [https://en.wikipedia.org/wiki/XML XML] and anything found in a &amp;lt;code&amp;gt;truxton_options&amp;lt;/code&amp;gt; section would be used as configuration options.&lt;br /&gt;
All XML element names used in Truxton are lower case.&lt;br /&gt;
&lt;br /&gt;
The settings would look like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;truxton_options&amp;gt;&lt;br /&gt;
  &amp;lt;w&amp;gt;1&amp;lt;/w&amp;gt;&lt;br /&gt;
  &amp;lt;xx&amp;gt;abc&amp;lt;/xx&amp;gt;&lt;br /&gt;
  &amp;lt;z&amp;gt;3 4 and 5&amp;lt;/z&amp;gt;&lt;br /&gt;
&amp;lt;/truxton_options&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Command Line Database==&lt;br /&gt;
If you specify a settings identifier on the command line, Truxton will retrieve that setting from the database and use it.&lt;br /&gt;
The [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] you specify should match the &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; column of the &amp;lt;code&amp;gt;Setting&amp;lt;/code&amp;gt; table.&lt;br /&gt;
If a record is found, it will then parse the XML contents of the &amp;lt;code&amp;gt;Value&amp;lt;/code&amp;gt; column.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
Identify.exe 51256fb4-c7f6-327a-2703-325e219ecc2b&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you actually use a random value you will have no end of mistakes.&lt;br /&gt;
We suggest making fake ids for settings and using those.&lt;br /&gt;
It will make typing it in far easier. Here's a fake setting that can be easily typed and remembered by a human.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
Identify.exe 12345678-1234-1234-1234-123456789abc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Environment Variable==&lt;br /&gt;
Configuration options can also be set using environment variables.&lt;br /&gt;
These variables must have names that begin with &amp;lt;code&amp;gt;Truxton_&amp;lt;/code&amp;gt;&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
set Truxton_w=1&lt;br /&gt;
set Truxton_xx=abc&lt;br /&gt;
set Truxton_z=&amp;quot;3 4 and 5&amp;quot;&lt;br /&gt;
Load.exe disk.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ETL Configuration File==&lt;br /&gt;
Another location is an XML configuration file specifically for this type of ETL process.&lt;br /&gt;
Truxton will look for a file in the same directory as the executable with &amp;lt;code&amp;gt;config&amp;lt;/code&amp;gt; as the extension.&lt;br /&gt;
For example, the &amp;lt;code&amp;gt;Identify.exe&amp;lt;/code&amp;gt; ETL process will look for a file named &amp;lt;code&amp;gt;Identify.config&amp;lt;/code&amp;gt; and parse it if found.&lt;br /&gt;
&lt;br /&gt;
==ETL Machine File==&lt;br /&gt;
This is a configuration file with customized settings valid for the machine that runs the ETL processes.&lt;br /&gt;
Truxton will look for a file in the same directory as the &amp;lt;code&amp;gt;TruxtonSettings.xml&amp;lt;/code&amp;gt; file named &amp;lt;code&amp;gt;TruxtonSettings.machine&amp;lt;/code&amp;gt; as the extension.&lt;br /&gt;
&lt;br /&gt;
Machine configuration is usually used for specifying common settings that are unique to a machine.&lt;br /&gt;
For example, every ETL process needs some sort of temporary directory.&lt;br /&gt;
Some of your ETL machines may have RAM disks, others may have hard drives with differing drive letters.&lt;br /&gt;
Machine configuration files allow you to customize where the temp folder is for each machine.&lt;br /&gt;
&lt;br /&gt;
==Database by Machine==&lt;br /&gt;
Each installation of Truxton has a globally unique machine identifier.&lt;br /&gt;
This can be found in the &amp;lt;code&amp;gt;machineid&amp;lt;/code&amp;gt; element of the &amp;lt;code&amp;gt;TruxtonSettings.XML&amp;lt;/code&amp;gt; file.&lt;br /&gt;
Truxton will connect to the database and query the &amp;lt;code&amp;gt;Setting&amp;lt;/code&amp;gt; table for a record with the machine identifier in the &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; column.&lt;br /&gt;
If found, the XML in the &amp;lt;code&amp;gt;Value&amp;lt;/code&amp;gt; column will be parsed for options.&lt;br /&gt;
&lt;br /&gt;
==Truxton Settings File==&lt;br /&gt;
Each installation has a &amp;lt;code&amp;gt;TruxtonSettings.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
It is found in the &amp;lt;code&amp;gt;%programdata%\Truxton\Settings&amp;lt;/code&amp;gt; folder which usually expands to &amp;lt;code&amp;gt;C:\ProgramData\Truxton\Settings&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' The &amp;lt;code&amp;gt;ProgramData&amp;lt;/code&amp;gt; folder is normally hidden and won't show up in directory listings (or File Explorer).&lt;br /&gt;
&lt;br /&gt;
Its primary purpose is to store the [https://en.wikipedia.org/wiki/Universally_unique_identifier globally unique identifier] for the machine which was generated during installation.&lt;br /&gt;
The default database connection parameters are also stored here.&lt;br /&gt;
&lt;br /&gt;
As you can see, the &amp;lt;code&amp;gt;TruxtonSettings.xml&amp;lt;/code&amp;gt; file has very low priority.&lt;br /&gt;
&lt;br /&gt;
==Compiled Defaults==&lt;br /&gt;
Each ETL member can have default options built into it. If the option is not specified anywhere above, whatever was compiled into the executable will be used. This is the last resort.&lt;br /&gt;
&lt;br /&gt;
=Debugging the Options=&lt;br /&gt;
With nine different places to get options from, how could anything go wrong? If you need help debugging why an option isn't getting the value you want, use the &amp;lt;code&amp;gt;debugoptions&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
Identify.exe -debugoptions 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will cause an installation log to be created and the options written to it.&lt;br /&gt;
This log file is found in the &amp;lt;code&amp;gt;Truxton\OptionsDebugging&amp;lt;/code&amp;gt; directory under the &amp;lt;code&amp;gt;%programdata%&amp;lt;/code&amp;gt; folder (which usually expands to &amp;lt;code&amp;gt;C:\ProgramData&amp;lt;/code&amp;gt;) folder.&lt;br /&gt;
An installation log is the only log that can be created safely if everything else fails.&lt;br /&gt;
==Sample Options Log==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Log file created by &amp;quot;C:\Program Files\Truxton\Loader\Identify.exe&amp;quot;&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Processing &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot; as TruxtonSettings.xml(C:\ProgramData\Truxton\Settings\TruxtonSettings.xml)&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Getting Options from Truxton Database&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Parsing 3 command line arguments&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Beginning to parse the command line arguments at array index 0&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 0 ] = &amp;quot;identify&amp;quot;&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 0 ] (&amp;quot;identify&amp;quot;) is being added as a NotOption.&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 0 ] (&amp;quot;identify&amp;quot;) was added as a NotOption number 0.&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 1 ] = &amp;quot;-debugoptions&amp;quot;&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 2 ] = &amp;quot;1&amp;quot; is the value of option &amp;quot;debugoptions&amp;quot;&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : No existing option named &amp;quot;debugoptions&amp;quot; was found, creating a new one&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Finished parsing 3 command line arguments, there are now 1 NotOptions&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Processing &amp;quot;C:\Program Files\Truxton\Loader\Identify.config&amp;quot; as the ETL.config file&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Can't parse &amp;quot;C:\Program Files\Truxton\Loader\Identify.config&amp;quot; as XML&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Processing &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.machine&amp;quot; as the ETL.machine file&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Can't parse &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.machine&amp;quot; as XML&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : All Option Dump (The first entry of duplicate lines is the value that will be used by the program.)&lt;br /&gt;
Process &amp;quot;C:\Program Files\Truxton\Loader\Identify.exe&amp;quot;&lt;br /&gt;
createthedatabase : &amp;quot;1&amp;quot; from TruxtonSettings.xml XML element name truxton_options.CreateTheDatabase beginning at line 15 column 3 byte 485 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
datadir : &amp;quot;C:\Truxton Data&amp;quot; from TruxtonSettings.xml XML element name truxton_options.datadir beginning at line 13 column 3 byte 384 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbname : &amp;quot;Truxton&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbname beginning at line 5 column 3 byte 123 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbpassword : &amp;quot;Truxton4n6&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbpassword beginning at line 7 column 3 byte 180 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbport : &amp;quot;5432&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbport beginning at line 4 column 3 byte 98 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbserver : &amp;quot;localhost&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbserver beginning at line 3 column 3 byte 64 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbsr1 : &lt;br /&gt;
dbuser : &amp;quot;postgres&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbuser beginning at line 6 column 3 byte 151 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
debugoptions : &amp;quot;1&amp;quot; from Command Line argument 2 (zero is the first)&lt;br /&gt;
filegroupshavebeeninitialized : &amp;quot;1&amp;quot; from TruxtonSettings.xml XML element name truxton_options.FileGroupsHaveBeenInitialized beginning at line 17 column 3 byte 593 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
machineid : &amp;quot;64B30278-F250-4896-82EB-1AC416DB30B2&amp;quot; from TruxtonSettings.xml XML element name truxton_options.machineid beginning at line 14 column 3 byte 422 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mqname : &amp;quot;TruxtonMessageBus&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mqname beginning at line 10 column 3 byte 278 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mqpassword : &amp;quot;Truxton4n6&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mqpassword beginning at line 12 column 3 byte 345 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mqport : &amp;quot;5432&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mqport beginning at line 9 column 3 byte 253 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mqserver : &amp;quot;localhost&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mqserver beginning at line 8 column 3 byte 219 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mquser : &amp;quot;postgres&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mquser beginning at line 11 column 3 byte 316 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
solr_url : &amp;quot;http://localhost:8983/solr/truxton-core&amp;quot; from TruxtonSettings.xml XML element name truxton_options.solr_url beginning at line 16 column 3 byte 529 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
writesettings : &lt;br /&gt;
&lt;br /&gt;
End of Options, Start of Non-Options&lt;br /&gt;
&amp;quot;identify&amp;quot;&lt;br /&gt;
&lt;br /&gt;
End of All Option Dump&lt;br /&gt;
&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Processing &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot; as TruxtonSettings.xml(C:\ProgramData\Truxton\Settings\TruxtonSettings.xml)&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Getting Options from Truxton Database&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Parsing 3 command line arguments&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Beginning to parse the command line arguments at array index 0&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 0 ] = &amp;quot;identify&amp;quot;&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 0 ] (&amp;quot;identify&amp;quot;) is being added as a NotOption.&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 0 ] (&amp;quot;identify&amp;quot;) was added as a NotOption number 0.&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 1 ] = &amp;quot;-debugoptions&amp;quot;&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 2 ] = &amp;quot;1&amp;quot; is the value of option &amp;quot;debugoptions&amp;quot;&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : No existing option named &amp;quot;debugoptions&amp;quot; was found, creating a new one&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Finished parsing 3 command line arguments, there are now 1 NotOptions&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Processing &amp;quot;C:\Program Files\Truxton\Loader\Identify.config&amp;quot; as the ETL.config file&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Can't parse &amp;quot;C:\Program Files\Truxton\Loader\Identify.config&amp;quot; as XML&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Processing &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.machine&amp;quot; as the ETL.machine file&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Can't parse &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.machine&amp;quot; as XML&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : All Option Dump (The first entry of duplicate lines is the value that will be used by the program.)&lt;br /&gt;
Process &amp;quot;C:\Program Files\Truxton\Loader\Identify.exe&amp;quot;&lt;br /&gt;
aci : &amp;quot;10007&amp;quot; from Default definitions&lt;br /&gt;
alert_email_from_address : &amp;quot;Truxton@localhost&amp;quot; from Default definitions&lt;br /&gt;
alert_email_subject : &amp;quot;[Truxton Alert]&amp;quot; from Default definitions&lt;br /&gt;
carve : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
carve_threads : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
carvemode : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
carveoffset : &amp;quot;65536&amp;quot; from Default definitions&lt;br /&gt;
carveunknown : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
cmid : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
controlledby : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
createthedatabase : &amp;quot;1&amp;quot; from TruxtonSettings.xml XML element name truxton_options.CreateTheDatabase beginning at line 15 column 3 byte 485 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
cunk : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
cws : &amp;quot;10485760&amp;quot; from Default definitions&lt;br /&gt;
datadir : &amp;quot;C:\Truxton Data&amp;quot; from TruxtonSettings.xml XML element name truxton_options.datadir beginning at line 13 column 3 byte 384 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbname : &amp;quot;Truxton&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbname beginning at line 5 column 3 byte 123 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbname : &amp;quot;Truxton&amp;quot; from Default definitions&lt;br /&gt;
dbpassword : &amp;quot;Truxton4n6&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbpassword beginning at line 7 column 3 byte 180 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbport : &amp;quot;5432&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbport beginning at line 4 column 3 byte 98 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbport : &amp;quot;5432&amp;quot; from Default definitions&lt;br /&gt;
dbserver : &amp;quot;localhost&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbserver beginning at line 3 column 3 byte 64 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbserver : &amp;quot;127.0.0.1&amp;quot; from Default definitions&lt;br /&gt;
dbsr1 : &lt;br /&gt;
dbuser : &amp;quot;postgres&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbuser beginning at line 6 column 3 byte 151 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbuser : &amp;quot;postgres&amp;quot; from Default definitions&lt;br /&gt;
debugfileidmapping : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
debugoptions : &amp;quot;1&amp;quot; from Command Line argument 2 (zero is the first)&lt;br /&gt;
dedupemessages : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
deepsleep : &amp;quot;45007&amp;quot; from Default definitions&lt;br /&gt;
deletedfiles : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
depotpagesize : &amp;quot;4096&amp;quot; from Default definitions&lt;br /&gt;
ds : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
ee : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
excludefilesbytype : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
excludes : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
fct : &amp;quot;300&amp;quot; from Default definitions&lt;br /&gt;
filegroupshavebeeninitialized : &amp;quot;1&amp;quot; from TruxtonSettings.xml XML element name truxton_options.FileGroupsHaveBeenInitialized beginning at line 17 column 3 byte 593 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
fileslack : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
fqhi : &amp;quot;7500&amp;quot; from Default definitions&lt;br /&gt;
fqlo : &amp;quot;100&amp;quot; from Default definitions&lt;br /&gt;
hashsetall : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
iei : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
imagelength : &amp;quot;-1&amp;quot; from Default definitions&lt;br /&gt;
imageoffset : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
includefilesbytype : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
includes : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
istatus : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
itype : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
loadas : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
machineid : &amp;quot;64B30278-F250-4896-82EB-1AC416DB30B2&amp;quot; from TruxtonSettings.xml XML element name truxton_options.machineid beginning at line 14 column 3 byte 422 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
maxsleep : &amp;quot;600101&amp;quot; from Default definitions&lt;br /&gt;
metacarve : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
minsleep : &amp;quot;3011&amp;quot; from Default definitions&lt;br /&gt;
mlat : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
mlong : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
mqname : &amp;quot;TruxtonMessageBus&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mqname beginning at line 10 column 3 byte 278 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mqname : &amp;quot;TruxtonMessageBus&amp;quot; from Default definitions&lt;br /&gt;
mqpassword : &amp;quot;Truxton4n6&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mqpassword beginning at line 12 column 3 byte 345 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mqport : &amp;quot;5432&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mqport beginning at line 9 column 3 byte 253 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mqport : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
mqserver : &amp;quot;localhost&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mqserver beginning at line 8 column 3 byte 219 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mqserver : &amp;quot;127.0.0.1&amp;quot; from Default definitions&lt;br /&gt;
mquser : &amp;quot;postgres&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mquser beginning at line 11 column 3 byte 316 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mquser : &amp;quot;postgres&amp;quot; from Default definitions&lt;br /&gt;
mr : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
nocontents : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
nohashsets : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
norouting : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
nostartdelay : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
nostore : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
numberofbuffers : &amp;quot;2048&amp;quot; from Default definitions&lt;br /&gt;
numberofbytesperbuffer : &amp;quot;65536&amp;quot; from Default definitions&lt;br /&gt;
numberoffiles : &amp;quot;9223372036854775807&amp;quot; from Default definitions&lt;br /&gt;
pfiles : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
pfree : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
priority : &amp;quot;1000&amp;quot; from Default definitions&lt;br /&gt;
rapid : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
recovery : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
reprocess : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
skipdupmedia : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
smtp_server : &amp;quot;localhost&amp;quot; from Default definitions&lt;br /&gt;
solr_url : &amp;quot;http://localhost:8983/solr/truxton-core&amp;quot; from TruxtonSettings.xml XML element name truxton_options.solr_url beginning at line 16 column 3 byte 529 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
startatmft : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
syslogport : &amp;quot;514&amp;quot; from Default definitions&lt;br /&gt;
timeout : &amp;quot;120&amp;quot; from Default definitions&lt;br /&gt;
triage : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
tsk_verbose : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
updatemedianumberofchildren : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
updatepathid : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
verbose : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
wait : &amp;quot;none&amp;quot; from Default definitions&lt;br /&gt;
writesettings : &lt;br /&gt;
xorcarve : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
&lt;br /&gt;
End of Options, Start of Non-Options&lt;br /&gt;
&amp;quot;identify&amp;quot;&lt;br /&gt;
&lt;br /&gt;
End of All Option Dump&lt;br /&gt;
&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : application_name='Truxton Identify' dbname='Truxton' user='postgres' password='Truxton4n6' host='localhost' port=5432&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : application_name='Truxton Identify' dbname='TruxtonMessageBus' user='postgres' password='Truxton4n6' host='localhost' port=5432&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Truxton Identify can't get connection string variable dbserver variable &amp;quot;logserver&amp;quot;&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : application_name='Truxton Identify' dbname='Truxton' user='postgres' password='Truxton4n6' host='localhost' port=5432&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=TruxtonService.xml&amp;diff=454</id>
		<title>TruxtonService.xml</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=TruxtonService.xml&amp;diff=454"/>
		<updated>2020-05-18T20:49:12Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This file contains the information for turning a machine into a Truxton Exploitation node.&lt;br /&gt;
&lt;br /&gt;
=Truxton Service=&lt;br /&gt;
Checks once per minute to see if ETLs and Services are running.&lt;br /&gt;
&lt;br /&gt;
=Configuration File=&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;XML&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;root&amp;gt;&lt;br /&gt;
  &amp;lt;truxton_options&amp;gt;&lt;br /&gt;
  &amp;lt;!-- This Truxton service configuration file was created 2020-05-14 14:55:35 by TruxtonService.exe running as SYSTEM from the machine named DESKTOP-5NRI5PO (10.0.0.172). --&amp;gt;&lt;br /&gt;
    &amp;lt;service_configuration_version&amp;gt;1840023666788&amp;lt;/service_configuration_version&amp;gt;&lt;br /&gt;
  &amp;lt;!-- There should only be one purger of expired media on your network --&amp;gt;&lt;br /&gt;
    &amp;lt;purger&amp;gt;yes&amp;lt;/purger&amp;gt;&lt;br /&gt;
    &amp;lt;work_schedule&amp;gt;&lt;br /&gt;
    &amp;lt;!-- If this service is not employed, the service will run but no ETLs will be allowed to run --&amp;gt;&lt;br /&gt;
      &amp;lt;employed&amp;gt;yes&amp;lt;/employed&amp;gt;&lt;br /&gt;
      &amp;lt;monday&amp;gt;&lt;br /&gt;
        &amp;lt;on_duty&amp;gt;0000-2359&amp;lt;/on_duty&amp;gt;&lt;br /&gt;
      &amp;lt;/monday&amp;gt;&lt;br /&gt;
      &amp;lt;tuesday&amp;gt;&lt;br /&gt;
        &amp;lt;on_duty&amp;gt;0000-2359&amp;lt;/on_duty&amp;gt;&lt;br /&gt;
      &amp;lt;/tuesday&amp;gt;&lt;br /&gt;
      &amp;lt;wednesday&amp;gt;&lt;br /&gt;
        &amp;lt;on_duty&amp;gt;0000-2359&amp;lt;/on_duty&amp;gt;&lt;br /&gt;
      &amp;lt;/wednesday&amp;gt;&lt;br /&gt;
      &amp;lt;thursday&amp;gt;&lt;br /&gt;
        &amp;lt;on_duty&amp;gt;0000-2359&amp;lt;/on_duty&amp;gt;&lt;br /&gt;
      &amp;lt;/thursday&amp;gt;&lt;br /&gt;
      &amp;lt;friday&amp;gt;&lt;br /&gt;
        &amp;lt;on_duty&amp;gt;0000-2359&amp;lt;/on_duty&amp;gt;&lt;br /&gt;
      &amp;lt;/friday&amp;gt;&lt;br /&gt;
      &amp;lt;saturday&amp;gt;&lt;br /&gt;
        &amp;lt;on_duty&amp;gt;0000-2359&amp;lt;/on_duty&amp;gt;&lt;br /&gt;
      &amp;lt;/saturday&amp;gt;&lt;br /&gt;
      &amp;lt;sunday&amp;gt;&lt;br /&gt;
        &amp;lt;on_duty&amp;gt;0000-2359&amp;lt;/on_duty&amp;gt;&lt;br /&gt;
      &amp;lt;/sunday&amp;gt;&lt;br /&gt;
    &amp;lt;/work_schedule&amp;gt;&lt;br /&gt;
    &amp;lt;emptyqueuethresholdseconds&amp;gt;3600&amp;lt;/emptyqueuethresholdseconds&amp;gt;&lt;br /&gt;
    &amp;lt;etls&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This consumes BOLOs and creates Alerts.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;alert&amp;quot;&amp;gt;Alert&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This expands archive files.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;archives&amp;quot;&amp;gt;Archives&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This carves free space for files.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;carve&amp;quot;&amp;gt;Carve&amp;lt;/exe&amp;gt;&lt;br /&gt;
        &amp;lt;arguments&amp;gt;-carve_threads 0&amp;lt;/arguments&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This generates video contact sheets, the 10x10 grid of images taken throughout the video.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;contactsheet&amp;quot;&amp;gt;ContactSheet&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This parses MIME email files.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;email&amp;quot;&amp;gt;EMail&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This is the main file expander service.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;4&amp;quot; queue=&amp;quot;expand&amp;quot;&amp;gt;Expand&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This performs final processing after all files are present. It performs count queries and updates statistics.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;finishedstage&amp;quot;&amp;gt;Finished&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This identifies file contents and routes accordingly.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;identify&amp;quot;&amp;gt;Identify&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This is a loader as an ETL. It has the responsibility to expand files and load media.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;load&amp;quot;&amp;gt;Load&amp;lt;/exe&amp;gt;&lt;br /&gt;
        &amp;lt;arguments&amp;gt;-lq load&amp;lt;/arguments&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This coordinates the poly file expansion process.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;poly&amp;quot;&amp;gt;Poly&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This finds the all of the pieces of multi-part archives and expands them.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;pfe&amp;quot;&amp;gt;PolyFileExpander&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This exploits Windows registry files.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;registry&amp;quot;&amp;gt;Registry&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This exports registry files to the local filesystem, spawns RegRipper.exe, grabs the result and makes it a child file of the registry file.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;regripper&amp;quot;&amp;gt;RegRipper&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This spawns executables to expand files then kills them when done.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;remoteexpand&amp;quot;&amp;gt;RemoteFileExpander&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This generates the reports.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;report&amp;quot;&amp;gt;Report&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This keeps the SOLR service running.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;solrcontentstage&amp;quot;&amp;gt;SOLR&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This sends files to SOLR for content indexing.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;solrfile&amp;quot;&amp;gt;SOLRFile&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This reassembles fragments of carved files into the correct order for viewing.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;stitch&amp;quot;&amp;gt;Stitch&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This extracts text from files.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;tqueue&amp;quot;&amp;gt;TextExtract&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This generates small thumbnail images from larger images.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;2&amp;quot; queue=&amp;quot;thumbnail&amp;quot;&amp;gt;Thumbnail&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
      &amp;lt;etl&amp;gt;&lt;br /&gt;
        &amp;lt;description&amp;gt;This uses Yara to scan files for the rules you specify. Normally this is a malware scanner.&amp;lt;/description&amp;gt;&lt;br /&gt;
        &amp;lt;exe controllable=&amp;quot;yes&amp;quot; instances=&amp;quot;1&amp;quot; queue=&amp;quot;yara&amp;quot;&amp;gt;Yara&amp;lt;/exe&amp;gt;&lt;br /&gt;
      &amp;lt;/etl&amp;gt;&lt;br /&gt;
    &amp;lt;/etls&amp;gt;&lt;br /&gt;
    &amp;lt;services&amp;gt;{Solr 5 Server||$TextIndexerData$Search/bin/solr.cmd|start -p 8983 -m 5416m -a &amp;amp;quot;-XX:-UsePerfData&amp;amp;quot;|$TextIndexerData$Search/bin/solr.cmd|stop -p 8983|java.exe|jetty.port=8983},&amp;lt;/services&amp;gt;&lt;br /&gt;
  &amp;lt;!-- The shutdownmachine boolean value tells Truxton if it should power down the server once all ETLs go idle --&amp;gt;&lt;br /&gt;
    &amp;lt;shutdownmachine&amp;gt;false&amp;lt;/shutdownmachine&amp;gt;&lt;br /&gt;
  &amp;lt;/truxton_options&amp;gt;&lt;br /&gt;
&amp;lt;/root&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Resource_Group&amp;diff=453</id>
		<title>Resource Group</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Resource_Group&amp;diff=453"/>
		<updated>2020-05-18T20:45:40Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;A Resource Group in Azure is way of grouping resources into a manageable set. The neat thing about a Resource Group is when you delete it, all resources get deleted too. It is...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A Resource Group in Azure is way of grouping resources into a manageable set.&lt;br /&gt;
The neat thing about a Resource Group is when you delete it, all resources get deleted too.&lt;br /&gt;
It is a simple way to test systems by putting them into a group that can be easily cleaned up.&lt;br /&gt;
&lt;br /&gt;
==Creation==&lt;br /&gt;
&lt;br /&gt;
In order to begin playing with practically anything in Azure, you must first create a Resource Group to hold things.&lt;br /&gt;
&lt;br /&gt;
# Go to the Azure Portal Home&lt;br /&gt;
# In the left pane, select Resource Groups&lt;br /&gt;
# In the Resource Groups pane on the right, click &amp;quot;+Add&amp;quot; in the top menu bar&lt;br /&gt;
# Select the Subscription (billing)&lt;br /&gt;
# Give the new Resource Group workspace a name. While not a law, it is highly recommended to use only lower case letters in your Resource Group Name (truxlogs).&lt;br /&gt;
# Pick a Region to host the Resource Group (useast or useast2)&lt;br /&gt;
# Not required, but it is highly recommended to add tags to the resource group. '''CreatedBy''' and '''Description''' are quite helpful.&lt;br /&gt;
# Click &amp;quot;Review + create&amp;quot;&lt;br /&gt;
# If validation succeeds, press &amp;quot;Create&amp;quot;&lt;br /&gt;
&lt;br /&gt;
You will be taken back to the list of Resource Groups screen.&lt;br /&gt;
Wait a minute or two then refresh the web page and you should see your new group listed.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Azure_Log_Analytics&amp;diff=452</id>
		<title>Azure Log Analytics</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Azure_Log_Analytics&amp;diff=452"/>
		<updated>2020-05-18T20:45:12Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;==AKA== Log Analytics has also been known as: * Operational Insights * Monitor  ==Creation==  In order to begin playing with Azure Log Analytics, you must first create a Log A...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==AKA==&lt;br /&gt;
Log Analytics has also been known as:&lt;br /&gt;
* Operational Insights&lt;br /&gt;
* Monitor&lt;br /&gt;
&lt;br /&gt;
==Creation==&lt;br /&gt;
&lt;br /&gt;
In order to begin playing with Azure Log Analytics, you must first create a Log Analytic Workspace (aka Operational Insights Workspace).&lt;br /&gt;
To do that, you must first have a [[Resource Group]].&lt;br /&gt;
&lt;br /&gt;
# Go the Home page of Azure Portal&lt;br /&gt;
# In the &amp;quot;Search resources&amp;quot; edit control at the top of the page, type &amp;quot;Log Analytics&amp;quot; then select &amp;quot;Log Analytics workspaces&amp;quot; from the results.&lt;br /&gt;
# Click the &amp;quot;+ Add&amp;quot; button in the top menu bar&lt;br /&gt;
# Give the new workspace a name (truxlaw)&lt;br /&gt;
# Select the Subscription&lt;br /&gt;
# Select the [[Resource Group]] (truxlogs)&lt;br /&gt;
# Select the Location. For best results, use the same location as the [[Resource Group]] (US East or US East 2)&lt;br /&gt;
# Click OK&lt;br /&gt;
# Azure will go off and think about what you've done for a while, then tell you it succeeded. Wait a minute or two and refresh the web page to see the new workspace listed.&lt;br /&gt;
&lt;br /&gt;
==Keys and ID==&lt;br /&gt;
&lt;br /&gt;
In order for Truxton to log forensic items to Azure Monitor service, it must know where to send the log messages.&lt;br /&gt;
&lt;br /&gt;
# Edit the &amp;lt;code&amp;gt;TruxtonSettings.xml&amp;lt;/code&amp;gt; file in the &amp;quot;C:\ProgramData\Truxton\Settings&amp;quot; folder.&lt;br /&gt;
# Under the &amp;lt;code&amp;gt;truxton_options&amp;lt;/code&amp;gt; element, create a new element named &amp;lt;code&amp;gt;AzureMonitor&amp;lt;/code&amp;gt;&lt;br /&gt;
# Under the &amp;lt;code&amp;gt;AzureMonitor&amp;lt;/code&amp;gt; element, create a new element named &amp;lt;code&amp;gt;LogAnalyticsWorkspaceID&amp;lt;/code&amp;gt;&lt;br /&gt;
# Under the &amp;lt;code&amp;gt;AzureMonitor&amp;lt;/code&amp;gt; element, create a new element named &amp;lt;code&amp;gt;APIKey&amp;lt;/code&amp;gt;&lt;br /&gt;
# In a browser, go the Azure portal, locate your Log Analytics workspace.&lt;br /&gt;
# Select Advanced Settings and then Connected Sources.&lt;br /&gt;
# Under the &amp;quot;WORKSPACE ID&amp;quot; label, select the [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID], copy and then paste it into the &amp;lt;code&amp;gt;LogAnalyticsWorkspaceID&amp;lt;/code&amp;gt; element in &amp;lt;code&amp;gt;TruxtonSettings.xml&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Under the &amp;quot;PRIMARY KEY&amp;quot; label, select the text, copy and then paste it into the &amp;lt;code&amp;gt;APIKey&amp;lt;/code&amp;gt; element in &amp;lt;code&amp;gt;TruxtonSettings.xml&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Save &amp;lt;code&amp;gt;TruxtonSettings.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sample Config File===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;truxton_options&amp;gt;&lt;br /&gt;
  &amp;lt;AzureMonitor&amp;gt;&lt;br /&gt;
    &amp;lt;LogAnalyticsWorkspaceID&amp;gt;7d70d995-c49d-43f2-80d0-1253ef811c73&amp;lt;/LogAnalyticsWorkspaceID&amp;gt;&lt;br /&gt;
    &amp;lt;APIKey&amp;gt;YxNXhS8oXCjTXp87DMpEZAcLv5od3dTaSR0xzm3xzQWT7svsytJ/WQyyejLn9lbxI4VbM/ByzuTV8dgqW0V2eg==&amp;lt;/APIKey&amp;gt;&lt;br /&gt;
  &amp;lt;/AzureMonitor&amp;gt;&lt;br /&gt;
  &amp;lt;dbserver&amp;gt;localhost&amp;lt;/dbserver&amp;gt;&lt;br /&gt;
  &amp;lt;dbport&amp;gt;5432&amp;lt;/dbport&amp;gt;&lt;br /&gt;
  &amp;lt;dbname&amp;gt;Truxton&amp;lt;/dbname&amp;gt;&lt;br /&gt;
  &amp;lt;dbuser&amp;gt;postgres&amp;lt;/dbuser&amp;gt;&lt;br /&gt;
  &amp;lt;dbpassword&amp;gt;password&amp;lt;/dbpassword&amp;gt;&lt;br /&gt;
  &amp;lt;mqserver&amp;gt;localhost&amp;lt;/mqserver&amp;gt;&lt;br /&gt;
  &amp;lt;mqport&amp;gt;5432&amp;lt;/mqport&amp;gt;&lt;br /&gt;
  &amp;lt;mqname&amp;gt;TruxtonMessageBus&amp;lt;/mqname&amp;gt;&lt;br /&gt;
  &amp;lt;mquser&amp;gt;postgres&amp;lt;/mquser&amp;gt;&lt;br /&gt;
  &amp;lt;mqpassword&amp;gt;password&amp;lt;/mqpassword&amp;gt;&lt;br /&gt;
  &amp;lt;datadir&amp;gt;C:\Truxton Data&amp;lt;/datadir&amp;gt;&lt;br /&gt;
  &amp;lt;machineid&amp;gt;9D29E664-A4F2-48C3-88D2-BCF7CB5DEBBC&amp;lt;/machineid&amp;gt;&lt;br /&gt;
  &amp;lt;CreateTheDatabase&amp;gt;1&amp;lt;/CreateTheDatabase&amp;gt;&lt;br /&gt;
  &amp;lt;solr_url&amp;gt;http://localhost:8983/solr/truxton-core&amp;lt;/solr_url&amp;gt;&lt;br /&gt;
&amp;lt;/truxton_options&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* [https://docs.microsoft.com/en-us/cli/azure/monitor/log-analytics/workspace?view=azure-cli-latest az] - You can create a log analytic workspace using:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
az monitor log-analytics workspace create&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Azure&amp;diff=451</id>
		<title>Azure</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Azure&amp;diff=451"/>
		<updated>2020-05-18T20:44:50Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;Azure is Microsoft's cloud.  '''NOTE''' We will use the [https://docs.microsoft.com/en-us/cli/azure/?view=azure-cli-latest Azure CLI] (Command Line Interface) for all example...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Azure is Microsoft's cloud.&lt;br /&gt;
&lt;br /&gt;
'''NOTE''' We will use the [https://docs.microsoft.com/en-us/cli/azure/?view=azure-cli-latest Azure CLI] (Command Line Interface) for all example commands.&lt;br /&gt;
&lt;br /&gt;
=Subscription=&lt;br /&gt;
A subscription is basically billing address.&lt;br /&gt;
A &amp;quot;subscription id&amp;quot; is a [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID].&lt;br /&gt;
&lt;br /&gt;
A subscription id is also known as:&lt;br /&gt;
* Tenant ID&lt;br /&gt;
* Directory ID&lt;br /&gt;
&lt;br /&gt;
=Resource Group=&lt;br /&gt;
Resource groups belong to a subscription.&lt;br /&gt;
A &amp;quot;resource group id&amp;quot; is a [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID].&lt;br /&gt;
Everything you create in Azure will belong to a resource group.&lt;br /&gt;
[https://en.wikipedia.org/wiki/Virtual_machine VMs], virtual networks, database servers, etc. that you create in Azure will belong to a resource group.&lt;br /&gt;
Making each of these things can be tricky. &lt;br /&gt;
The really nice thing about a resource group is you can easily kill them.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
az group delete --name truxtonrg --subscription 78E6D3E6-F7D7-4FDF-A9FC-40F014C3D78F --yes&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
When you delete a resource group, Azure will conveniently destroy every resource in that group.&lt;br /&gt;
While you may have carefully toiled to create many intricately connected resources, they can all be killed in an instant.&lt;br /&gt;
&lt;br /&gt;
=How To=&lt;br /&gt;
&lt;br /&gt;
When we write [https://docs.microsoft.com/en-us/powershell/ Powershell] scripts to create the pieces of Truxton in Azure, we will typically provide as much information as possible to those scripts.&lt;br /&gt;
When creating a resource, the resource group id will be a mandatory parameter while the subscription id is an optional parameter.&lt;br /&gt;
We will always specify both.&lt;br /&gt;
We have encountered enough problems that were solved by providing both ids that we will forever provide both to the Azure CLI scripts.&lt;br /&gt;
&lt;br /&gt;
*[[Azure Log Analytics]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Developer%27s_Guide&amp;diff=450</id>
		<title>Developer's Guide</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Developer%27s_Guide&amp;diff=450"/>
		<updated>2020-05-18T20:43:48Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Code Dependencies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Truxton Developer's Guide=&lt;br /&gt;
&lt;br /&gt;
[[How to Write an ETL]]&lt;br /&gt;
&lt;br /&gt;
=Truxton Stuff=&lt;br /&gt;
&lt;br /&gt;
* [[How Truxton Works]]&lt;br /&gt;
* [[Truxton SDK]]&lt;br /&gt;
* [[Message Bus Drivers]]&lt;br /&gt;
* [[Connie]] - The Message Bus Concentrator&lt;br /&gt;
* [[Azure]]&lt;br /&gt;
* [[Debugging the Loader]]&lt;br /&gt;
* [[Add A New File Type]]&lt;br /&gt;
* [[Depot]] file format&lt;br /&gt;
* [[Load List]] file format&lt;br /&gt;
* [[Next Generation Database]]&lt;br /&gt;
* [[File Type Identification]]&lt;br /&gt;
* [[Database Schema]]&lt;br /&gt;
* [[VC Redistributables]]&lt;br /&gt;
* [[Configuration System]]&lt;br /&gt;
* [[Useful SQL Queries]]&lt;br /&gt;
* [[Temporary Filenames]]&lt;br /&gt;
* [[Watch Desktop Logs]]&lt;br /&gt;
* [[TruxtonService.xml]]&lt;br /&gt;
* [[ETL Stages]]&lt;br /&gt;
* [[Message Bus Messages]]&lt;br /&gt;
* [[How To Debug LE ETLs]]&lt;br /&gt;
* [[Installed Libraries]]&lt;br /&gt;
&lt;br /&gt;
=Data Types=&lt;br /&gt;
Truxton uses lots of defined constants and enums.&lt;br /&gt;
Here's a list of them.&lt;br /&gt;
&lt;br /&gt;
* [[Content Status]]&lt;br /&gt;
* [[DATA TYPE|Data Types]]&lt;br /&gt;
* [[Depot Types]]&lt;br /&gt;
* [[Entity Types]]&lt;br /&gt;
* [[Origin|File Content Origins]]&lt;br /&gt;
* [[Media Types]]&lt;br /&gt;
* [[Media Status]]&lt;br /&gt;
* [[Media Load Percentage]]&lt;br /&gt;
&lt;br /&gt;
=Exploitation=&lt;br /&gt;
* [[File Format Research]]&lt;br /&gt;
* [[SQLite Queries]]&lt;br /&gt;
* [[Time Epochs]]&lt;br /&gt;
&lt;br /&gt;
=Code Dependencies=&lt;br /&gt;
* [[vcpkg]]&lt;br /&gt;
* [https://github.com/SammyB428/WFC Win32 Foundation Classes]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Vcpkg&amp;diff=449</id>
		<title>Vcpkg</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Vcpkg&amp;diff=449"/>
		<updated>2020-05-18T20:41:24Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;[https://github.com/Microsoft/vcpkg vcpkg] is Microsoft's C++ package manager. It ships as source code that you build. It includes several tools such as: * [https://cmake.org/...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://github.com/Microsoft/vcpkg vcpkg] is Microsoft's C++ package manager.&lt;br /&gt;
It ships as source code that you build.&lt;br /&gt;
It includes several tools such as:&lt;br /&gt;
* [https://cmake.org/ CMake] - Because the other build tools that Microsoft ships ([https://docs.microsoft.com/en-us/cpp/build/reference/nmake-reference?view=vs-2019 nmake], [https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild?view=vs-2019 MSBuild]) just aren't good enough.&lt;br /&gt;
* [https://www.7-zip.org/ 7Zip] (7za)&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Bash_%28Unix_shell%29 bash]&lt;br /&gt;
* [https://git-scm.com/ git]&lt;br /&gt;
* [http://mingw.org/ MinGW]&lt;br /&gt;
* [https://www.nuget.org/ nuget]&lt;br /&gt;
&lt;br /&gt;
=What It Does=&lt;br /&gt;
[https://github.com/Microsoft/vcpkg vcpkg] performs three basic tasks:&lt;br /&gt;
# Download source code&lt;br /&gt;
# Compile source code into libraries/executables&lt;br /&gt;
# Copy files to well known folders&lt;br /&gt;
&lt;br /&gt;
=Prerequisites=&lt;br /&gt;
* A [https://git-scm.com/download/win command line git] client.&lt;br /&gt;
* Powershell&lt;br /&gt;
&lt;br /&gt;
=Getting vcpkg=&lt;br /&gt;
&lt;br /&gt;
Here's how to put a C++ library project into a package.&lt;br /&gt;
These steps are derived from [https://github.com/microsoft/vcpkg/blob/master/docs/examples/packaging-github-repos.md this] article.&lt;br /&gt;
&lt;br /&gt;
# Create a folder&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;mkdir MyProject&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Go into that folder&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;cd MyProject&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Get the vcpkg source code&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;git clone https://github.com/Microsoft/vcpkg.git&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Go into the vcpkg folder&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;cd vcpkg&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Start Powershell&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;powershell&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Compile vcpkg&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;.\bootstrap-vcpkg.bat&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# As of this writing, 2019-10-24, vcpkg defaults to 32-bit builds. To get it to use 64-bit you must set a global environment variable to something called a [https://github.com/microsoft/vcpkg/blob/master/docs/users/triplets.md &amp;quot;triplet&amp;quot;] which is a long string with two fields in it.&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;VCPKG_DEFAULT_TRIPLET=x64-windows&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# [https://github.com/microsoft/vcpkg/blob/master/docs/users/integration.md Integrate] vcpkg with your build system&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;.\vcpkg integrate install&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
#: You can uninstall the integration by:&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;.\vcpkg integrate remove&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# vcpkg is now ready to use. To get and compile a package, you use the &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; command.&lt;br /&gt;
#: &amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;.\vcpkg install curl&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Recommended Environment Variables=&lt;br /&gt;
* &amp;lt;code&amp;gt;VCPKG_DEFAULT_TRIPLET=x64-windows&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;VCPKG_PLATFORM_TOOLSET=v142&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;VCPKG_TARGET_ARCHITECTURE=x64&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=How it Works=&lt;br /&gt;
The [https://github.com/Microsoft/vcpkg vcpkg] package manager gets the package information for packages it knows how to get from a folder named &amp;lt;code&amp;gt;ports&amp;lt;/code&amp;gt;&lt;br /&gt;
The package name is the name of a folder in &amp;lt;code&amp;gt;ports&amp;lt;/code&amp;gt;&lt;br /&gt;
That named folder will contain at least a &amp;lt;code&amp;gt;CONTROL&amp;lt;/code&amp;gt; file and a &amp;lt;code&amp;gt;portfile.cmake&amp;lt;/code&amp;gt;.&lt;br /&gt;
When you &amp;quot;install&amp;quot; a package, the compilation result will be written to a sub-folder named &amp;lt;code&amp;gt;packages&amp;lt;/code&amp;gt; with the name of the package, an underscore and the [https://github.com/microsoft/vcpkg/blob/master/docs/users/triplets.md triplet] (the two-field string).&lt;br /&gt;
&lt;br /&gt;
vcpkg uses [https://cmake.org CMake] as the primary build tool that can spawn other build tools to build your code.&lt;br /&gt;
&lt;br /&gt;
==Sample==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;vcpkg install wfc&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
vcpkg will then:&lt;br /&gt;
# Read a file named &amp;lt;code&amp;gt;ports/wfc/portfile.cmake&amp;lt;/code&amp;gt;&lt;br /&gt;
# Download the source code to a folder named &amp;lt;code&amp;gt;buildtrees/wfc/src&amp;lt;/code&amp;gt;&lt;br /&gt;
# It will then build the source code&lt;br /&gt;
# It will copy the compiled results from step 2 to a folder named &amp;lt;code&amp;gt;packages/wfc_x64-windows&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to delete an installed package:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;vcpkg remove wfc&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Adding a New Package=&lt;br /&gt;
&lt;br /&gt;
Make a folder in the &amp;lt;code&amp;gt;ports&amp;lt;/code&amp;gt; folder with the name of your new package (&amp;lt;code&amp;gt;wfc&amp;lt;/code&amp;gt;).&lt;br /&gt;
Go into that folder to do your work.&lt;br /&gt;
You must create two files, &amp;lt;code&amp;gt;CONTROL&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;portfile.cmake&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==CONTROL==&lt;br /&gt;
This file gives you a description of the package (aka library).&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Source: wfc&lt;br /&gt;
Version: 77&lt;br /&gt;
Description: Win32 Foundation Classes is a C++ library to help with Win32 programming.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==portfile.cmake==&lt;br /&gt;
This file is basically a build script, in yet another build-script language.&lt;br /&gt;
This one is in [https://cmake.org/ CMake].&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
include(vcpkg_common_functions)&lt;br /&gt;
&lt;br /&gt;
if (NOT VCPKG_TARGET_IS_WINDOWS)&lt;br /&gt;
    message(FATAL_ERROR &amp;quot;\n${PORT} does not support your system, only Windows for now. Please open a ticket issue on github.com/microsoft/vcpkg if necessary\n&amp;quot;)&lt;br /&gt;
endif()&lt;br /&gt;
&lt;br /&gt;
vcpkg_from_github(&lt;br /&gt;
    OUT_SOURCE_PATH SOURCE_PATH&lt;br /&gt;
    REPO SammyB428/WFC&lt;br /&gt;
    REF dd41bd5e3f2ed8daa9d87adde938b156317bc3b9&lt;br /&gt;
    SHA512 d02c7cde8cfed24db5ca52e46e15f866d1dcec3f42013d059ad60fc98bedeec3409b8dad768ad53918a4f152ee07442dcbe9234aa2e625daba4038f1ef24efc9&lt;br /&gt;
    HEAD_REF master&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
vcpkg_install_msbuild(&lt;br /&gt;
    SOURCE_PATH ${SOURCE_PATH}&lt;br /&gt;
    PROJECT_SUBPATH lib/WFC.sln&lt;br /&gt;
    INCLUDES_SUBPATH INCLUDE&lt;br /&gt;
    LICENSE_SUBPATH LICENSE&lt;br /&gt;
    REMOVE_ROOT_INCLUDES&lt;br /&gt;
    USE_VCPKG_INTEGRATION&lt;br /&gt;
    PLATFORM x64&lt;br /&gt;
    RELEASE_CONFIGURATION &amp;quot;STL Unicode Release&amp;quot;&lt;br /&gt;
    DEBUG_CONFIGURATION &amp;quot;STL Unicode Debug&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The really important fields are:&lt;br /&gt;
&lt;br /&gt;
===vcpkg_from_github===&lt;br /&gt;
This is a [https://cmake.org CMake] function defined in &amp;lt;code&amp;gt;vcpkg\scripts\cmake\vcpkg_from_github.cmake&amp;lt;/code&amp;gt; which will clone a [https://github.com/ GitHub] project so it can be built locally.&lt;br /&gt;
&lt;br /&gt;
====REPO====&lt;br /&gt;
This field holds the github repository name (&amp;lt;code&amp;gt;SammyB428/WFC&amp;lt;/code&amp;gt;) to retrieve.&lt;br /&gt;
&lt;br /&gt;
====REF====&lt;br /&gt;
This is either the release name of the repository to get '''OR''' the hash of the commit to retrieve.&lt;br /&gt;
In our example, we are retrieving a specific commit &amp;lt;code&amp;gt;dd41bd5e3f2ed8daa9d87adde938b156317bc3b9&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====SHA512====&lt;br /&gt;
This is the [https://en.wikipedia.org/wiki/SHA-2 SHA-512] of the [https://en.wikipedia.org/wiki/Zip_(file_format) ZIP] file downloaded from github.&lt;br /&gt;
&lt;br /&gt;
The get the correct [https://en.wikipedia.org/wiki/SHA-2 SHA-512] value for the &amp;lt;code&amp;gt;SHA512&amp;lt;/code&amp;gt; line, just set it to &amp;quot;1&amp;quot; then run:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;vcpkg install wfc&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will generate an error message with the desired hash in it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
C:\Users\Sam\Documents\vcpkg\vcpkg&amp;gt;vcpkg.exe install wfc&lt;br /&gt;
The following packages will be built and installed:&lt;br /&gt;
    wfc[core]:x86-windows&lt;br /&gt;
Starting package 1/1: wfc:x86-windows&lt;br /&gt;
Building package wfc[core]:x86-windows...&lt;br /&gt;
-- Using cached C:/Users/Sam/Documents/vcpkg/vcpkg/downloads/SammyB428-WFC-dd41bd5e3f2ed8daa9d87adde938b156317bc3b9.tar.gz&lt;br /&gt;
CMake Error at scripts/cmake/vcpkg_download_distfile.cmake:99 (message):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 File does not have expected hash:&lt;br /&gt;
&lt;br /&gt;
          File path: [ C:/Users/Sam/Documents/vcpkg/vcpkg/downloads/SammyB428-WFC-dd41bd5e3f2ed8daa9d87adde938b156317bc3b9.tar.gz ]&lt;br /&gt;
      Expected hash: [ 1 ]&lt;br /&gt;
        Actual hash: [ d02c7cde8cfed24db5ca52e46e15f866d1dcec3f42013d059ad60fc98bedeec3409b8dad768ad53918a4f152ee07442dcbe9234aa2e625daba4038f1ef24efc9 ]&lt;br /&gt;
&lt;br /&gt;
  Please delete the file and retry if this file should be downloaded again.&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the value from the &amp;lt;code&amp;gt;Actual hash:&amp;lt;/code&amp;gt; field of the error message to the &amp;lt;code&amp;gt;SHA512&amp;lt;/code&amp;gt; field.&lt;br /&gt;
&lt;br /&gt;
===vcpkg_install_msbuild===&lt;br /&gt;
This is a [https://cmake.org CMake] function defined in &amp;lt;code&amp;gt;vcpkg\scripts\cmake\vcpkg_install_msbuild.cmake&amp;lt;/code&amp;gt; which will build then install an [https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild?view=vs-2019 MSBuild]-based project.&lt;br /&gt;
&lt;br /&gt;
====PROJECT_SUBPATH====&lt;br /&gt;
The relative path from the root of the unzipped file where your solution file resides.&lt;br /&gt;
&lt;br /&gt;
====PLATFORM====&lt;br /&gt;
The platform identifier that matches the platform identifier in your vcxproj file.&lt;br /&gt;
&lt;br /&gt;
====RELEASE_CONFIGURATION====&lt;br /&gt;
The name of the configuration in your vcxproj file that will produce the &amp;quot;Release&amp;quot; build.&lt;br /&gt;
&lt;br /&gt;
====DEBUG_CONFIGURATION====&lt;br /&gt;
The name of the configuration in your vcxproj file that will produce the &amp;quot;Debug&amp;quot; build.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Developer%27s_Guide&amp;diff=448</id>
		<title>Developer's Guide</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Developer%27s_Guide&amp;diff=448"/>
		<updated>2020-05-18T20:41:16Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Code Dependencies */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Truxton Developer's Guide=&lt;br /&gt;
&lt;br /&gt;
[[How to Write an ETL]]&lt;br /&gt;
&lt;br /&gt;
=Truxton Stuff=&lt;br /&gt;
&lt;br /&gt;
* [[How Truxton Works]]&lt;br /&gt;
* [[Truxton SDK]]&lt;br /&gt;
* [[Message Bus Drivers]]&lt;br /&gt;
* [[Connie]] - The Message Bus Concentrator&lt;br /&gt;
* [[Azure]]&lt;br /&gt;
* [[Debugging the Loader]]&lt;br /&gt;
* [[Add A New File Type]]&lt;br /&gt;
* [[Depot]] file format&lt;br /&gt;
* [[Load List]] file format&lt;br /&gt;
* [[Next Generation Database]]&lt;br /&gt;
* [[File Type Identification]]&lt;br /&gt;
* [[Database Schema]]&lt;br /&gt;
* [[VC Redistributables]]&lt;br /&gt;
* [[Configuration System]]&lt;br /&gt;
* [[Useful SQL Queries]]&lt;br /&gt;
* [[Temporary Filenames]]&lt;br /&gt;
* [[Watch Desktop Logs]]&lt;br /&gt;
* [[TruxtonService.xml]]&lt;br /&gt;
* [[ETL Stages]]&lt;br /&gt;
* [[Message Bus Messages]]&lt;br /&gt;
* [[How To Debug LE ETLs]]&lt;br /&gt;
* [[Installed Libraries]]&lt;br /&gt;
&lt;br /&gt;
=Data Types=&lt;br /&gt;
Truxton uses lots of defined constants and enums.&lt;br /&gt;
Here's a list of them.&lt;br /&gt;
&lt;br /&gt;
* [[Content Status]]&lt;br /&gt;
* [[DATA TYPE|Data Types]]&lt;br /&gt;
* [[Depot Types]]&lt;br /&gt;
* [[Entity Types]]&lt;br /&gt;
* [[Origin|File Content Origins]]&lt;br /&gt;
* [[Media Types]]&lt;br /&gt;
* [[Media Status]]&lt;br /&gt;
* [[Media Load Percentage]]&lt;br /&gt;
&lt;br /&gt;
=Exploitation=&lt;br /&gt;
* [[File Format Research]]&lt;br /&gt;
* [[SQLite Queries]]&lt;br /&gt;
* [[Time Epochs]]&lt;br /&gt;
&lt;br /&gt;
=Code Dependencies=&lt;br /&gt;
* [[vcpkg]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Temporary_Filenames&amp;diff=447</id>
		<title>Temporary Filenames</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Temporary_Filenames&amp;diff=447"/>
		<updated>2020-05-18T20:39:44Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Truxton follows a pattern when it has to create temporary files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! First Three Letters&lt;br /&gt;
! ETL&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | CTS&lt;br /&gt;
| ContactSheet&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | RGR&lt;br /&gt;
| Regripper&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Temporary_Filenames&amp;diff=446</id>
		<title>Temporary Filenames</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Temporary_Filenames&amp;diff=446"/>
		<updated>2020-05-18T20:39:01Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;Truxton follows a pattern when it has to create temporary files.   {| class=&amp;quot;wikitable&amp;quot; |- ! First Three Letters ! Author |- | style=&amp;quot;text-align:center;&amp;quot; | CTS | [https://gith...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Truxton follows a pattern when it has to create temporary files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! First Three Letters&lt;br /&gt;
! Author&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | CTS&lt;br /&gt;
| [https://github.com/Probity/Truxton/blob/master/ETL/ContactSheet/ContactSheet.cs#L553 ContactSheet]&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | RGR&lt;br /&gt;
| [https://github.com/Probity/Truxton/blob/master/ETL/RegRipper/Program.cs#L327 Regripper ]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=TruxtonService.xml&amp;diff=445</id>
		<title>TruxtonService.xml</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=TruxtonService.xml&amp;diff=445"/>
		<updated>2020-05-18T20:38:24Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;This file contains the information for turning a machine into a Truxton Exploitation node.  =Truxton Service= Checks once per minute to see if ETLs and Services are running.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This file contains the information for turning a machine into a Truxton Exploitation node.&lt;br /&gt;
&lt;br /&gt;
=Truxton Service=&lt;br /&gt;
Checks once per minute to see if ETLs and Services are running.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=VC_Redistributables&amp;diff=444</id>
		<title>VC Redistributables</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=VC_Redistributables&amp;diff=444"/>
		<updated>2020-05-18T20:37:29Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;Microsoft will periodically screw you by changing the contents of the DLLs that implement the C/C++ runtime. Typically, they will add a new critical DLL to the package. Since...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Microsoft will periodically screw you by changing the contents of the DLLs that implement the C/C++ runtime.&lt;br /&gt;
Typically, they will add a new critical DLL to the package.&lt;br /&gt;
Since we compile with the latest Visual Studio, we '''must''' update the installer to include the '''very latest''' C/C++ runtime installer.&lt;br /&gt;
* This [https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads page] contains the links to the different packages.&lt;br /&gt;
* This [https://aka.ms/vs/16/release/vc_redist.x64.exe link] should download the latest C/C++ installer.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=ETL_Stages&amp;diff=443</id>
		<title>ETL Stages</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=ETL_Stages&amp;diff=443"/>
		<updated>2020-05-18T20:35:59Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;=Explanation= ETL Stages are key to solving the problem of process coordination. The Truxton exploitation process was broken down into a series of steps. These steps are perfo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Explanation=&lt;br /&gt;
ETL Stages are key to solving the problem of process coordination.&lt;br /&gt;
The Truxton exploitation process was broken down into a series of steps.&lt;br /&gt;
These steps are performed in a stage.&lt;br /&gt;
When the stages are complete, Truxton is finished processing that media.&lt;br /&gt;
&lt;br /&gt;
By associating a stage number (1-255) to an exploitation process, Truxton can manage the transition from chaotic to ordered processing.&lt;br /&gt;
&lt;br /&gt;
==ETL Communications==&lt;br /&gt;
The ETL processes communicate using a [[Message Bus Messages|message bus]].&lt;br /&gt;
The messages contain information about a file needing processing and how to get the file contents.&lt;br /&gt;
 &lt;br /&gt;
==Simple Exploitation Walk Through==&lt;br /&gt;
The first stage is Load. It performs the following tasks:&lt;br /&gt;
# Navigate the source media (disk image, folder or file)&lt;br /&gt;
# Puts contents into [[Depot|depot]] files&lt;br /&gt;
# Puts meta data into the database&lt;br /&gt;
# Identifies the file's contents&lt;br /&gt;
# Based on the [[File Types Supported|file's type]], the file is routed to the ETL process by putting a message into that ETL's message queue.&lt;br /&gt;
The ETL process will:&lt;br /&gt;
# Wait until a message arrives for it to process&lt;br /&gt;
# Retrieve the contents of the file referenced in the message&lt;br /&gt;
# Report status to the Load Status Monitor (Les)&lt;br /&gt;
# Exploit those contents to produce more files, or entities, or messages, etc.&lt;br /&gt;
# Files produced by one ETL can be sent to another&lt;br /&gt;
When all ETLs have finished, the load is complete.&lt;br /&gt;
&lt;br /&gt;
=Stages and Status Monitoring=&lt;br /&gt;
In order to process all of the data, we must begin with utter chaos and transition to a ordered steps that must be completed linearly.&lt;br /&gt;
Some ETLs can thrive in the chaos, some cannot and some live in both worlds.&lt;br /&gt;
There are ranges of stage values for an ETL.&lt;br /&gt;
The rule is, if two ETL processes have the same stage value, they can operate in parallel.&lt;br /&gt;
If one ETL has a higher stage value than another, it will execute '''after''' that other ETL.&lt;br /&gt;
This is ignored in the Chaos region, becomes relevant in the Semi-Chaotic region and becomes law in the Linear.&lt;br /&gt;
&lt;br /&gt;
It is the job of the Load Status Monitor (Les) to watch all of the ETLs and advance the media through the stages of exploitation.&lt;br /&gt;
&lt;br /&gt;
==Chaos==&lt;br /&gt;
The chaotic stages are where files are produced and/or atomically exploited.&lt;br /&gt;
If a file is stand-alone, not requiring any other files to exploit it, it is considered to be &amp;quot;atomic.&amp;quot;&lt;br /&gt;
This is the easiest ETL to write.&lt;br /&gt;
&lt;br /&gt;
One example of a chaotic file is a [[Type_ZIP|zip]] file.&lt;br /&gt;
An ETL process that unzips the file to produce child files is atomic in that all it needs to do its job is the contents of that one zip file.&lt;br /&gt;
ETL processes run in a parallel and operate on different media simultaneously (participate in different &amp;quot;loads&amp;quot;).&lt;br /&gt;
Chaotic stages produce files in random order.&lt;br /&gt;
&lt;br /&gt;
These stages can be thought of as executing in non-linear time.&lt;br /&gt;
Child files can be processed before their parents.&lt;br /&gt;
Files are processed in random order.&lt;br /&gt;
&lt;br /&gt;
==Semi-Chaotic==&lt;br /&gt;
When the chaotic ETLs have finished producing files for a piece of media, the next stage of exploitation can begin.&lt;br /&gt;
Semi-chaotic ETLs produce files but in a more orderly fashion and after the chaos is finished.&lt;br /&gt;
When they produce files, everything falls down again into utter chaos.&lt;br /&gt;
&lt;br /&gt;
The exploitation process enters this loop between Chaos and Semi-Chaotic until no Semi-Chaotic ETL produces any files, then the linear processing can take place.&lt;br /&gt;
&lt;br /&gt;
One example of a semi-chaotic file is a [[Type_Spanned_Zip|spanned zip]] file.&lt;br /&gt;
This is a zip archive that spans several files.&lt;br /&gt;
It cannot reliably be exploited in the Chaotic stages because all of the files in the archive might not yet exist in Truxton.&lt;br /&gt;
By waiting until the chaos has subsided, we know that all of the files in the span will be present.&lt;br /&gt;
Truxton will notify the Poly File Expander when the chaos is complete.&lt;br /&gt;
Poly will then:&lt;br /&gt;
# Search the current media for any files known to be part of a type that requires more than one file to exploit&lt;br /&gt;
# It will then exploit that file during which, the other files can be queried for&lt;br /&gt;
# It produces child files which cause the chaos stage to reignite&lt;br /&gt;
&lt;br /&gt;
For the spanned zip, Poly will find all pieces of the span, combine them together then expand the archive.&lt;br /&gt;
Since Poly will restart the chaos, it keeps track of which files it has processed.&lt;br /&gt;
When it is again told to process a piece of media, it can ignore files it has already processed.&lt;br /&gt;
&lt;br /&gt;
Semi-chaotic ETLs operate in non-linear time but after chaos.&lt;br /&gt;
Once they are complete, processing enters the linear stage.&lt;br /&gt;
&lt;br /&gt;
===Note: Stage Value Behavior===&lt;br /&gt;
Stitching (fragmented file carving) is another semi-chaotic ETL.&lt;br /&gt;
Poly is stage 32 while Stitch is stage 40.&lt;br /&gt;
This means that Stitch will not start until Poly is completely finished.&lt;br /&gt;
If Stitch was stage 32, it would be told to execute at the same time as Poly.&lt;br /&gt;
&lt;br /&gt;
==Linear==&lt;br /&gt;
Linear stages are where some sort of sanity is brought to the process.&lt;br /&gt;
ETLs in this stage execute one after another.&lt;br /&gt;
For example, Alerts (stage 128) is executed before Reports (stage 160) because any alerts that were generated need to be included in reports.&lt;br /&gt;
&lt;br /&gt;
==Untracked==&lt;br /&gt;
There is a class of ETLs that operate in a fashion that does not affect the status of media being processed.&lt;br /&gt;
Some examples include:&lt;br /&gt;
* Forensic Logging - log messages are sent to various destination such as [https://docs.microsoft.com/en-us/azure/azure-monitor/log-query/get-started-portal Azure Log Analytics]&lt;br /&gt;
* SendGrid Notifier - When a load completes, the Media Summary report is emailed to a distribution list&lt;br /&gt;
&lt;br /&gt;
=Stage Ranges=&lt;br /&gt;
Here are the values for all of the stages;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Value (Inclusive)&lt;br /&gt;
! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| DoNotTrack&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 255&lt;br /&gt;
| This ETL should not be considered when determining the status of media&lt;br /&gt;
|-&lt;br /&gt;
| Load/Expand&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 1-31&lt;br /&gt;
| [[#Chaos | Chaos]]. ETLs in this stage range can produce files and artifacts in random order.&lt;br /&gt;
|-&lt;br /&gt;
| Poly File Expansion&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 32-63&lt;br /&gt;
| [[#Semi-Chaotic | Semi-Chaotic]]. ETLs in this stage range can produce files and artifacts in random order but only after previous stage ranges have completed.&lt;br /&gt;
|-&lt;br /&gt;
| Summarizing&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 64-96&lt;br /&gt;
| All files and artifacts (entities) have been produced. ETLs in this range query the data to produce summaries such as unique lists of artifacts.&lt;br /&gt;
|-&lt;br /&gt;
| Alerting&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 128-159&lt;br /&gt;
| ETLs in this range query the data to alerts any analysts may have wanted.&lt;br /&gt;
|-&lt;br /&gt;
| Reporting&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 160-191&lt;br /&gt;
| ETLs in this range query the data produced by any previous stage and create reports from it.&lt;br /&gt;
|-&lt;br /&gt;
| Feeding&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 192-223&lt;br /&gt;
| ETLs in this range query the data produced by any previous stage and feed it to external systems.&lt;br /&gt;
|-&lt;br /&gt;
| Finished&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 240-254&lt;br /&gt;
| ETLs perform any final tasks needed to make the media ready for the analyst. No further processing will take place.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=ETLs and Their Stages=&lt;br /&gt;
Here's a list of ETLs, their stages and message bus queue names.&lt;br /&gt;
Remember, stage 255 means &amp;quot;do not track.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! ETL&lt;br /&gt;
! Executable&lt;br /&gt;
! Stage&lt;br /&gt;
! Percent&lt;br /&gt;
! Queue Name&lt;br /&gt;
|-&lt;br /&gt;
| DOCFILE&lt;br /&gt;
| &amp;lt;code&amp;gt;DOCFILE.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48%&lt;br /&gt;
| docfile&lt;br /&gt;
|-&lt;br /&gt;
| Load&lt;br /&gt;
| &amp;lt;code&amp;gt;Load.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 1&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48%&lt;br /&gt;
| loadq&lt;br /&gt;
|-&lt;br /&gt;
| RegRipper&lt;br /&gt;
| &amp;lt;code&amp;gt;RegRipper.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48%&lt;br /&gt;
| regripper&lt;br /&gt;
|-&lt;br /&gt;
| Report&lt;br /&gt;
| &amp;lt;code&amp;gt;Report.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 160&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 80% &lt;br /&gt;
| report&lt;br /&gt;
|-&lt;br /&gt;
| Truxton Alert Generator&lt;br /&gt;
| &amp;lt;code&amp;gt;Alert.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 128&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 75% &lt;br /&gt;
| alert&lt;br /&gt;
|-&lt;br /&gt;
| Truxton Archive Expander&lt;br /&gt;
| &amp;lt;code&amp;gt;Archives.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48%&lt;br /&gt;
| archives&lt;br /&gt;
|-&lt;br /&gt;
| Truxton Azure Image Analyzer&lt;br /&gt;
| &amp;lt;code&amp;gt;Azure.AnalyzeImage.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48%&lt;br /&gt;
| azureanalyzeimage&lt;br /&gt;
|-&lt;br /&gt;
| Truxton Azure OCR&lt;br /&gt;
| &amp;lt;code&amp;gt;Azure.OCR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48%&lt;br /&gt;
| azureocr&lt;br /&gt;
|-&lt;br /&gt;
| Truxton Carve&lt;br /&gt;
| &amp;lt;code&amp;gt;Carve.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 4&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48%&lt;br /&gt;
| carve&lt;br /&gt;
|-&lt;br /&gt;
| Truxton Contact Sheet Creator&lt;br /&gt;
| &amp;lt;code&amp;gt;ContactSheet.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 6&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48%&lt;br /&gt;
| contactsheet&lt;br /&gt;
|-&lt;br /&gt;
| Truxton Email&lt;br /&gt;
| &amp;lt;code&amp;gt;EMail.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 12&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48%&lt;br /&gt;
| email&lt;br /&gt;
|-&lt;br /&gt;
| Truxton Expand&lt;br /&gt;
| &amp;lt;code&amp;gt;Expand.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48%&lt;br /&gt;
| expand&lt;br /&gt;
|-&lt;br /&gt;
| Truxton File Stitcher&lt;br /&gt;
| &amp;lt;code&amp;gt;Stitch.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 40&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 62% &lt;br /&gt;
| stitch&lt;br /&gt;
|-&lt;br /&gt;
| Truxton Finished Loads Monitor&lt;br /&gt;
| &amp;lt;code&amp;gt;Finished.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 240&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 94-100%&lt;br /&gt;
| finishedstage&lt;br /&gt;
|-&lt;br /&gt;
| Truxton Forensic Finding Logger&lt;br /&gt;
| &amp;lt;code&amp;gt;ForensicLogger.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 255&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| flogger&lt;br /&gt;
|-&lt;br /&gt;
| Truxton Identify&lt;br /&gt;
| &amp;lt;code&amp;gt;Identify.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 2&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48%&lt;br /&gt;
| identify&lt;br /&gt;
|-&lt;br /&gt;
| Truxton Poly File Coordinator&lt;br /&gt;
| &amp;lt;code&amp;gt;Poly.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 32&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 60%&lt;br /&gt;
| poly&lt;br /&gt;
|-&lt;br /&gt;
| Truxton Registry Expander&lt;br /&gt;
| &amp;lt;code&amp;gt;Registry.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 9&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48%&lt;br /&gt;
| registry&lt;br /&gt;
|-&lt;br /&gt;
| Truxton Remote Expand&lt;br /&gt;
| &amp;lt;code&amp;gt;RemoteFileExpander.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 3&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48%&lt;br /&gt;
| remoteexpand&lt;br /&gt;
|-&lt;br /&gt;
| Truxton SOLR Contents Indexer&lt;br /&gt;
| &amp;lt;code&amp;gt;SOLR.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 192&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 90% &lt;br /&gt;
| solrcontentstage&lt;br /&gt;
|-&lt;br /&gt;
| Truxton SOLR File Indexer&lt;br /&gt;
| &amp;lt;code&amp;gt;SOLRFile.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 255&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | N/A&lt;br /&gt;
| solrfile&lt;br /&gt;
|-&lt;br /&gt;
| Truxton Thumbnail Generator&lt;br /&gt;
| &amp;lt;code&amp;gt;Thumbnail.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 8&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48%&lt;br /&gt;
| thumbnail&lt;br /&gt;
|-&lt;br /&gt;
| Truxton Yara Scanner&lt;br /&gt;
| &amp;lt;code&amp;gt;Yara.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 7&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48%&lt;br /&gt;
| yara&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Time_Epochs&amp;diff=442</id>
		<title>Time Epochs</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Time_Epochs&amp;diff=442"/>
		<updated>2020-05-18T20:35:12Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;Here's some of the time formats that Truxton can handle.  =Apple Cocoa Core= [https://www.epochconverter.com/coredata Cocoa Core] is the number of seconds (32-bit value) since...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here's some of the time formats that Truxton can handle.&lt;br /&gt;
&lt;br /&gt;
=Apple Cocoa Core=&lt;br /&gt;
[https://www.epochconverter.com/coredata Cocoa Core] is the number of seconds (32-bit value) since Jan 1, 2001.&lt;br /&gt;
The 64-bit version is the number of nanoseconds since 2001-01-01.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Type_Google_Hangout_Database&amp;diff=441</id>
		<title>Type Google Hangout Database</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Type_Google_Hangout_Database&amp;diff=441"/>
		<updated>2020-05-18T20:34:20Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{| style=&amp;quot;float:right;border:1px solid black&amp;quot; |+ Details | Defined Constant  | &amp;lt;code&amp;gt;Type_Google_Hangout_Database&amp;lt;/code&amp;gt; |- | File Type Value  | 898 |- | Parent Type | Type_...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right;border:1px solid black&amp;quot;&lt;br /&gt;
|+ Details&lt;br /&gt;
| Defined Constant &lt;br /&gt;
| &amp;lt;code&amp;gt;Type_Google_Hangout_Database&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Type Value &lt;br /&gt;
| 898&lt;br /&gt;
|-&lt;br /&gt;
| Parent Type&lt;br /&gt;
| [[Type_SQLite_Database|SQLite]]&lt;br /&gt;
|-&lt;br /&gt;
| Expandable&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| Carve&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| Format Details&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| MIME Type&lt;br /&gt;
| &amp;lt;code&amp;gt;application/x-sqlite3&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Filename Extension&lt;br /&gt;
| &amp;lt;code&amp;gt;db&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Google Hangouts uses SQLite as a data storage format.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
Other sources of information:&lt;br /&gt;
* [https://github.com/bkerler/MR/blob/e27e5034265b4a2644cca013ea8c6677222a07f7/MobileRevelator/templates/Android%20-%20TomTom/com.google.android.talk.xml Mobile Revelator]&lt;br /&gt;
&lt;br /&gt;
Filenames seen:&lt;br /&gt;
* &amp;lt;code&amp;gt;babel1.db&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Queries=&lt;br /&gt;
Here are the queries Truxton uses to exploit Google Hangout.&lt;br /&gt;
&lt;br /&gt;
==Gather the Chat Participants==&lt;br /&gt;
This query gathers the details for the participants in all messages.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT DISTINCT [conversation_id], [author_chat_id], [participants].[full_name]&lt;br /&gt;
FROM [messages]&lt;br /&gt;
JOIN [participants] ON ([participants].[chat_id] = [messages].[author_chat_id])&lt;br /&gt;
WHERE [author_chat_id] IS NOT NULL&lt;br /&gt;
ORDER BY [conversation_id], [author_chat_id];&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Gather Messages==&lt;br /&gt;
This query gathers the messages sorted by conversation and time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT [messages].[_id], &lt;br /&gt;
[messages].[message_id], &lt;br /&gt;
[messages].[conversation_id], &lt;br /&gt;
[messages].[author_chat_id], &lt;br /&gt;
[participants].[full_name], &lt;br /&gt;
[messages].[text], &lt;br /&gt;
[messages].[timestamp], &lt;br /&gt;
[messages].[latitude], &lt;br /&gt;
[messages].[longitude] &lt;br /&gt;
FROM [messages] &lt;br /&gt;
JOIN [participants] ON ([participants].[chat_id] = [messages].[author_chat_id]) &lt;br /&gt;
ORDER BY [conversation_id],[timestamp]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Gather Contacts==&lt;br /&gt;
This query gathers the contact list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT [merged_contacts].[_id], &lt;br /&gt;
[merged_contacts].[contact_id], &lt;br /&gt;
[merged_contacts].[display_name], &lt;br /&gt;
[merged_contact_details].[lookup_data_standardized], &lt;br /&gt;
[merged_contact_details].[lookup_data_label] &lt;br /&gt;
FROM [merged_contacts] &lt;br /&gt;
JOIN [merged_contact_details] ON ([merged_contact_details].[merged_contact_id] = [merged_contacts].[_id]) &lt;br /&gt;
ORDER BY [merged_contacts].[contact_id]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=SQLite_Queries&amp;diff=440</id>
		<title>SQLite Queries</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=SQLite_Queries&amp;diff=440"/>
		<updated>2020-05-18T20:33:45Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;Many man applications use SQLite to store important application information. This page lists the different queries Truxton uses to exploit them.  * Type_Google_Hangout_Datab...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many man applications use SQLite to store important application information.&lt;br /&gt;
This page lists the different queries Truxton uses to exploit them.&lt;br /&gt;
&lt;br /&gt;
* [[Type_Google_Hangout_Database|Google Hangout]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=File_Format_Research&amp;diff=439</id>
		<title>File Format Research</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=File_Format_Research&amp;diff=439"/>
		<updated>2020-05-18T20:32:47Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;When trying to figure out the type of a file... Here's some useful sites  * [https://www.google.com/?tbm=pts Google Patent Search] * [https://github.com/zsx/ossbuild/blob/a510...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When trying to figure out the type of a file...&lt;br /&gt;
Here's some useful sites&lt;br /&gt;
&lt;br /&gt;
* [https://www.google.com/?tbm=pts Google Patent Search]&lt;br /&gt;
* [https://github.com/zsx/ossbuild/blob/a510b4fb1b15922c14dd6311a24f139b8a790699/Main/GStreamer/Source/gst-plugins-good/gst/qtdemux/qtdemux.c Great list of FourCCs]&lt;br /&gt;
&lt;br /&gt;
See if there's existing code:&lt;br /&gt;
&lt;br /&gt;
* [https://github.com/ Github] - Good place to search for &amp;quot;magic&amp;quot; values. Usually four bytes, search for the decimal and hexadecimal values both big and little endian.&lt;br /&gt;
&lt;br /&gt;
Existing file format description:&lt;br /&gt;
* [https://www.loc.gov/preservation/digital/formats/fdd/descriptions.shtml Library of Congress]&lt;br /&gt;
* [https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-winprotlp/92b33e19-6fff-496b-86c3-d168206f9845 Microsoft Protocols]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Media_Load_Percentage&amp;diff=438</id>
		<title>Media Load Percentage</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Media_Load_Percentage&amp;diff=438"/>
		<updated>2020-05-18T20:31:23Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;When media loads, we attempt to communicate an estimate of where in the process it is. We map this to a percentage but it is pretty horrible.  {| class=&amp;quot;wikitable&amp;quot; ! Percentag...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When media loads, we attempt to communicate an estimate of where in the process it is.&lt;br /&gt;
We map this to a percentage but it is pretty horrible.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Percentage&lt;br /&gt;
! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | &amp;lt;48%&lt;br /&gt;
| &amp;lt;code&amp;gt;Load.exe&amp;lt;/code&amp;gt; is currently processing the media.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48%&lt;br /&gt;
| &amp;lt;code&amp;gt;Load.exe&amp;lt;/code&amp;gt; has completed and only ETLs are now working.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 60% - 69%&lt;br /&gt;
| Poly files are being expanded in the ETL layer.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 70% - 74%&lt;br /&gt;
| Summarizing ETLs are now executing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 75% - 79%&lt;br /&gt;
| Alerting ETLs are now executing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 80% - 89%&lt;br /&gt;
| Reporting ETLs (report generators) are now executing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 90% - 93%&lt;br /&gt;
| Feeding ETLs are now executing.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 94%&lt;br /&gt;
| &amp;lt;code&amp;gt;Finished.exe&amp;lt;/code&amp;gt; is refreshing database materialized views.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 95%&lt;br /&gt;
| &amp;lt;code&amp;gt;Finished.exe&amp;lt;/code&amp;gt; is updating the &amp;lt;code&amp;gt;NumberOfChildren&amp;lt;/code&amp;gt; column for each record in the &amp;lt;code&amp;gt;File&amp;lt;/code&amp;gt; table for this media.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 96%&lt;br /&gt;
| &amp;lt;code&amp;gt;Finished.exe&amp;lt;/code&amp;gt; is calculating the full path and updating the &amp;lt;code&amp;gt;FullPathID&amp;lt;/code&amp;gt; column for each record in the &amp;lt;code&amp;gt;File&amp;lt;/code&amp;gt; table for this media.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 97%&lt;br /&gt;
| &amp;lt;code&amp;gt;Finished.exe&amp;lt;/code&amp;gt; is updating the &amp;lt;code&amp;gt;Statistics&amp;lt;/code&amp;gt; table for this media.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 98%&lt;br /&gt;
| &amp;lt;code&amp;gt;Finished.exe&amp;lt;/code&amp;gt; is generating the loader log file for this media.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 99%&lt;br /&gt;
| &amp;lt;code&amp;gt;Finished.exe&amp;lt;/code&amp;gt; is caching file counts.&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 100%&lt;br /&gt;
| Everything is done.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=Load Percentages Less Than 48%=&lt;br /&gt;
&amp;lt;code&amp;gt;Load Percentage = (Number of Bytes Processed / Size of the Media) * .48&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The formula for this calculation is 100% of the size of the media divided by the number of bytes processed scaled to 48%. You may see percentages well below 48% when &amp;lt;code&amp;gt;Load.exe&amp;lt;/code&amp;gt; has skipped free space. If you load a 100GB image, &amp;lt;code&amp;gt;Load.exe&amp;lt;/code&amp;gt; will use divide the number of bytes processed by 100GB to determine the percent complete of the media. It will then multiply that percentage by .48 to scale it to a number between 1 and 48. If the 100GB image only contains 25GB of files and no freespace (75GB) is processed, you will see a media load percentage of 12% when &amp;lt;code&amp;gt;Load.exe&amp;lt;/code&amp;gt; exits.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;12 = ((25/100) * .48)&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Media_Status&amp;diff=437</id>
		<title>Media Status</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Media_Status&amp;diff=437"/>
		<updated>2020-05-18T20:31:00Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;These defined constants represent the states of media in Truxton.  {| class=&amp;quot;wikitable&amp;quot; ! Name ! Value ! Meaning |- | &amp;lt;code&amp;gt;MEDIA_STATUS_UNKNOWN&amp;lt;/code&amp;gt; | style=&amp;quot;text-align:cen...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These defined constants represent the states of media in Truxton.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Value&lt;br /&gt;
! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_UNKNOWN&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0&lt;br /&gt;
| We don't know what the status of the media is.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_NOT_YET_IMAGED&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 100&lt;br /&gt;
| A forensically sound copy of the media has not yet been made.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_BEING_IMAGED&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 101&lt;br /&gt;
| The media is currently in the process of being forensically imaged.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_IMAGED&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 102&lt;br /&gt;
| A forensically sound copy of the media has been made.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_READY_FOR_LOADING&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 150&lt;br /&gt;
| The media is ready to be loaded.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_QUEUED_FOR_LOADING&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 160&lt;br /&gt;
| The media has been queued for loading.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_LOADING&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 200&lt;br /&gt;
| The media is being processed by &amp;lt;code&amp;gt;Load.exe&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_PAUSED&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 203&lt;br /&gt;
| Processing of the media has been paused.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_NOW_IN_ETL_LAYER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 205&lt;br /&gt;
| &amp;lt;code&amp;gt;Load.exe&amp;lt;/code&amp;gt; has finished but the ETL layer is still processing.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_COUNTING_CHILDREN&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 220&lt;br /&gt;
| Counting the number of children of each file processed and storing that in the database.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_RESOLVING_PATHS&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 221&lt;br /&gt;
| Constructing the full path string of each file processes and storing that in the database.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_PROCESSING_ALERTS&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 223&lt;br /&gt;
| Generating any alerts from data in the media.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_FINISHING&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 225&lt;br /&gt;
| Performing housekeeping chores such as saving load statistics.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_LOADED&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 230&lt;br /&gt;
| The media has been loaded.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_EXPIRED&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 240&lt;br /&gt;
| The expiration date of the media has been reached.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_PURGING&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 245&lt;br /&gt;
| The media is in the process of being deleted due to expiration date.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_STATUS_PURGED&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 249&lt;br /&gt;
| The media was deleted because the expiration date had been passed.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Media_Types&amp;diff=436</id>
		<title>Media Types</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Media_Types&amp;diff=436"/>
		<updated>2020-05-18T20:30:44Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;When Truxton stores media, you can assign a type of media to it. This allows the analyst to get more of a clue as to what they are looking at. This is stored in the &amp;lt;code&amp;gt;[Med...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When Truxton stores media, you can assign a type of media to it.&lt;br /&gt;
This allows the analyst to get more of a clue as to what they are looking at.&lt;br /&gt;
This is stored in the &amp;lt;code&amp;gt;[MediaTypeID]&amp;lt;/code&amp;gt; column of the &amp;lt;code&amp;gt;[Media]&amp;lt;/code&amp;gt; table in the database.&lt;br /&gt;
The &amp;lt;code&amp;gt;[MediaType]&amp;lt;/code&amp;gt; reference table in the database also contains this information.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Value&lt;br /&gt;
! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_UNKNOWN&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0&lt;br /&gt;
| We don't know what type of media this is.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_LOGICAL_FILES&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 1&lt;br /&gt;
| A folder on the loader machine.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_PHYSICAL_HARD_DISK&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 2&lt;br /&gt;
| The media is a physical hard drive connected, hopefully through a write-blocker, to the loader machine processed as a bag of sectors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_HARD_DISK_IMAGE&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 3&lt;br /&gt;
| A forensic copy of a hard disk in a file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_HARD_DISK_FOLDER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 4&lt;br /&gt;
| A hard drive as a folder. Mounting a hard disk image is an example. Truxton relied on the host operating system to interpret the file system on the media.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_PHYSICAL_CD&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 5&lt;br /&gt;
| A compact disc attached to the loader machine processed as a bag of sectors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_CD_IMAGE&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 6&lt;br /&gt;
| A forensic copy of a compact disc in a file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_CD_FOLDER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 7&lt;br /&gt;
| A compact disc mounted as a folder on the loader machine. Truxton relied on the host operating system to interpret the file system on the media.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_PHYSICAL_DVD&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 8&lt;br /&gt;
| A DVD attached to the loader machine processed as a bag of sectors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_DVD_IMAGE&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 9&lt;br /&gt;
| A forensic copy of a DVD in a file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_DVD_FOLDER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 10&lt;br /&gt;
| A DVD mounted as a folder on the loader machine. Truxton relied on the host operating system to interpret the file system on the media.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_PHYSICAL_BLURAY&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 11&lt;br /&gt;
| A BluRay attached to the loader machine processed as a bag of sectors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_BLURAY_IMAGE&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 12&lt;br /&gt;
| A forensic copy of a BluRay disc in a file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_BLURAY_FOLDER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 13&lt;br /&gt;
| A folder on a BluRay physically attached to the loader machine. Truxton relied on the host operating system to interpret the file system on the media.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_PHYSICAL_THUMB_DRIVE&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 14&lt;br /&gt;
| A thumb drive attached to the loader machine processed as a bag of sectors.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_THUMB_DRIVE_IMAGE&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 15&lt;br /&gt;
| A forensic copy of a thumb drive in a file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_THUMB_DRIVE_FOLDER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 16&lt;br /&gt;
| A thumb drive mounted as a folder on the loader machine. Truxton relied on the host operating system to interpret the file system on the media.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_PHYSICAL_SIM_CARD&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 17&lt;br /&gt;
| A SIM card attached to the loader machine.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_SIM_CARD_IMAGE&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 18&lt;br /&gt;
| A forensic copy of a SIM card in a file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_SIM_CARD_FOLDER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 19&lt;br /&gt;
| A SIM card mounted as a folder on the loader machine. Truxton relied on the host operating system to interpret the file system on the media.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_PHYSICAL_SD_CARD&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 20&lt;br /&gt;
| An SD card attached to the loader machine.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_SD_CARD_IMAGE&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 21&lt;br /&gt;
| A forensic copy of an SD card in a file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_SD_CARD_FOLDER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 22&lt;br /&gt;
| An SD card mounted as a folder on the loader machine. Truxton relied on the host operating system to interpret the file system on the media.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_RAM&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 23&lt;br /&gt;
| A dump of memory.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_FLOPPY_DISK_IMAGE&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 24&lt;br /&gt;
| A forensic copy of a [https://en.wikipedia.org/wiki/Floppy_disk floppy diskette].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_FLASH&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 25&lt;br /&gt;
| A dump of flash memory chips.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_GPS&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 26&lt;br /&gt;
| A dump of a GPS device.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_TAR&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 27&lt;br /&gt;
| A [https://en.wikipedia.org/wiki/Tar_(computing) TAR] file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_RAR&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 28&lt;br /&gt;
| A [https://en.wikipedia.org/wiki/RAR_(file_format) RAR] file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_ZIP&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 29&lt;br /&gt;
| A [https://en.wikipedia.org/wiki/Zip_(file_format) ZIP] file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_FORENSIC_DATA&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 30&lt;br /&gt;
| Data pulled from evidence by forensic technicians.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_ASSOCIATED_DATA&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 31&lt;br /&gt;
| Data relevant to the case but doesn't come from seized media such as photos of the media, crime scene, etc.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_PHONE&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 32&lt;br /&gt;
| A dump of a phone.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_TABLET&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 33&lt;br /&gt;
| A dump of a tablet.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_PHYSICAL_ITEMS&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 34&lt;br /&gt;
| Non-digital evidence collected from the crime scene such as pieces of paper, writing on a wall, etc.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;MEDIA_TYPE_ABORT_LOAD&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 32749&lt;br /&gt;
| A request has been made to abort any loading of this media.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Origin&amp;diff=435</id>
		<title>Origin</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Origin&amp;diff=435"/>
		<updated>2020-05-18T20:30:25Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;When Truxton stores files, it will tell you where the file came from. This is stored in the [Origin] column of the [File] table in the database.  {| class=&amp;quot;wikitable&amp;quot; ! Name !...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When Truxton stores files, it will tell you where the file came from.&lt;br /&gt;
This is stored in the [Origin] column of the [File] table in the database.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Value&lt;br /&gt;
! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ORIGIN_UNKNOWN&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0&lt;br /&gt;
| We don't know where this file came from.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ORIGIN_NORMAL&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 1&lt;br /&gt;
| The file came from the media as an overt file. It was a normal entry in the media's filesystem.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ORIGIN_UNDELETED&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 2&lt;br /&gt;
| The file is the result of un-deleting it from the source filesystem.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ORIGIN_CARVED&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 3&lt;br /&gt;
| The file is the result of searching a byte stream for a file format (carving).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ORIGIN_EXPANDED&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 4&lt;br /&gt;
| The file came out of another file in Truxton. Child files of a [[Type_ZIP|Zip archive]] are &amp;lt;code&amp;gt;ORIGIN_EXPANDED&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ORIGIN_ASSOCIATED&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 5&lt;br /&gt;
| The file was uploaded to Truxton by a user and associated with media.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ORIGIN_GENERATED&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 6&lt;br /&gt;
| Truxton generated this file during exploitation. [[Type_Media_Snippet|Snippet]] files are an example.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ORIGIN_EMAIL_BODY&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 7&lt;br /&gt;
| The file is the body of an email parsed by Truxton.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ORIGIN_EMAIL_ATTACHMENT&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 8&lt;br /&gt;
| The file is an attachment to an email parsed by Truxton.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ORIGIN_VOLUME_SHADOW_COPY&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 9&lt;br /&gt;
| The file came from a [https://en.wikipedia.org/wiki/Shadow_Copy Volume Shadow] in [https://en.wikipedia.org/wiki/NTFS NTFS].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ORIGIN_MMS_ATTACHMENT&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 10&lt;br /&gt;
| The file is the payload of an [https://en.wikipedia.org/wiki/Multimedia_Messaging_Service MMS] message.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ORIGIN_STITCHED&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 11&lt;br /&gt;
| The file was stitched back together from fragments scattered throughout the media free space. It is a de-fragmented carved file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ORIGIN_SLACK&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 12&lt;br /&gt;
| The file came from the slack space of a normal file in the filesystem of the media.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Entity_Types&amp;diff=434</id>
		<title>Entity Types</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Entity_Types&amp;diff=434"/>
		<updated>2020-05-18T20:30:08Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;This is an enumeration of the interesting tidbits of analytic value.  {| class=&amp;quot;wikitable&amp;quot; ! Name ! Value ! Meaning |- | &amp;lt;code&amp;gt;ENTITY_TYPE_UNKNOWN&amp;lt;/code&amp;gt; | style=&amp;quot;text-align:c...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an enumeration of the interesting tidbits of analytic value.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Value&lt;br /&gt;
! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_UNKNOWN&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0&lt;br /&gt;
| The type of entity is not known.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_ACCOUNT&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 1&lt;br /&gt;
| Any form of account identifier.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_CREDIT_CARD_NUMBER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 2&lt;br /&gt;
| A credit card number.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_EMAIL_ADDRESS&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 3&lt;br /&gt;
| An Email Address.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_MAC_ADDRESS&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 4&lt;br /&gt;
| A 40-bit [https://en.wikipedia.org/wiki/MAC_address MAC address] of a network card.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_PERSON&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 5&lt;br /&gt;
| The name of a person.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_PHONE_NUMBER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 6&lt;br /&gt;
| A phone number.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_SEARCH_TERM&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 7&lt;br /&gt;
| Something the user searched for.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_TRACKING_NUMBER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 8&lt;br /&gt;
| A package tracking number.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_SERIAL_NUMBER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 9&lt;br /&gt;
| A serial number.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_IMEI&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 10&lt;br /&gt;
| [https://en.wikipedia.org/wiki/International_Mobile_Equipment_Identity International Mobile Equipment Identity.]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_IMSI&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 11&lt;br /&gt;
| [https://en.wikipedia.org/wiki/International_mobile_subscriber_identity International Mobile Subscriber Identity.]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_TMSI&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 12&lt;br /&gt;
| [https://en.wikipedia.org/wiki/Mobility_management#TMSI Temporary Mobile Subscriber Identity.]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_ICCID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 13&lt;br /&gt;
| [https://en.wikipedia.org/wiki/SIM_card#ICCID Integrated Circuit Card ID or SIM card serial number.]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_SPOOLED_DOCUMENT_TITLE&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 14&lt;br /&gt;
| Spooled Document Title.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_YOUTUBE_VIDEO_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 15&lt;br /&gt;
| YouTube Video ID.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_FACEBOOK_ACCOUNT_NUMBER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 16&lt;br /&gt;
| Facebook Account Number.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_AIRLINE_RESERVATION&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 17&lt;br /&gt;
| Airline Reservation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_DELL_SERVICE_TAG&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 18&lt;br /&gt;
| A Dell Computer Service Tag.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_APPLE_UDID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 19&lt;br /&gt;
| An Apple [https://en.wikipedia.org/wiki/UDID Unique Device ID.]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_FILE_PATH&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 20&lt;br /&gt;
| A file path.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_VOLUME_SERIAL_NUMBER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 21&lt;br /&gt;
| A serial number assigned to a logical volume by the operating system.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_VOLUME_NAME&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 22&lt;br /&gt;
| The name of a volume in a file system.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_MACHINE_NAME&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 23&lt;br /&gt;
| The name of a computer or device.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_ANDROID_ADVERTISING_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 24&lt;br /&gt;
| The identifier assigned to Android devices for [http://www.androiddocs.com/google/play-services/id.html advertising.]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_SSID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 25&lt;br /&gt;
| The WiFi [https://en.wikipedia.org/wiki/Service_set_(802.11_network)#Service_set_identifier_(SSID) Service Set ID] or network name.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_PASSWORD&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 26&lt;br /&gt;
| A password.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_USB_DEVICE&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 27&lt;br /&gt;
| A USB device.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_SHARE_NAME&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 28&lt;br /&gt;
| A windows file share name.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_LIMEWIRE_CLIENT_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 29&lt;br /&gt;
| A LimeWire Client Identifier.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_PRODUCT_KEY&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 30&lt;br /&gt;
| A Windows product license key.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_GOOGLE_PLUS_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 31&lt;br /&gt;
| A Google Plus Profile ID.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_DISNEY_GUEST_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 32&lt;br /&gt;
| An identifier of a guest at Disney.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_MACHINE_GUID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 33&lt;br /&gt;
| A [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] assigned to a machine by Microsoft.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_STEAM_ACCOUNT_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 34&lt;br /&gt;
| A Steam game network account identifier.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_STEAM_PERSONA&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 35&lt;br /&gt;
| A persona on the Steam game network.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_STEAM_NAME&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 36&lt;br /&gt;
| A name used in a Steam game.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_TOR_HIDDEN_SERVICE&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 37&lt;br /&gt;
| An identifier of a [https://en.wikipedia.org/wiki/Tor_(anonymity_network)#Onion_services Tor Hidden Service.]&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_NT_PASSWORD_HASH&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 38&lt;br /&gt;
| A [https://en.wikipedia.org/wiki/NT_LAN_Manager hash] of a Windows NT logon password.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_AUTHOR&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 39&lt;br /&gt;
| The author of a document.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_OGG_SERIAL_NUMBER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 40&lt;br /&gt;
| The data stream serial number in an [https://en.wikipedia.org/wiki/Ogg#File_format Ogg] multimedia file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_CRYPTO_KEY_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 41&lt;br /&gt;
| The identifier of a cryptographic key.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_WHATSAPP_ACCOUNT_NUMBER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 42&lt;br /&gt;
| The account number of a WhatsApp user.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_BITLOCKER_RECOVERY_KEY&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 43&lt;br /&gt;
| A recovery key for a BitLocker encrypted volume.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_SNAPCHAT_ACCOUNT_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 44&lt;br /&gt;
| A Snapchat account identifier.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_TWITTER_ACCOUNT_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 45&lt;br /&gt;
| A Twitter account identifier.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_APPLE_AUTHENTICATION_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 46&lt;br /&gt;
| An Apple authentication identifier.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_KIK_ACCOUNT_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 47&lt;br /&gt;
| A Kik Account identifier.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_VIBER_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 48&lt;br /&gt;
| A Viber identifier.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_VIBER_MEMBER_ID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 49&lt;br /&gt;
| A Viber Member identifier.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ENTITY_TYPE_DISK_SIGNATURE&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 50&lt;br /&gt;
| A 32-bit Master Boot Record [https://en.wikipedia.org/wiki/Master_boot_record#Sector_layout identifier] at offset 440 of the sector.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=DATA_TYPE&amp;diff=433</id>
		<title>DATA TYPE</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=DATA_TYPE&amp;diff=433"/>
		<updated>2020-05-18T20:29:47Z</updated>

		<summary type="html">&lt;p&gt;Admin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is an enumeration of the different ways of storing data in a byte stream.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Value&lt;br /&gt;
! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_UNKNOWN&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0&lt;br /&gt;
| The format of the data is not known&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_int8_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 1&lt;br /&gt;
| A signed byte.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_uint8_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 2&lt;br /&gt;
| An unsigned byte.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_ASCII&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 3&lt;br /&gt;
| An [https://en.wikipedia.org/wiki/ASCII ASCII] character.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_wchar_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 4&lt;br /&gt;
| A sixteen bit [https://home.unicode.org/ Unicode] character in [https://en.wikipedia.org/wiki/Universal_Coded_Character_Set UCS-2] encoding. AKA &amp;quot;wide character&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_GUID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 5&lt;br /&gt;
| A 128-bit (16 byte) [https://en.wikipedia.org/wiki/Universally_unique_identifier globally unique identifier].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_ASCII_GUID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 6&lt;br /&gt;
| A 128-bit [https://en.wikipedia.org/wiki/Universally_unique_identifier globally unique identifier] in [https://en.wikipedia.org/wiki/ASCII ASCII] format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_wchar_t_GUID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 7&lt;br /&gt;
| A 128-bit [https://en.wikipedia.org/wiki/Universally_unique_identifier globally unique identifier] in wide character format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_int16_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 10&lt;br /&gt;
| A signed sixteen bit (two byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_uint16_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 11&lt;br /&gt;
| An unsigned sixteen bit (two byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_int24_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 12&lt;br /&gt;
| A signed twenty-four bit (three byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_uint24_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 13&lt;br /&gt;
| An unsigned twenty-four bit (three byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_int32_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 14&lt;br /&gt;
| A signed thirty-two bit (four byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_uint32_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 15&lt;br /&gt;
| An unsigned thirty-two bit (four byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_int48_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 16&lt;br /&gt;
| A signed forty-eight bit (six byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_uint48_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 17&lt;br /&gt;
| An unsigned forty-eight bit (six byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_int64_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 18&lt;br /&gt;
| A signed sixty-four bit (eight byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_uint64_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 19&lt;br /&gt;
| An unsigned sixty-four bit (eight byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_DATA_FIELD&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 20&lt;br /&gt;
| An arbitrary length integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_int16_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 30&lt;br /&gt;
| A signed sixteen bit (two byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_uint16_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 31&lt;br /&gt;
| An unsigned sixteen bit (two byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_int24_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 32&lt;br /&gt;
| A signed twenty-four bit (three byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_uint24_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 33&lt;br /&gt;
| An unsigned twenty-four bit (three byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_int32_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 34&lt;br /&gt;
| A signed thirty-two bit (four byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_uint32_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 35&lt;br /&gt;
| An unsigned thirty-two bit (four byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_int48_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 36&lt;br /&gt;
| A signed forty-eight bit (six byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_uint48_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 37&lt;br /&gt;
| An unsigned forty-eight bit (six byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_int64_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 38&lt;br /&gt;
| A signed sixty-four bit (eight byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_uint64_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 39&lt;br /&gt;
| An unsigned sixty-four bit (eight byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_Encoded_Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 40&lt;br /&gt;
| An arbitrary length encoded integer.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_Double&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 50&lt;br /&gt;
| A floating point number.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_UCS4&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 51&lt;br /&gt;
| A thirty-two bit (four byte) [https://home.unicode.org/ Unicode] character in [https://en.wikipedia.org/wiki/UTF-32#History UCS-4] encoding.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=DATA_TYPE&amp;diff=432</id>
		<title>DATA TYPE</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=DATA_TYPE&amp;diff=432"/>
		<updated>2020-05-18T20:29:15Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot; Editing DATA TYPE Jump to navigation Jump to search This is an enumeration of the different ways of storing data in a byte stream.  {| class=&amp;quot;wikitable&amp;quot; ! Name ! Value ! Mean...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
Editing DATA TYPE&lt;br /&gt;
Jump to navigation&lt;br /&gt;
Jump to search&lt;br /&gt;
This is an enumeration of the different ways of storing data in a byte stream.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Value&lt;br /&gt;
! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_UNKNOWN&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0&lt;br /&gt;
| The format of the data is not known&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_int8_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 1&lt;br /&gt;
| A signed byte.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_uint8_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 2&lt;br /&gt;
| An unsigned byte.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_ASCII&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 3&lt;br /&gt;
| An [https://en.wikipedia.org/wiki/ASCII ASCII] character.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_wchar_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 4&lt;br /&gt;
| A sixteen bit [https://home.unicode.org/ Unicode] character in [https://en.wikipedia.org/wiki/Universal_Coded_Character_Set UCS-2] encoding. AKA &amp;quot;wide character&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_GUID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 5&lt;br /&gt;
| A 128-bit (16 byte) [https://en.wikipedia.org/wiki/Universally_unique_identifier globally unique identifier].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_ASCII_GUID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 6&lt;br /&gt;
| A 128-bit [https://en.wikipedia.org/wiki/Universally_unique_identifier globally unique identifier] in [https://en.wikipedia.org/wiki/ASCII ASCII] format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_wchar_t_GUID&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 7&lt;br /&gt;
| A 128-bit [https://en.wikipedia.org/wiki/Universally_unique_identifier globally unique identifier] in wide character format.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_int16_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 10&lt;br /&gt;
| A signed sixteen bit (two byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_uint16_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 11&lt;br /&gt;
| An unsigned sixteen bit (two byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_int24_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 12&lt;br /&gt;
| A signed twenty-four bit (three byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_uint24_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 13&lt;br /&gt;
| An unsigned twenty-four bit (three byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_int32_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 14&lt;br /&gt;
| A signed thirty-two bit (four byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_uint32_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 15&lt;br /&gt;
| An unsigned thirty-two bit (four byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_int48_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 16&lt;br /&gt;
| A signed forty-eight bit (six byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_uint48_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 17&lt;br /&gt;
| An unsigned forty-eight bit (six byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_int64_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 18&lt;br /&gt;
| A signed sixty-four bit (eight byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_uint64_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 19&lt;br /&gt;
| An unsigned sixty-four bit (eight byte) integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_LITTLE_ENDIAN_DATA_FIELD&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 20&lt;br /&gt;
| An arbitrary length integer in little [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_int16_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 30&lt;br /&gt;
| A signed sixteen bit (two byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_uint16_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 31&lt;br /&gt;
| An unsigned sixteen bit (two byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_int24_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 32&lt;br /&gt;
| A signed twenty-four bit (three byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_uint24_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 33&lt;br /&gt;
| An unsigned twenty-four bit (three byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_int32_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 34&lt;br /&gt;
| A signed thirty-two bit (four byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_uint32_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 35&lt;br /&gt;
| An unsigned thirty-two bit (four byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_int48_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 36&lt;br /&gt;
| A signed forty-eight bit (six byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_uint48_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 37&lt;br /&gt;
| An unsigned forty-eight bit (six byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_int64_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 38&lt;br /&gt;
| A signed sixty-four bit (eight byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_BIG_ENDIAN_uint64_t&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 39&lt;br /&gt;
| An unsigned sixty-four bit (eight byte) integer in big [https://en.wikipedia.org/wiki/Endianness endian] (Intel) layout.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_Encoded_Integer&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 40&lt;br /&gt;
| An arbitrary length encoded integer.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_Double&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 50&lt;br /&gt;
| A floating point number.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DATA_TYPE_UCS4&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 51&lt;br /&gt;
| A thirty-two bit (four byte) [https://home.unicode.org/ Unicode] character in [https://en.wikipedia.org/wiki/UTF-32#History UCS-4] encoding.&lt;br /&gt;
|}&lt;br /&gt;
Summary:&lt;br /&gt;
This is a minor edit&lt;br /&gt;
Watch this page&lt;br /&gt;
&lt;br /&gt;
Please note that all contributions to Truxton may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.&lt;br /&gt;
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see Truxton:Copyrights for details). Do not submit copyrighted work without permission!&lt;br /&gt;
Editing help (opens in new window)&lt;br /&gt;
Navigation menu&lt;br /&gt;
&lt;br /&gt;
    Sam&lt;br /&gt;
    Talk&lt;br /&gt;
    Preferences&lt;br /&gt;
    Watchlist&lt;br /&gt;
    Contributions&lt;br /&gt;
    Log out&lt;br /&gt;
&lt;br /&gt;
    Page&lt;br /&gt;
    Discussion&lt;br /&gt;
&lt;br /&gt;
    Read&lt;br /&gt;
    Edit&lt;br /&gt;
    View history&lt;br /&gt;
    Watch&lt;br /&gt;
&lt;br /&gt;
More&lt;br /&gt;
&lt;br /&gt;
Search&lt;br /&gt;
&lt;br /&gt;
    Main page&lt;br /&gt;
    Recent changes&lt;br /&gt;
    Random page&lt;br /&gt;
    Help about MediaWiki&lt;br /&gt;
&lt;br /&gt;
Tools&lt;br /&gt;
&lt;br /&gt;
    What links here&lt;br /&gt;
    Related changes&lt;br /&gt;
    Special pages&lt;br /&gt;
    Page information&lt;br /&gt;
&lt;br /&gt;
    Privacy policy&lt;br /&gt;
    About Truxton&lt;br /&gt;
    Disclaimers&lt;br /&gt;
&lt;br /&gt;
    Powered by MediaWiki&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Content_Status&amp;diff=431</id>
		<title>Content Status</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Content_Status&amp;diff=431"/>
		<updated>2020-05-18T20:28:56Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;When Truxton processes the contents of a file, several things can happen. These defined constants represent the states of the contents of a file in Truxton.  {| class=&amp;quot;wikitab...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;When Truxton processes the contents of a file, several things can happen.&lt;br /&gt;
These defined constants represent the states of the contents of a file in Truxton.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Value&lt;br /&gt;
! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CONTENT_STATUS_UNKNOWN&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0&lt;br /&gt;
| We don't know what the status of the contents is.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CONTENT_STATUS_ORIGINAL&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 1&lt;br /&gt;
| The contents came from the source media.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CONTENT_STATUS_VALID_DATA_LENGTH&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 2&lt;br /&gt;
| In [https://en.wikipedia.org/wiki/NTFS NTFS], space for a file can be allocated on the filesystem but not yet written to. The [https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/content/ntddk/ns-ntddk-_file_valid_data_length_information Valid Data Length] is the offset into the file where the last byte was written.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CONTENT_STATUS_SPARSE_COLLAPSED&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 3&lt;br /&gt;
| The contents are the non-spare regions of the file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CONTENT_STATUS_ELIMINATED_BY_HASH&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 4&lt;br /&gt;
| The contents were eliminated because the hash of the contents was found in a [[Hash Set|hash set]].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CONTENT_STATUS_COPY_ELIMINATED&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 5&lt;br /&gt;
| The contents are a copy of another file and therefore not stored.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CONTENT_STATUS_NOT_EXPORTED&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 6&lt;br /&gt;
| When importing media from another Truxton instance, the contents were not exported by that other instance of Truxton.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CONTENT_STATUS_ELIMINATED_EMPTY&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 7&lt;br /&gt;
| The file had an entropy of zero. Since it contains no information, the bytes were eliminated.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;CONTENT_STATUS_LENGTH_NEEDS_RECALCULATING&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 99&lt;br /&gt;
| This value is used during carving to calculate file lengths that span freespace regions.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Watch_Desktop_Logs&amp;diff=430</id>
		<title>Watch Desktop Logs</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Watch_Desktop_Logs&amp;diff=430"/>
		<updated>2020-05-18T20:28:27Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;If you want to see what the desktop is logging as it runs, start Powershell, then: &amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt; Get-Content &amp;quot;$env:LOCALAPPDATA\probity\truxton\TruxtonCl...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you want to see what the desktop is logging as it runs, start Powershell, then:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;powershell&amp;quot;&amp;gt;&lt;br /&gt;
Get-Content &amp;quot;$env:LOCALAPPDATA\probity\truxton\TruxtonClient.log&amp;quot; -Tail 10 -wait&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Configuration_System&amp;diff=429</id>
		<title>Configuration System</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Configuration_System&amp;diff=429"/>
		<updated>2020-05-18T20:27:55Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;=Description=  The way to communicate settings to Truxton is through a class called &amp;lt;code&amp;gt;Options&amp;lt;/code&amp;gt;. This is an interpretation of the Ye Olde &amp;quot;Command Line Options&amp;quot; of wh...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Description=&lt;br /&gt;
&lt;br /&gt;
The way to communicate settings to Truxton is through a class called &amp;lt;code&amp;gt;Options&amp;lt;/code&amp;gt;.&lt;br /&gt;
This is an interpretation of the Ye Olde &amp;quot;Command Line Options&amp;quot; of which much has been written.&lt;br /&gt;
In Truxton, an option is prefaced by a name followed by the value.&lt;br /&gt;
There is only one value per option.&lt;br /&gt;
In this article, we may refer to an option as a parameter or setting.&lt;br /&gt;
&lt;br /&gt;
=Sources=&lt;br /&gt;
The following are the nine different places that a parameter can come from. The lower the number, the greater the precedence that option has. The harder it is for a user to define an option, the greater weight that option will be given. It is harder for a user to specify an option on a command line because they must type it out. The user exerts no effort whatsoever to use a default value compiled into programs. Therefore, the command line option will be used instead of the compiled default. &lt;br /&gt;
&lt;br /&gt;
# Command Line Parameters&lt;br /&gt;
# Command Line Configuration File&lt;br /&gt;
# Command Line Database&lt;br /&gt;
# Environment Variable&lt;br /&gt;
# ETL Configuration File&lt;br /&gt;
# ETL Machine File&lt;br /&gt;
# Database by Machine&lt;br /&gt;
# Truxton Settings File&lt;br /&gt;
# Compiled Defaults&lt;br /&gt;
&lt;br /&gt;
==Command Line Parameters==&lt;br /&gt;
If a human takes the time to physically type parameters on a command line, they must really mean that they want this value to be used. Anything specified on a command line takes precedence over any other location. The format of command line parameters is parameter name followed by a space and the parameter value.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
load.exe -w 1 --xx abc /z &amp;quot;3 4 and 5&amp;quot; disk.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the example above there are three options specified and one non-option.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Option Name&lt;br /&gt;
! Option Value&lt;br /&gt;
|-&lt;br /&gt;
| w&lt;br /&gt;
| 1&lt;br /&gt;
|-&lt;br /&gt;
| xx&lt;br /&gt;
| abc&lt;br /&gt;
|-&lt;br /&gt;
| z&lt;br /&gt;
| 3 4 and 5&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The non-option is &amp;quot;disk.dat&amp;quot; A command line is the only way to specify a non-option.&lt;br /&gt;
&lt;br /&gt;
Option names can be prefaced with a single dash, double dash or a slash depending on your command line religion.&lt;br /&gt;
&lt;br /&gt;
==Command Line Configuration File==&lt;br /&gt;
You can put the name of a configuration file on the command line.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
Identify.exe my_settings.xml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;my_settings.xml&amp;lt;/code&amp;gt; would be assumed to be a file name since it was not part of an option.&lt;br /&gt;
That file would then be opened, parsed as [https://en.wikipedia.org/wiki/XML XML] and anything found in the first &amp;lt;code&amp;gt;truxton_options&amp;lt;/code&amp;gt; section would be used as configuration options.&lt;br /&gt;
All XML element names used in Truxton are lower case.&lt;br /&gt;
&lt;br /&gt;
The settings would look like this:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;truxton_options&amp;gt;&lt;br /&gt;
  &amp;lt;w&amp;gt;1&amp;lt;/w&amp;gt;&lt;br /&gt;
  &amp;lt;xx&amp;gt;abc&amp;lt;/xx&amp;gt;&lt;br /&gt;
  &amp;lt;z&amp;gt;3 4 and 5&amp;lt;/z&amp;gt;&lt;br /&gt;
&amp;lt;/truxton_options&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Command Line Database==&lt;br /&gt;
If you specify a settings identifier on the command line, Truxton will retrieve that setting from the database and use it.&lt;br /&gt;
The [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] you specify should match the &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; column of the &amp;lt;code&amp;gt;Setting&amp;lt;/code&amp;gt; table.&lt;br /&gt;
If a record is found, it will then parse the XML contents of the &amp;lt;code&amp;gt;Value&amp;lt;/code&amp;gt; column.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
Identify.exe 51256fb4-c7f6-327a-2703-325e219ecc2b&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you actually use a random value you will have no end of mistakes.&lt;br /&gt;
We suggest making fake ids for settings and using those.&lt;br /&gt;
It will make typing it in far easier. Here's a fake setting that can be easily typed and remembered by a human.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
Identify.exe 12345678-1234-1234-1234-123456789abc&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Environment Variable==&lt;br /&gt;
Configuration options can also be set using environment variables.&lt;br /&gt;
These variables must have names that begin with &amp;lt;code&amp;gt;Truxton_&amp;lt;/code&amp;gt;&lt;br /&gt;
For example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
set Truxton_w=1&lt;br /&gt;
set Truxton_xx=abc&lt;br /&gt;
set Truxton_z=&amp;quot;3 4 and 5&amp;quot;&lt;br /&gt;
Load.exe disk.dat&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ETL Configuration File==&lt;br /&gt;
Another location is an XML configuration file specifically for this type of ETL process.&lt;br /&gt;
Truxton will look for a file in the same directory as the executable with &amp;lt;code&amp;gt;config&amp;lt;/code&amp;gt; as the extension.&lt;br /&gt;
For example, the &amp;lt;code&amp;gt;Identify.exe&amp;lt;/code&amp;gt; ETL process will look for a file named &amp;lt;code&amp;gt;Identify.config&amp;lt;/code&amp;gt; and parse it if found.&lt;br /&gt;
&lt;br /&gt;
==ETL Machine File==&lt;br /&gt;
This is a configuration file with customized settings valid for the machine that runs the ETL processes.&lt;br /&gt;
Truxton will look for a file in the same directory as the &amp;lt;code&amp;gt;TruxtonSettings.xml&amp;lt;/code&amp;gt; file named &amp;lt;code&amp;gt;TruxtonSettings.machine&amp;lt;/code&amp;gt; as the extension.&lt;br /&gt;
&lt;br /&gt;
Machine configuration is usually used for specifying common settings that are unique to a machine.&lt;br /&gt;
For example, every ETL process needs some sort of temporary directory.&lt;br /&gt;
Some of your ETL machines may have RAM disks, others may have hard drives with differing drive letters.&lt;br /&gt;
Machine configuration files allow you to customize where the temp folder is for each machine.&lt;br /&gt;
&lt;br /&gt;
==Database by Machine==&lt;br /&gt;
Each installation of Truxton has a globally unique machine identifier.&lt;br /&gt;
This can be found in the &amp;lt;code&amp;gt;machineid&amp;lt;/code&amp;gt; element of the &amp;lt;code&amp;gt;TruxtonSettings.XML&amp;lt;/code&amp;gt; file.&lt;br /&gt;
Truxton will connect to the database and query the &amp;lt;code&amp;gt;Setting&amp;lt;/code&amp;gt; table for a record with the machine identifier in the &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; column.&lt;br /&gt;
If found, the XML in the &amp;lt;code&amp;gt;Value&amp;lt;/code&amp;gt; column will be parsed for options.&lt;br /&gt;
&lt;br /&gt;
==Truxton Settings File==&lt;br /&gt;
Each installation has a &amp;lt;code&amp;gt;TruxtonSettings.xml&amp;lt;/code&amp;gt; file.&lt;br /&gt;
It is found in the &amp;lt;code&amp;gt;%programdata%\Truxton\Settings&amp;lt;/code&amp;gt; folder which usually expands to &amp;lt;code&amp;gt;C:\ProgramData\Truxton\Settings&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NOTE:''' The &amp;lt;code&amp;gt;ProgramData&amp;lt;/code&amp;gt; folder is normally hidden and won't show up in directory listings (or File Explorer).&lt;br /&gt;
&lt;br /&gt;
Its primary purpose is to store the [https://en.wikipedia.org/wiki/Universally_unique_identifier globally unique identifier] for the machine which was generated during installation.&lt;br /&gt;
The default database connection parameters are also stored here.&lt;br /&gt;
&lt;br /&gt;
As you can see, the &amp;lt;code&amp;gt;TruxtonSettings.xml&amp;lt;/code&amp;gt; file has very low priority.&lt;br /&gt;
&lt;br /&gt;
==Compiled Defaults==&lt;br /&gt;
Each ETL member can have default options built into it. If the option is not specified anywhere above, whatever was compiled into the executable will be used. This is the last resort.&lt;br /&gt;
&lt;br /&gt;
=Debugging the Options=&lt;br /&gt;
With nine different places to get options from, how could anything go wrong? If you need help debugging why an option isn't getting the value you want, use the &amp;lt;code&amp;gt;debugoptions&amp;lt;/code&amp;gt; option.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
Identify.exe -debugoptions 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will cause an installation log to be created and the options written to it.&lt;br /&gt;
This log file is found in the &amp;lt;code&amp;gt;Truxton\OptionsDebugging&amp;lt;/code&amp;gt; directory under the &amp;lt;code&amp;gt;%programdata%&amp;lt;/code&amp;gt; folder (which usually expands to &amp;lt;code&amp;gt;C:\ProgramData&amp;lt;/code&amp;gt;) folder.&lt;br /&gt;
An installation log is the only log that can be created safely if everything else fails.&lt;br /&gt;
==Sample Options Log==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Log file created by &amp;quot;C:\Program Files\Truxton\Loader\Identify.exe&amp;quot;&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Processing &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot; as TruxtonSettings.xml(C:\ProgramData\Truxton\Settings\TruxtonSettings.xml)&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Getting Options from Truxton Database&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Parsing 3 command line arguments&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Beginning to parse the command line arguments at array index 0&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 0 ] = &amp;quot;identify&amp;quot;&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 0 ] (&amp;quot;identify&amp;quot;) is being added as a NotOption.&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 0 ] (&amp;quot;identify&amp;quot;) was added as a NotOption number 0.&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 1 ] = &amp;quot;-debugoptions&amp;quot;&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 2 ] = &amp;quot;1&amp;quot; is the value of option &amp;quot;debugoptions&amp;quot;&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : No existing option named &amp;quot;debugoptions&amp;quot; was found, creating a new one&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Finished parsing 3 command line arguments, there are now 1 NotOptions&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Processing &amp;quot;C:\Program Files\Truxton\Loader\Identify.config&amp;quot; as the ETL.config file&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Can't parse &amp;quot;C:\Program Files\Truxton\Loader\Identify.config&amp;quot; as XML&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Processing &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.machine&amp;quot; as the ETL.machine file&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Can't parse &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.machine&amp;quot; as XML&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : All Option Dump (The first entry of duplicate lines is the value that will be used by the program.)&lt;br /&gt;
Process &amp;quot;C:\Program Files\Truxton\Loader\Identify.exe&amp;quot;&lt;br /&gt;
createthedatabase : &amp;quot;1&amp;quot; from TruxtonSettings.xml XML element name truxton_options.CreateTheDatabase beginning at line 15 column 3 byte 485 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
datadir : &amp;quot;C:\Truxton Data&amp;quot; from TruxtonSettings.xml XML element name truxton_options.datadir beginning at line 13 column 3 byte 384 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbname : &amp;quot;Truxton&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbname beginning at line 5 column 3 byte 123 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbpassword : &amp;quot;Truxton4n6&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbpassword beginning at line 7 column 3 byte 180 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbport : &amp;quot;5432&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbport beginning at line 4 column 3 byte 98 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbserver : &amp;quot;localhost&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbserver beginning at line 3 column 3 byte 64 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbsr1 : &lt;br /&gt;
dbuser : &amp;quot;postgres&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbuser beginning at line 6 column 3 byte 151 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
debugoptions : &amp;quot;1&amp;quot; from Command Line argument 2 (zero is the first)&lt;br /&gt;
filegroupshavebeeninitialized : &amp;quot;1&amp;quot; from TruxtonSettings.xml XML element name truxton_options.FileGroupsHaveBeenInitialized beginning at line 17 column 3 byte 593 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
machineid : &amp;quot;64B30278-F250-4896-82EB-1AC416DB30B2&amp;quot; from TruxtonSettings.xml XML element name truxton_options.machineid beginning at line 14 column 3 byte 422 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mqname : &amp;quot;TruxtonMessageBus&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mqname beginning at line 10 column 3 byte 278 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mqpassword : &amp;quot;Truxton4n6&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mqpassword beginning at line 12 column 3 byte 345 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mqport : &amp;quot;5432&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mqport beginning at line 9 column 3 byte 253 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mqserver : &amp;quot;localhost&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mqserver beginning at line 8 column 3 byte 219 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mquser : &amp;quot;postgres&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mquser beginning at line 11 column 3 byte 316 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
solr_url : &amp;quot;http://localhost:8983/solr/truxton-core&amp;quot; from TruxtonSettings.xml XML element name truxton_options.solr_url beginning at line 16 column 3 byte 529 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
writesettings : &lt;br /&gt;
&lt;br /&gt;
End of Options, Start of Non-Options&lt;br /&gt;
&amp;quot;identify&amp;quot;&lt;br /&gt;
&lt;br /&gt;
End of All Option Dump&lt;br /&gt;
&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Processing &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot; as TruxtonSettings.xml(C:\ProgramData\Truxton\Settings\TruxtonSettings.xml)&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Getting Options from Truxton Database&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Parsing 3 command line arguments&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Beginning to parse the command line arguments at array index 0&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 0 ] = &amp;quot;identify&amp;quot;&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 0 ] (&amp;quot;identify&amp;quot;) is being added as a NotOption.&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 0 ] (&amp;quot;identify&amp;quot;) was added as a NotOption number 0.&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 1 ] = &amp;quot;-debugoptions&amp;quot;&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : command_line_argument[ 2 ] = &amp;quot;1&amp;quot; is the value of option &amp;quot;debugoptions&amp;quot;&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : No existing option named &amp;quot;debugoptions&amp;quot; was found, creating a new one&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Finished parsing 3 command line arguments, there are now 1 NotOptions&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Processing &amp;quot;C:\Program Files\Truxton\Loader\Identify.config&amp;quot; as the ETL.config file&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Can't parse &amp;quot;C:\Program Files\Truxton\Loader\Identify.config&amp;quot; as XML&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Processing &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.machine&amp;quot; as the ETL.machine file&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Can't parse &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.machine&amp;quot; as XML&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : All Option Dump (The first entry of duplicate lines is the value that will be used by the program.)&lt;br /&gt;
Process &amp;quot;C:\Program Files\Truxton\Loader\Identify.exe&amp;quot;&lt;br /&gt;
aci : &amp;quot;10007&amp;quot; from Default definitions&lt;br /&gt;
alert_email_from_address : &amp;quot;Truxton@localhost&amp;quot; from Default definitions&lt;br /&gt;
alert_email_subject : &amp;quot;[Truxton Alert]&amp;quot; from Default definitions&lt;br /&gt;
carve : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
carve_threads : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
carvemode : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
carveoffset : &amp;quot;65536&amp;quot; from Default definitions&lt;br /&gt;
carveunknown : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
cmid : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
controlledby : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
createthedatabase : &amp;quot;1&amp;quot; from TruxtonSettings.xml XML element name truxton_options.CreateTheDatabase beginning at line 15 column 3 byte 485 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
cunk : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
cws : &amp;quot;10485760&amp;quot; from Default definitions&lt;br /&gt;
datadir : &amp;quot;C:\Truxton Data&amp;quot; from TruxtonSettings.xml XML element name truxton_options.datadir beginning at line 13 column 3 byte 384 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbname : &amp;quot;Truxton&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbname beginning at line 5 column 3 byte 123 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbname : &amp;quot;Truxton&amp;quot; from Default definitions&lt;br /&gt;
dbpassword : &amp;quot;Truxton4n6&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbpassword beginning at line 7 column 3 byte 180 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbport : &amp;quot;5432&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbport beginning at line 4 column 3 byte 98 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbport : &amp;quot;5432&amp;quot; from Default definitions&lt;br /&gt;
dbserver : &amp;quot;localhost&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbserver beginning at line 3 column 3 byte 64 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbserver : &amp;quot;127.0.0.1&amp;quot; from Default definitions&lt;br /&gt;
dbsr1 : &lt;br /&gt;
dbuser : &amp;quot;postgres&amp;quot; from TruxtonSettings.xml XML element name truxton_options.dbuser beginning at line 6 column 3 byte 151 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
dbuser : &amp;quot;postgres&amp;quot; from Default definitions&lt;br /&gt;
debugfileidmapping : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
debugoptions : &amp;quot;1&amp;quot; from Command Line argument 2 (zero is the first)&lt;br /&gt;
dedupemessages : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
deepsleep : &amp;quot;45007&amp;quot; from Default definitions&lt;br /&gt;
deletedfiles : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
depotpagesize : &amp;quot;4096&amp;quot; from Default definitions&lt;br /&gt;
ds : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
ee : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
excludefilesbytype : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
excludes : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
fct : &amp;quot;300&amp;quot; from Default definitions&lt;br /&gt;
filegroupshavebeeninitialized : &amp;quot;1&amp;quot; from TruxtonSettings.xml XML element name truxton_options.FileGroupsHaveBeenInitialized beginning at line 17 column 3 byte 593 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
fileslack : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
fqhi : &amp;quot;7500&amp;quot; from Default definitions&lt;br /&gt;
fqlo : &amp;quot;100&amp;quot; from Default definitions&lt;br /&gt;
hashsetall : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
iei : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
imagelength : &amp;quot;-1&amp;quot; from Default definitions&lt;br /&gt;
imageoffset : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
includefilesbytype : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
includes : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
istatus : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
itype : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
loadas : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
machineid : &amp;quot;64B30278-F250-4896-82EB-1AC416DB30B2&amp;quot; from TruxtonSettings.xml XML element name truxton_options.machineid beginning at line 14 column 3 byte 422 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
maxsleep : &amp;quot;600101&amp;quot; from Default definitions&lt;br /&gt;
metacarve : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
minsleep : &amp;quot;3011&amp;quot; from Default definitions&lt;br /&gt;
mlat : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
mlong : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
mqname : &amp;quot;TruxtonMessageBus&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mqname beginning at line 10 column 3 byte 278 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mqname : &amp;quot;TruxtonMessageBus&amp;quot; from Default definitions&lt;br /&gt;
mqpassword : &amp;quot;Truxton4n6&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mqpassword beginning at line 12 column 3 byte 345 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mqport : &amp;quot;5432&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mqport beginning at line 9 column 3 byte 253 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mqport : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
mqserver : &amp;quot;localhost&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mqserver beginning at line 8 column 3 byte 219 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mqserver : &amp;quot;127.0.0.1&amp;quot; from Default definitions&lt;br /&gt;
mquser : &amp;quot;postgres&amp;quot; from TruxtonSettings.xml XML element name truxton_options.mquser beginning at line 11 column 3 byte 316 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
mquser : &amp;quot;postgres&amp;quot; from Default definitions&lt;br /&gt;
mr : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
nocontents : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
nohashsets : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
norouting : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
nostartdelay : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
nostore : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
numberofbuffers : &amp;quot;2048&amp;quot; from Default definitions&lt;br /&gt;
numberofbytesperbuffer : &amp;quot;65536&amp;quot; from Default definitions&lt;br /&gt;
numberoffiles : &amp;quot;9223372036854775807&amp;quot; from Default definitions&lt;br /&gt;
pfiles : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
pfree : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
priority : &amp;quot;1000&amp;quot; from Default definitions&lt;br /&gt;
rapid : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
recovery : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
reprocess : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
skipdupmedia : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
smtp_server : &amp;quot;localhost&amp;quot; from Default definitions&lt;br /&gt;
solr_url : &amp;quot;http://localhost:8983/solr/truxton-core&amp;quot; from TruxtonSettings.xml XML element name truxton_options.solr_url beginning at line 16 column 3 byte 529 of &amp;quot;C:\ProgramData\Truxton\Settings\TruxtonSettings.xml&amp;quot;&lt;br /&gt;
startatmft : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
syslogport : &amp;quot;514&amp;quot; from Default definitions&lt;br /&gt;
timeout : &amp;quot;120&amp;quot; from Default definitions&lt;br /&gt;
triage : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
tsk_verbose : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
updatemedianumberofchildren : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
updatepathid : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
verbose : &amp;quot;0&amp;quot; from Default definitions&lt;br /&gt;
wait : &amp;quot;none&amp;quot; from Default definitions&lt;br /&gt;
writesettings : &lt;br /&gt;
xorcarve : &amp;quot;1&amp;quot; from Default definitions&lt;br /&gt;
&lt;br /&gt;
End of Options, Start of Non-Options&lt;br /&gt;
&amp;quot;identify&amp;quot;&lt;br /&gt;
&lt;br /&gt;
End of All Option Dump&lt;br /&gt;
&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : application_name='Truxton Identify' dbname='Truxton' user='postgres' password='Truxton4n6' host='localhost' port=5432&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : application_name='Truxton Identify' dbname='TruxtonMessageBus' user='postgres' password='Truxton4n6' host='localhost' port=5432&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : Truxton Identify can't get connection string variable dbserver variable &amp;quot;logserver&amp;quot;&lt;br /&gt;
2019-10-16T12:31:21Z 4454-6528 : application_name='Truxton Identify' dbname='Truxton' user='postgres' password='Truxton4n6' host='localhost' port=5432&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Load_List&amp;diff=428</id>
		<title>Load List</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Load_List&amp;diff=428"/>
		<updated>2020-05-18T20:27:07Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;A load list is a simple text file that allows you to script the load process. These are usually used when you have many pieces of media to load on a single machine. You can li...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A load list is a simple text file that allows you to script the load process. These are usually used when you have many pieces of media to load on a single machine. You can list the path to the media to load and Truxton will load as many of them as possible at a time until they are all loaded. You don’t have to hang around and start the next piece of media when one finishes.&lt;br /&gt;
&lt;br /&gt;
It is not user friendly in that it is not self-explanatory. It was designed to be generated by scripts. The format of the file is a single letter record identifier followed by a colon followed by the parameters for that record type.&lt;br /&gt;
&lt;br /&gt;
=Fields=&lt;br /&gt;
==Investigation==&lt;br /&gt;
The investigation line specifies the investigation that the following media should belong to. You may specify a globally unique identifier if you wish otherwise Truxton will generate one for you. If you want the media in this load list file to belong to an existing investigation, simply put the identifier of that investigation on this line. Once an investigation has been set, all media specified in the load list will belong to that investigation until another investigation line is present.&lt;br /&gt;
&lt;br /&gt;
===Samples===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
I: This is My Case&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
A new investigation will be created with the name &amp;quot;This is My Case&amp;quot; with a random identifier.&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
I: Case 14 2CBA17E4-038A-4828-8A0D-D221F943B3F9&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
A new investigation will be created with the name of &amp;quot;Case 14&amp;quot; and an identifier of &amp;quot;2CBA17E4-038A-4828-8A0D-D221F943B3F9&amp;quot;&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
i: {2CBA17E4-038A-4828-8A0D-D221F943B3F9}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
The media specified in this load list file will be made part of an existing investigation with the id of &amp;quot;2CBA17E4-038A-4828-8A0D-D221F943B3F9.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Number of Loaders==&lt;br /&gt;
The loaders line controls the number of load processes that will be used to load the media specified in the load list. This setting will remain in effect until the next loaders line or the end of file has been reached.&lt;br /&gt;
===Samples===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
L: 4&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will use four load processes to get the media in this list loaded.&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
L: 0&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will set the number of load processes equal to the number of CPUs in the loader machine.&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
You can specify a configuration file to use. This can be used in conjunction with the path to media option. They are not exclusive.&lt;br /&gt;
===Samples===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
C: c:\Configs\Triage.xml&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will cause the loaders to use configuration parameters as specified in the &amp;quot;c:\Configs\Triage.xml&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
==Hash List Directory==&lt;br /&gt;
The hash list directory line sets the path to the folder that contains hash lists for eliminating file contents during the load.&lt;br /&gt;
&lt;br /&gt;
===Samples===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
H: c:\Hashes&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will use all hash sets found in the &amp;quot;C:\Hashes&amp;quot; folder&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
H: \\hashserver\files\2016&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will use all hash sets found in the shared folder &amp;quot;\\hashserver\files\2016&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Media==&lt;br /&gt;
This line contains the name and optional identifier for the media to be loaded. If no identifier is specified, one will be generated for you.&lt;br /&gt;
===Samples===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
M: Laptop Drive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will set the name of the media to &amp;quot;Laptop Drive.&amp;quot; The identifier for the media will be completely random.&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
M: Bob's Phone 2CBA17E4-038A-4828-8A0D-D221F943B3F9&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will set the name of the media to &amp;quot;Bob's Phone&amp;quot; and set the identifier to &amp;quot;2CBA17E4-038A-4828-8A0D-D221F943B3F9&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Command Line Arguments==&lt;br /&gt;
This allows you to set any command line argument for use with this media.&lt;br /&gt;
&lt;br /&gt;
===Samples===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
G: -loadas 514&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will add the &amp;lt;code&amp;gt;loadas&amp;lt;/code&amp;gt; command line argument when the load process is spawned.&lt;br /&gt;
&lt;br /&gt;
==Execute Before==&lt;br /&gt;
This allows you to specify a PowerShell script or batch file to execute before the load process is spawned. Once the script completes, the loader is free to execute.&lt;br /&gt;
&lt;br /&gt;
===Samples===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
A: BeforeBobLoads.ps1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This script will execute before the loader process is spawned.&lt;br /&gt;
&lt;br /&gt;
==Execute After==&lt;br /&gt;
This allows you to specify a PowerShell script or batch file to execute after the load process exits.&lt;br /&gt;
===Samples===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
Z: AfterBobLoads.cmd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This script will execute once the load completes.&lt;br /&gt;
&lt;br /&gt;
==Path==&lt;br /&gt;
This is the line that causes the load process to be spawned. This holds the path to the media to be loaded.&lt;br /&gt;
===Samples===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
P: c:\Images\WinXP.E01&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will load the &amp;quot;WinXP.E01&amp;quot; file.&lt;br /&gt;
&amp;lt;hr /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
P: P: c:\Data\Files 1&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
This will load the folder &amp;quot;Files 1&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==Complete Sample Load List==&lt;br /&gt;
The following load list will use one load process to exhaust the load list. Two pieces of media will be loaded as part of the [https://comicvine.gamespot.com/hong-kong-cavaliers/4060-57943/ &amp;quot;Hong Kong Cavaliers&amp;quot;] investigation. A PowerShell script will be executed before [https://www.imdb.com/title/tt0086856/characters/nm0000289 Penny Priddy's] phone is loaded. [https://www.imdb.com/title/tt0086856/characters/nm0001475 Emilio Lizardo's] hard drive will be loaded after Penny’s phone load completes. It will be loaded as a Master Boot Record ([[Type_Master_Boot_Record|file type 514]]) and [[Media Types|media type]] of Hard Drive (3).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
L: 1&lt;br /&gt;
I: Hong Kong Cavaliers&lt;br /&gt;
&lt;br /&gt;
A: AddPhone.ps1&lt;br /&gt;
M: Penny Priddy’s Phone&lt;br /&gt;
P: \\ImageServer\Phones\PP.E01&lt;br /&gt;
&lt;br /&gt;
M: Emilio Lizardo’s Hard Drive&lt;br /&gt;
G: -loadas 514 -mt 3&lt;br /&gt;
P: \\ImageServer\Hard Drives\EML.dd&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=TGUID&amp;diff=427</id>
		<title>TGUID</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=TGUID&amp;diff=427"/>
		<updated>2020-05-18T20:26:05Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;A TGUID (Truxton GUID) is a 128-bit identifier used throughout Truxton. It can be stored and interoperate with a [https://en.wikipedia.org/wiki/Universally_unique_identifier G...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A TGUID (Truxton GUID) is a 128-bit identifier used throughout Truxton.&lt;br /&gt;
It can be stored and interoperate with a [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] data type.&lt;br /&gt;
However, it is not a [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID].&lt;br /&gt;
It does not adhere to any specification at all.&lt;br /&gt;
It is merely the same size as a [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] but easier to debug.&lt;br /&gt;
&lt;br /&gt;
=In Memory Layout=&lt;br /&gt;
A TGUID differs from [https://en.wikipedia.org/wiki/Universally_unique_identifier GUID] in that the string/logical value of a TGUID is the same as the series of bytes in memory.&lt;br /&gt;
Think of it as a 128-bit [https://en.wikipedia.org/wiki/Endianness big-endian] in RAM.&lt;br /&gt;
Consider the following bytes as they appear in RAM:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;0x00, 0x11, 0x22, 0x33, 0x44, 0x55, 0x66, 0x77, 0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting those bytes to a TGUID will yield:&lt;br /&gt;
&amp;lt;code&amp;gt;{00112233-4455-6677-8899-AABBCCDDEEFF}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Converting those same bytes to a GUID will yield:&lt;br /&gt;
&amp;lt;code&amp;gt;{33221100-5544-7766-8899-AABBCCDDEEFF}&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Types of TGUIDs=&lt;br /&gt;
Truxton takes a very liberal interpretation of &amp;quot;globally unique identifier.&amp;quot;&lt;br /&gt;
Truxton's view of a TGUID is &amp;quot;128 bits that I can do whatever I want with.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==File ID==&lt;br /&gt;
A file identifier in Truxton can be totally random but it usually generated by the loader or an ETL process.&lt;br /&gt;
In that case, the identifier is made up of a time, random and a counter value.&lt;br /&gt;
This satisfies a couple of requirements we have of file identifiers (other than being globally unique):&lt;br /&gt;
* Quickly Created. Generating purely random data is a lengthy process when you are generating millions of them.&lt;br /&gt;
* Make database partitioning possible. By having part of the identifier being a timestamp, we can partition the &amp;lt;code&amp;gt;File&amp;lt;/code&amp;gt; table by algorithm.&lt;br /&gt;
&lt;br /&gt;
Let's take apart a sample file identifier:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;5da98fe7-14e6-f663-7143-a0e80000000a&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ File ID Fields&lt;br /&gt;
!&lt;br /&gt;
! Field A&lt;br /&gt;
! Field B&lt;br /&gt;
! Field C&lt;br /&gt;
|-&lt;br /&gt;
! Value&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 5da98fe7&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 14e6-f663-7143-a0e8&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0000000a&lt;br /&gt;
|-&lt;br /&gt;
! Type&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Time&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Random&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Counter&lt;br /&gt;
|-&lt;br /&gt;
! Meaning&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 2019-10-18T10:11:51&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | Random&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | ID number 10&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Field A===&lt;br /&gt;
The first field is a [https://en.wikipedia.org/wiki/Endianness big endian] representation of a [https://en.wikipedia.org/wiki/Unix_time Unix timestamp].&lt;br /&gt;
&amp;lt;code&amp;gt;5da98fe7&amp;lt;/code&amp;gt; is 1,571,393,511 seconds since January 1, 1970 or October 18, 2019 10:11:51 AM.&lt;br /&gt;
This makes it possible to construct a query to find out what was loaded on a particular date.&lt;br /&gt;
To see load activity on October 18, 2019:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT * FROM &amp;quot;File&amp;quot; WHERE &amp;quot;ID&amp;quot; BETWEEN '5da90080-0000-0000-0000-000000000000'::uuid AND '5da9b74f-ffff-ffff-ffff-ffffffff'::uuid&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Field B===&lt;br /&gt;
The second field is sixty four bits of random data.&lt;br /&gt;
This is generated using the secure random number generator function &amp;lt;code&amp;gt;[https://docs.microsoft.com/en-us/cpp/c-runtime-library/reference/rand-s?view=vs-2019 rand_s]&amp;lt;/code&amp;gt; which uses the &amp;lt;code&amp;gt;[https://docs.microsoft.com/en-us/windows/win32/api/ntsecapi/nf-ntsecapi-rtlgenrandom RtlGenRandom]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Field C===&lt;br /&gt;
The last field is a thirty two bit counter value.&lt;br /&gt;
Every time an identifier is generated, this field is incremented.&lt;br /&gt;
In our example, we can tell this is the tenth identifier that was generated.&lt;br /&gt;
&lt;br /&gt;
==Media ID==&lt;br /&gt;
The media ID in Truxton is based on time.&lt;br /&gt;
A clock tick is six hours.&lt;br /&gt;
The epoch is 2016-11-01.&lt;br /&gt;
The rollover will happen September 18, 2061.&lt;br /&gt;
&lt;br /&gt;
The first two bytes of the identifier is the number of clock ticks since 2016-11-01.&lt;br /&gt;
The remaining 30 bytes are random using the cryptographicaly secure random number generator in Windows.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;10e7b286-4f9f-3e2e-10da-07d5db37944c&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The time field is &amp;lt;code&amp;gt;10e7&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Having a Media ID that can be sorted on time allows for the partitioning of data in the database.&lt;br /&gt;
You can partition your data by year if you want to.&lt;br /&gt;
&lt;br /&gt;
==ETL ID==&lt;br /&gt;
The job of an ETL ID is to identify an ETL on the network.&lt;br /&gt;
ETL IDs are used in status messages when reporting to [[Les]].&lt;br /&gt;
&lt;br /&gt;
===Fields===&lt;br /&gt;
The format of an ETL ID is as follows:&lt;br /&gt;
&lt;br /&gt;
SSIIRRRR-PPPP-PPTT-TTTT-AAAAAAAAAAAA&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field&lt;br /&gt;
! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SS&amp;lt;/code&amp;gt;&lt;br /&gt;
| The stage of the ETL.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;II&amp;lt;/code&amp;gt;&lt;br /&gt;
| The instance of the ETL on the machine running the process.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RRRR&amp;lt;/code&amp;gt;&lt;br /&gt;
| A random value.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PPPPPP&amp;lt;/code&amp;gt;&lt;br /&gt;
| The process ID of the ETL process.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TTTTTT&amp;lt;/code&amp;gt;&lt;br /&gt;
| The thread ID of the ETL process. A single process can host multiple ETLs.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;AAAAAAAAAAAA&amp;lt;/code&amp;gt;&lt;br /&gt;
| The IP address of the machine running the ETL process.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&amp;lt;code&amp;gt;03015678-0079-C400-7514-192168001014&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field&lt;br /&gt;
! Value&lt;br /&gt;
! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;SS&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 03&lt;br /&gt;
| Stage 3&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;II&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 01&lt;br /&gt;
| First instance of the ETL&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;RRRR&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 5678&lt;br /&gt;
| A random value&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;PPPPPP&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0079C4&lt;br /&gt;
| Process ID 31172&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;TTTTTT&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 007514&lt;br /&gt;
| The thread ID 29972&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;AAAAAAAAAAAA&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 192168001014&lt;br /&gt;
| The IP address is 192.168.1.14&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Using this information, you can attach a debugger to the machine using the IP address and debug the process using the process id and thread id.&lt;br /&gt;
From our example:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;CMD&amp;quot;&amp;gt;&lt;br /&gt;
C:\&amp;gt; mydbg /ip:192.168.1.14 /pid:31172&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Customer ID==&lt;br /&gt;
Customer identifiers are proprietary.&lt;br /&gt;
&lt;br /&gt;
=API Considerations=&lt;br /&gt;
Internally, Truxton uses TGUIDs.&lt;br /&gt;
The external API intended for use by customers, uses [https://en.wikipedia.org/wiki/Universally_unique_identifier GUIDs] as trying to explain this to them would lead to never ending confusion.&lt;br /&gt;
It is far better if the Truxton libraries keep TGUIDs to themselves.&lt;br /&gt;
Like a family secret.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Depot_Types&amp;diff=426</id>
		<title>Depot Types</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Depot_Types&amp;diff=426"/>
		<updated>2020-05-18T20:25:10Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;There are several types of depot files in Truxton.  {| class=&amp;quot;wikitable&amp;quot; ! Name ! Value ! Meaning |- | &amp;lt;code&amp;gt;DEPOT_TYPE_UNKNOWN&amp;lt;/code&amp;gt; | style=&amp;quot;text-align:center;&amp;quot; | 0 | The t...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;There are several types of depot files in Truxton.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Value&lt;br /&gt;
! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DEPOT_TYPE_UNKNOWN&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 0&lt;br /&gt;
| The type is not known. You should never see this.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DEPOT_TYPE_FILE_CONTENTS&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 1&lt;br /&gt;
| The depot contains the contents of logical files.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DEPOT_TYPE_FREE_SPACE&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 2&lt;br /&gt;
| The depot contains unused space from media. This is typically aligned on a 512-byte boundary.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DEPOT_TYPE_THUMBNAILS&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 3&lt;br /&gt;
| The depot contains thumbnail images.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DEPOT_TYPE_REPORT_TEMPLATES&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 4&lt;br /&gt;
| The depot contains report templates. This is deprecated.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DEPOT_TYPE_OTHER&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 5&lt;br /&gt;
| The depot contains some form of un-typed data.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DEPOT_TYPE_SLACK&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 6&lt;br /&gt;
| The depot contains the slack space of logical files.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;DEPOT_TYPE_NOT_DEPOT_FORMAT&amp;lt;/code&amp;gt;&lt;br /&gt;
| style=&amp;quot;text-align:center;&amp;quot; | 7&lt;br /&gt;
| The file is not a depot. Only seen in the database.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Depot&amp;diff=425</id>
		<title>Depot</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Depot&amp;diff=425"/>
		<updated>2020-05-18T20:24:35Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;Truxton stores file contents in large files called depots. When you store a stream of bytes in a depot, the offset of the beginning of the stream in the depot and the depot le...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Truxton stores file contents in large files called depots.&lt;br /&gt;
When you store a stream of bytes in a depot, the offset of the beginning of the stream in the depot and the depot length are recorded in the database.&lt;br /&gt;
&lt;br /&gt;
=General Format=&lt;br /&gt;
The depot file format is very simple.&lt;br /&gt;
The header of the file is 64KB.&lt;br /&gt;
The remainder of the file is streams of bytes aligned on a page boundary, 4KB by default.&lt;br /&gt;
&lt;br /&gt;
==Header==&lt;br /&gt;
&lt;br /&gt;
The depot file header is a 32-byte signature followed by XML padded with enough spaces to fill out the 64KB beginning region.&lt;br /&gt;
The signature is:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
This is a Truxton Depot File!!&amp;lt;CR&amp;gt;&amp;lt;LF&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Sample===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
This is a Truxton Depot File!!&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; standalone=&amp;quot;yes&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;truxton&amp;gt;&lt;br /&gt;
 &amp;lt;depot_id&amp;gt;5D72324E-A079-1A6A-0E80-D81600000010&amp;lt;/depot_id&amp;gt;&lt;br /&gt;
 &amp;lt;page_size&amp;gt;4096&amp;lt;/page_size&amp;gt;&lt;br /&gt;
 &amp;lt;createdby&amp;gt;C:\Program Files\Truxton\Loader\Expand.exe&amp;lt;/createdby&amp;gt;&lt;br /&gt;
 &amp;lt;created&amp;gt;2019-09-06T10:17:50.744432Z&amp;lt;/created&amp;gt;&lt;br /&gt;
 &amp;lt;ipaddress&amp;gt;172.18.92.241&amp;lt;/ipaddress&amp;gt;&lt;br /&gt;
 &amp;lt;version&amp;gt;3.1.0.902&amp;lt;/version&amp;gt;&lt;br /&gt;
 &amp;lt;command_line&amp;gt;&amp;amp;quot;Expand.exe&amp;amp;quot; -controlledby 9622956017505175439&amp;lt;/command_line&amp;gt;&lt;br /&gt;
 &amp;lt;process_id&amp;gt;4244&amp;lt;/process_id&amp;gt;&lt;br /&gt;
 &amp;lt;bios_id&amp;gt;4C4C4544-0046-5310-804D-B2C04F515132&amp;lt;/bios_id&amp;gt;&lt;br /&gt;
 &amp;lt;machine_sid_hash&amp;gt;F7CD1C0A-F558-41EB-8994-8DC9F83F5896&amp;lt;/machine_sid_hash&amp;gt;&lt;br /&gt;
 &amp;lt;bios_serial_number&amp;gt;2FSMCC2&amp;lt;/bios_serial_number&amp;gt;&lt;br /&gt;
 &amp;lt;user_name&amp;gt;SYSTEM&amp;lt;/user_name&amp;gt;&lt;br /&gt;
 &amp;lt;computer_name&amp;gt;DESKTOP-5NRI5PO&amp;lt;/computer_name&amp;gt;&lt;br /&gt;
 &amp;lt;filename&amp;gt;5D72324E-A079-1A6A-0E80-D81600000010_expand.file.depot&amp;lt;/filename&amp;gt;&lt;br /&gt;
 &amp;lt;type&amp;gt;1&amp;lt;/type&amp;gt;&lt;br /&gt;
 &amp;lt;customer&amp;gt;D0814FE2-7794-5E33-DDD4-B6BB588CB6D4&amp;lt;/customer&amp;gt;&lt;br /&gt;
&amp;lt;/truxton&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML Fields===&lt;br /&gt;
We store a lot of information in the XML to aid anyone who has the unenviable task of recovering a depot file.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Name&lt;br /&gt;
! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;depot_id&amp;lt;/code&amp;gt;&lt;br /&gt;
| The identifier for this depot file. This should correspond to the &amp;lt;code&amp;gt;ID&amp;lt;/code&amp;gt; column of the &amp;lt;code&amp;gt;[[Depot Table|Depot]]&amp;lt;/code&amp;gt; table in the database.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;page_size&amp;lt;/code&amp;gt;&lt;br /&gt;
| The boundary on which entries in the depot will be aligned. It can be altered via the &amp;lt;code&amp;gt;depotpagesize&amp;lt;/code&amp;gt; setting.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;createdby&amp;lt;/code&amp;gt;&lt;br /&gt;
| The full path to the executable that created this file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;created&amp;lt;/code&amp;gt;&lt;br /&gt;
| The time the depot file was created.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;ipaddress&amp;lt;/code&amp;gt;&lt;br /&gt;
| The TCP/IP v4 address of the machine where the executable that created this file was running.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt;&lt;br /&gt;
| The version number of the process that created this file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;command_line&amp;lt;/code&amp;gt;&lt;br /&gt;
| The contents of the command line of the process that created this file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;process_id&amp;lt;/code&amp;gt;&lt;br /&gt;
| The id of the process that created this file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bios_id&amp;lt;/code&amp;gt;&lt;br /&gt;
| The unique id retrieved from the [https://en.wikipedia.org/wiki/BIOS BIOS] firmware.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;machine_sid_hash&amp;lt;/code&amp;gt;&lt;br /&gt;
| This is the &amp;lt;code&amp;gt;MachineGuid&amp;lt;/code&amp;gt; value retrieved from the registry key &amp;lt;code&amp;gt;HKLM/SOFTWARE/Microsoft/Cryptography&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;bios_serial_number&amp;lt;/code&amp;gt;&lt;br /&gt;
| The serial number of the machine running the process that created this file as reported by the [https://en.wikipedia.org/wiki/BIOS BIOS].&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;user_name&amp;lt;/code&amp;gt;&lt;br /&gt;
| The name of the account the process was running under.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;computer_name&amp;lt;/code&amp;gt;&lt;br /&gt;
| The name of the computer the process that created this file was running on.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;filename&amp;lt;/code&amp;gt;&lt;br /&gt;
| The original name of the depot file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;type&amp;lt;/code&amp;gt;&lt;br /&gt;
| The [[Depot Types|type]] of depot file.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;customer&amp;lt;/code&amp;gt;&lt;br /&gt;
| The [[TGUID#Customer_ID|identifier]] (license) of the customer that created this depot file.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===BIOS Fields===&lt;br /&gt;
Here's where Truxton gets the [https://en.wikipedia.org/wiki/BIOS BIOS] fields.&lt;br /&gt;
&lt;br /&gt;
====bios_id====&lt;br /&gt;
This [https://en.wikipedia.org/wiki/Universally_unique_identifier uuid] is retrieved from the [https://en.wikipedia.org/wiki/BIOS BIOS] using an [https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getsystemfirmwaretable API] call.&lt;br /&gt;
Specifically, the [https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf 'RSMB'] firmware table is retrieved and the &amp;lt;code&amp;gt;UUID&amp;lt;/code&amp;gt; field of the System Information (Type 1) structure is used.&lt;br /&gt;
&lt;br /&gt;
It can also be retrieved via:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bat&amp;quot;&amp;gt;&lt;br /&gt;
wmic path Win32_ComputerSystemProduct get UUID &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====bios_serial_number====&lt;br /&gt;
This string is retrieved from the [https://en.wikipedia.org/wiki/BIOS BIOS] using an [https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getsystemfirmwaretable API] call.&lt;br /&gt;
Specifically, the [https://www.dmtf.org/sites/default/files/standards/documents/DSP0134_2.7.1.pdf 'RSMB'] firmware table is retrieved and the &amp;lt;code&amp;gt;SerialNumber&amp;lt;/code&amp;gt; field of the System Information (Type 1) structure is used.&lt;br /&gt;
&lt;br /&gt;
Dell will store their service tags in this field.&lt;br /&gt;
&lt;br /&gt;
==Data Alignment==&lt;br /&gt;
While data is normally aligned on a 4KB boundary, it can be modified by the &amp;lt;code&amp;gt;depotpagesize&amp;lt;/code&amp;gt; setting which can be put into &amp;lt;code&amp;gt;TruxtonSettings.xml&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A special case of alignment is free space depots.&lt;br /&gt;
They are aligned on a 512 byte boundary as this most closely matches hard drive sectors.&lt;br /&gt;
If we were to align on 4KB or 8KB boundaries, carving would be nearly impossible.&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Developer%27s_Guide&amp;diff=424</id>
		<title>Developer's Guide</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Developer%27s_Guide&amp;diff=424"/>
		<updated>2020-05-18T20:24:04Z</updated>

		<summary type="html">&lt;p&gt;Admin: /* Truxton Stuff */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Truxton Developer's Guide=&lt;br /&gt;
&lt;br /&gt;
[[How to Write an ETL]]&lt;br /&gt;
&lt;br /&gt;
=Truxton Stuff=&lt;br /&gt;
&lt;br /&gt;
* [[How Truxton Works]]&lt;br /&gt;
* [[Truxton SDK]]&lt;br /&gt;
* [[Message Bus Drivers]]&lt;br /&gt;
* [[Connie]] - The Message Bus Concentrator&lt;br /&gt;
* [[Azure]]&lt;br /&gt;
* [[Debugging the Loader]]&lt;br /&gt;
* [[Add A New File Type]]&lt;br /&gt;
* [[Depot]] file format&lt;br /&gt;
* [[Load List]] file format&lt;br /&gt;
* [[Next Generation Database]]&lt;br /&gt;
* [[File Type Identification]]&lt;br /&gt;
* [[Database Schema]]&lt;br /&gt;
* [[VC Redistributables]]&lt;br /&gt;
* [[Configuration System]]&lt;br /&gt;
* [[Useful SQL Queries]]&lt;br /&gt;
* [[Temporary Filenames]]&lt;br /&gt;
* [[Watch Desktop Logs]]&lt;br /&gt;
* [[TruxtonService.xml]]&lt;br /&gt;
* [[ETL Stages]]&lt;br /&gt;
* [[Message Bus Messages]]&lt;br /&gt;
* [[How To Debug LE ETLs]]&lt;br /&gt;
* [[Installed Libraries]]&lt;br /&gt;
&lt;br /&gt;
=Data Types=&lt;br /&gt;
Truxton uses lots of defined constants and enums.&lt;br /&gt;
Here's a list of them.&lt;br /&gt;
&lt;br /&gt;
* [[Content Status]]&lt;br /&gt;
* [[DATA TYPE|Data Types]]&lt;br /&gt;
* [[Depot Types]]&lt;br /&gt;
* [[Entity Types]]&lt;br /&gt;
* [[Origin|File Content Origins]]&lt;br /&gt;
* [[Media Types]]&lt;br /&gt;
* [[Media Status]]&lt;br /&gt;
* [[Media Load Percentage]]&lt;br /&gt;
&lt;br /&gt;
=Exploitation=&lt;br /&gt;
* [[File Format Research]]&lt;br /&gt;
* [[SQLite Queries]]&lt;br /&gt;
* [[Time Epochs]]&lt;br /&gt;
&lt;br /&gt;
=Code Dependencies=&lt;br /&gt;
* [[MediaWiki]]&lt;br /&gt;
* [[TSK]]&lt;br /&gt;
* [[vcpkg]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Type_Icing_MMS_SMS&amp;diff=423</id>
		<title>Type Icing MMS SMS</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Type_Icing_MMS_SMS&amp;diff=423"/>
		<updated>2020-05-18T20:22:30Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{| style=&amp;quot;float:right;border:1px solid black&amp;quot; |+ Details | Defined Constant | &amp;lt;code&amp;gt;Type_Icing_MMS_SMS&amp;lt;/code&amp;gt; |- | File Type Value | 975 |- | Parent Type | Type_SQLite_Datab...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right;border:1px solid black&amp;quot;&lt;br /&gt;
|+ Details&lt;br /&gt;
| Defined Constant&lt;br /&gt;
| &amp;lt;code&amp;gt;Type_Icing_MMS_SMS&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Type Value&lt;br /&gt;
| 975&lt;br /&gt;
|-&lt;br /&gt;
| Parent Type&lt;br /&gt;
| [[Type_SQLite_Database|SQLite]]&lt;br /&gt;
|-&lt;br /&gt;
| Carve&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| Format Details&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| MIME Type&lt;br /&gt;
| &amp;lt;code&amp;gt;application/x-sqlite3&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Filename Extension&lt;br /&gt;
| &amp;lt;code&amp;gt;db&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Icing MMS SMS&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Android Icing MMS data&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
We have seen several versions of this database.&lt;br /&gt;
&lt;br /&gt;
=Queries=&lt;br /&gt;
Here's the queries Truxton uses to exploit the Icing MMS/SMS databases.&lt;br /&gt;
&lt;br /&gt;
==SMS==&lt;br /&gt;
Sometimes the &amp;lt;code&amp;gt;[sms]&amp;lt;/code&amp;gt; table doesn't exist in the database.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT [address],[date],[body],[type] FROM [sms]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Other times you must pull the SMS messages from the &amp;lt;code&amp;gt;[mmssms]&amp;lt;/code&amp;gt; table.&lt;br /&gt;
We do this when the &amp;lt;code&amp;gt;[mmssms]&amp;lt;/code&amp;gt; tables does not contain a column named &amp;lt;code&amp;gt;[attachment_data]&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT [_id],[msg_type],[address],[date],[body] FROM [mmssms] WHERE [msg_type] = 'sms'&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT [address],[date],[date_sent],[body],[attachment_data],[_id] FROM [mmssms]&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Type_Cygwin_Symlink&amp;diff=422</id>
		<title>Type Cygwin Symlink</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Type_Cygwin_Symlink&amp;diff=422"/>
		<updated>2020-05-18T20:21:57Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{| style=&amp;quot;float:right;border:1px solid black&amp;quot; |+ Details | Defined Constant | &amp;lt;code&amp;gt;Type_Cygwin_Symlink&amp;lt;/code&amp;gt; |- | File Type Value | 976 |- | Parent Type | None |- | Carve |...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right;border:1px solid black&amp;quot;&lt;br /&gt;
|+ Details&lt;br /&gt;
| Defined Constant&lt;br /&gt;
| &amp;lt;code&amp;gt;Type_Cygwin_Symlink&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Type Value&lt;br /&gt;
| 976&lt;br /&gt;
|-&lt;br /&gt;
| Parent Type&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| Carve&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| Format Details&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| MIME Type&lt;br /&gt;
| &amp;lt;code&amp;gt;application/octet-stream&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Filename Extension&lt;br /&gt;
| &amp;lt;code&amp;gt;dat&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Cygwin Symlink&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Cygwin Symbolic Link&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
* [https://stackoverflow.com/questions/18654162/enable-native-ntfs-symbolic-links-for-cygwin symlink]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Type_MPEG4Video_With_DRM&amp;diff=421</id>
		<title>Type MPEG4Video With DRM</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Type_MPEG4Video_With_DRM&amp;diff=421"/>
		<updated>2020-05-18T20:21:31Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{| style=&amp;quot;float:right;border:1px solid black&amp;quot; |+ Details | Defined Constant | &amp;lt;code&amp;gt;Type_MPEG4Video_With_DRM&amp;lt;/code&amp;gt; |- | File Type Value | 978 |- | Parent Type | Type_MPEG4V...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right;border:1px solid black&amp;quot;&lt;br /&gt;
|+ Details&lt;br /&gt;
| Defined Constant&lt;br /&gt;
| &amp;lt;code&amp;gt;Type_MPEG4Video_With_DRM&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Type Value&lt;br /&gt;
| 978&lt;br /&gt;
|-&lt;br /&gt;
| Parent Type&lt;br /&gt;
| [[Type_MPEG4Video|MP4]]&lt;br /&gt;
|-&lt;br /&gt;
| Carve&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| Format Details&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| MIME Type&lt;br /&gt;
| &amp;lt;code&amp;gt;video/mp4&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Filename Extension&lt;br /&gt;
| &amp;lt;code&amp;gt;mp4&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
MPEG 4 Video with DRM&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
MPEG 4 Video protected with DRM&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
* [http://www.ftyps.com/ ftyps]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Type_HEIF&amp;diff=420</id>
		<title>Type HEIF</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Type_HEIF&amp;diff=420"/>
		<updated>2020-05-18T20:21:17Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{| style=&amp;quot;float:right;border:1px solid black&amp;quot; |+ Details | Defined Constant | &amp;lt;code&amp;gt;Type_HEIF&amp;lt;/code&amp;gt; |- | File Type Value | 977 |- | Parent Type | MP4 |- |...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right;border:1px solid black&amp;quot;&lt;br /&gt;
|+ Details&lt;br /&gt;
| Defined Constant&lt;br /&gt;
| &amp;lt;code&amp;gt;Type_HEIF&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Type Value&lt;br /&gt;
| 977&lt;br /&gt;
|-&lt;br /&gt;
| Parent Type&lt;br /&gt;
| [[Type_MPEG4Video|MP4]]&lt;br /&gt;
|-&lt;br /&gt;
| Carve&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| Format Details&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| MIME Type&lt;br /&gt;
| &amp;lt;code&amp;gt;image/heif&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Filename Extension&lt;br /&gt;
| &amp;lt;code&amp;gt;heif&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
HEIF&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
High Efficiency Image File&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/High_Efficiency_Image_File_Format Wikipedia]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Type_XMP&amp;diff=419</id>
		<title>Type XMP</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Type_XMP&amp;diff=419"/>
		<updated>2020-05-18T20:19:58Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{| style=&amp;quot;float:right;border:1px solid black&amp;quot; |+ Details | Defined Constant | &amp;lt;code&amp;gt;Type_XMP&amp;lt;/code&amp;gt; |- | File Type Value | 551 |- | Parent Type | XML |- | Carve |...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right;border:1px solid black&amp;quot;&lt;br /&gt;
|+ Details&lt;br /&gt;
| Defined Constant&lt;br /&gt;
| &amp;lt;code&amp;gt;Type_XMP&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Type Value&lt;br /&gt;
| 551&lt;br /&gt;
|-&lt;br /&gt;
| Parent Type&lt;br /&gt;
| [[Type_XML|XML]]&lt;br /&gt;
|-&lt;br /&gt;
| Carve&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| Format Details&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| MIME Type&lt;br /&gt;
| &amp;lt;code&amp;gt;text/xml&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Filename Extension&lt;br /&gt;
| &amp;lt;code&amp;gt;xmp&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
XMP&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Extensible Metadata Platform&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Extensible_Metadata_Platform XMP]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Type_Base64_Encoded_Data&amp;diff=418</id>
		<title>Type Base64 Encoded Data</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Type_Base64_Encoded_Data&amp;diff=418"/>
		<updated>2020-05-18T20:19:44Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{| style=&amp;quot;float:right;border:1px solid black&amp;quot; |+ Details | Defined Constant | &amp;lt;code&amp;gt;Type_Base64_Encoded_Data&amp;lt;/code&amp;gt; |- | File Type Value | 550 |- | Parent Type | Type_ASCII_...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right;border:1px solid black&amp;quot;&lt;br /&gt;
|+ Details&lt;br /&gt;
| Defined Constant&lt;br /&gt;
| &amp;lt;code&amp;gt;Type_Base64_Encoded_Data&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Type Value&lt;br /&gt;
| 550&lt;br /&gt;
|-&lt;br /&gt;
| Parent Type&lt;br /&gt;
| [[Type_ASCII_Text|ASCII Text]]&lt;br /&gt;
|-&lt;br /&gt;
| Carve&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| Format Details&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| MIME Type&lt;br /&gt;
| &amp;lt;code&amp;gt;application/octet-stream&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Filename Extension&lt;br /&gt;
| &amp;lt;code&amp;gt;b64&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Base64 Encoded Data&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Base 64 encoded data&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Type_UUEncoded_Data&amp;diff=417</id>
		<title>Type UUEncoded Data</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Type_UUEncoded_Data&amp;diff=417"/>
		<updated>2020-05-18T20:19:26Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{| style=&amp;quot;float:right;border:1px solid black&amp;quot; |+ Details | Defined Constant | &amp;lt;code&amp;gt;Type_UUEncoded_Data&amp;lt;/code&amp;gt; |- | File Type Value | 549 |- | Parent Type | Type_ASCII_Text|...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right;border:1px solid black&amp;quot;&lt;br /&gt;
|+ Details&lt;br /&gt;
| Defined Constant&lt;br /&gt;
| &amp;lt;code&amp;gt;Type_UUEncoded_Data&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Type Value&lt;br /&gt;
| 549&lt;br /&gt;
|-&lt;br /&gt;
| Parent Type&lt;br /&gt;
| [[Type_ASCII_Text|ASCII Text]]&lt;br /&gt;
|-&lt;br /&gt;
| Carve&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| Format Details&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| MIME Type&lt;br /&gt;
| &amp;lt;code&amp;gt;application/octet-stream&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Filename Extension&lt;br /&gt;
| &amp;lt;code&amp;gt;uue&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
UUEncoded Data&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Unix-to-Unix encoded data&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Type_Credential_History&amp;diff=416</id>
		<title>Type Credential History</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Type_Credential_History&amp;diff=416"/>
		<updated>2020-05-18T20:19:11Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{| style=&amp;quot;float:right;border:1px solid black&amp;quot; |+ Details | Defined Constant | &amp;lt;code&amp;gt;Type_Credential_History&amp;lt;/code&amp;gt; |- | File Type Value | 548 |- | Parent Type | None |- | Carv...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right;border:1px solid black&amp;quot;&lt;br /&gt;
|+ Details&lt;br /&gt;
| Defined Constant&lt;br /&gt;
| &amp;lt;code&amp;gt;Type_Credential_History&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Type Value&lt;br /&gt;
| 548&lt;br /&gt;
|-&lt;br /&gt;
| Parent Type&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| Carve&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| Format Details&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| MIME Type&lt;br /&gt;
| &amp;lt;code&amp;gt;application/octet-stream&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Filename Extension&lt;br /&gt;
| &amp;lt;code&amp;gt;bin&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CREDHIST&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Windows DPAPI Credential History&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
* [http://www.passcape.com/windows_password_recovery_dpapi_credhist CREDHIST]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Type_ipconfig_Report&amp;diff=415</id>
		<title>Type ipconfig Report</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Type_ipconfig_Report&amp;diff=415"/>
		<updated>2020-05-18T20:18:57Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{| style=&amp;quot;float:right;border:1px solid black&amp;quot; |+ Details | Defined Constant | &amp;lt;code&amp;gt;Type_ipconfig_Report&amp;lt;/code&amp;gt; |- | File Type Value | 547 |- | Parent Type | Type_ASCII_Text...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right;border:1px solid black&amp;quot;&lt;br /&gt;
|+ Details&lt;br /&gt;
| Defined Constant&lt;br /&gt;
| &amp;lt;code&amp;gt;Type_ipconfig_Report&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Type Value&lt;br /&gt;
| 547&lt;br /&gt;
|-&lt;br /&gt;
| Parent Type&lt;br /&gt;
| [[Type_ASCII_Text|ASCII Text]]&lt;br /&gt;
|-&lt;br /&gt;
| Carve&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| Format Details&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| MIME Type&lt;br /&gt;
| &amp;lt;code&amp;gt;text/plain&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Filename Extension&lt;br /&gt;
| &amp;lt;code&amp;gt;txt&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
ipconfig Report&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Windows TCP/IP Configuration Report&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Type_Chrome_Extension&amp;diff=414</id>
		<title>Type Chrome Extension</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Type_Chrome_Extension&amp;diff=414"/>
		<updated>2020-05-18T20:18:45Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{| style=&amp;quot;float:right;border:1px solid black&amp;quot; |+ Details | Defined Constant | &amp;lt;code&amp;gt;Type_Chrome_Extension&amp;lt;/code&amp;gt; |- | File Type Value | 546 |- | Parent Type | None |- | Carve...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right;border:1px solid black&amp;quot;&lt;br /&gt;
|+ Details&lt;br /&gt;
| Defined Constant&lt;br /&gt;
| &amp;lt;code&amp;gt;Type_Chrome_Extension&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Type Value&lt;br /&gt;
| 546&lt;br /&gt;
|-&lt;br /&gt;
| Parent Type&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| Carve&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| Format Details&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| MIME Type&lt;br /&gt;
| &amp;lt;code&amp;gt;application/octet-stream&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Filename Extension&lt;br /&gt;
| &amp;lt;code&amp;gt;crx&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Chrome Extension&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Chrome Browser Extension&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
* [https://developer.chrome.com/extensions/crx Chrome Extension]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Type_CodeView_Section&amp;diff=413</id>
		<title>Type CodeView Section</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Type_CodeView_Section&amp;diff=413"/>
		<updated>2020-05-18T20:18:29Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{| style=&amp;quot;float:right;border:1px solid black&amp;quot; |+ Details | Defined Constant | &amp;lt;code&amp;gt;Type_CodeView_Section&amp;lt;/code&amp;gt; |- | File Type Value | 545 |- | Parent Type | None |- | Carve...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right;border:1px solid black&amp;quot;&lt;br /&gt;
|+ Details&lt;br /&gt;
| Defined Constant&lt;br /&gt;
| &amp;lt;code&amp;gt;Type_CodeView_Section&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Type Value&lt;br /&gt;
| 545&lt;br /&gt;
|-&lt;br /&gt;
| Parent Type&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| Carve&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| Format Details&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| MIME Type&lt;br /&gt;
| &amp;lt;code&amp;gt;application/octet-stream&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Filename Extension&lt;br /&gt;
| &amp;lt;code&amp;gt;pdb&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
CodeView Section&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Windows Executable Debugging Info&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
* [http://waleedassar.blogspot.com/2014/02/pe-timedatestamp-viewer.html CodeView Section]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Type_Git_Pack_Index&amp;diff=412</id>
		<title>Type Git Pack Index</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Type_Git_Pack_Index&amp;diff=412"/>
		<updated>2020-05-18T20:18:13Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{| style=&amp;quot;float:right;border:1px solid black&amp;quot; |+ Details | Defined Constant | &amp;lt;code&amp;gt;Type_Git_Pack_Index&amp;lt;/code&amp;gt; |- | File Type Value | 544 |- | Parent Type | None |- | Carve |...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right;border:1px solid black&amp;quot;&lt;br /&gt;
|+ Details&lt;br /&gt;
| Defined Constant&lt;br /&gt;
| &amp;lt;code&amp;gt;Type_Git_Pack_Index&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Type Value&lt;br /&gt;
| 544&lt;br /&gt;
|-&lt;br /&gt;
| Parent Type&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| Carve&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| Format Details&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| MIME Type&lt;br /&gt;
| &amp;lt;code&amp;gt;application/octet-stream&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Filename Extension&lt;br /&gt;
| &amp;lt;code&amp;gt;idx&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Git Pack Index&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Git Pack Index&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
* [https://codewords.recurse.com/issues/three/unpacking-git-packfiles/ Git Pack Index]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Type_Git_Pack&amp;diff=411</id>
		<title>Type Git Pack</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Type_Git_Pack&amp;diff=411"/>
		<updated>2020-05-18T20:17:57Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{| style=&amp;quot;float:right;border:1px solid black&amp;quot; |+ Details | Defined Constant | &amp;lt;code&amp;gt;Type_Git_Pack&amp;lt;/code&amp;gt; |- | File Type Value | 543 |- | Parent Type | None |- | Carve | No |-...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right;border:1px solid black&amp;quot;&lt;br /&gt;
|+ Details&lt;br /&gt;
| Defined Constant&lt;br /&gt;
| &amp;lt;code&amp;gt;Type_Git_Pack&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Type Value&lt;br /&gt;
| 543&lt;br /&gt;
|-&lt;br /&gt;
| Parent Type&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| Carve&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| Format Details&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| MIME Type&lt;br /&gt;
| &amp;lt;code&amp;gt;application/octet-stream&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Filename Extension&lt;br /&gt;
| &amp;lt;code&amp;gt;pack&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Git Pack&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Git Pack&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
* [https://codewords.recurse.com/issues/three/unpacking-git-packfiles/ Git Pack]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>https://truxwiki.com/index.php?title=Type_Apple_Core_Audio&amp;diff=410</id>
		<title>Type Apple Core Audio</title>
		<link rel="alternate" type="text/html" href="https://truxwiki.com/index.php?title=Type_Apple_Core_Audio&amp;diff=410"/>
		<updated>2020-05-18T20:17:42Z</updated>

		<summary type="html">&lt;p&gt;Admin: Created page with &amp;quot;{| style=&amp;quot;float:right;border:1px solid black&amp;quot; |+ Details | Defined Constant | &amp;lt;code&amp;gt;Type_Apple_Core_Audio&amp;lt;/code&amp;gt; |- | File Type Value | 542 |- | Parent Type | None |- | Carve...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| style=&amp;quot;float:right;border:1px solid black&amp;quot;&lt;br /&gt;
|+ Details&lt;br /&gt;
| Defined Constant&lt;br /&gt;
| &amp;lt;code&amp;gt;Type_Apple_Core_Audio&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| File Type Value&lt;br /&gt;
| 542&lt;br /&gt;
|-&lt;br /&gt;
| Parent Type&lt;br /&gt;
| None&lt;br /&gt;
|-&lt;br /&gt;
| Carve&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| Format Details&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| MIME Type&lt;br /&gt;
| &amp;lt;code&amp;gt;audio/x-caf&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Filename Extension&lt;br /&gt;
| &amp;lt;code&amp;gt;caf&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Apple Core Audio&lt;br /&gt;
&lt;br /&gt;
=Description=&lt;br /&gt;
Apple Core Audio&lt;br /&gt;
&lt;br /&gt;
=Details=&lt;br /&gt;
* [https://developer.apple.com/library/mac/documentation/MusicAudio/Reference/CAFSpec/CAF_spec/CAF_spec.html#//apple_ref/doc/uid/TP40001862-CH210-SW1 Apple Core Audio]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>