Difference between revisions of "Truxton artifact set length"

From truxwiki.com
Jump to navigation Jump to search
(Created page with "This records the number of bytes of raw data where the artifact was found. This corresponds to the <code>[Length]</code> column of the <code><nowiki>[</nowiki>Entity Table|E...")
 
Line 3: Line 3:
 
=Syntax=
 
=Syntax=
 
<source lang="C">
 
<source lang="C">
void truxton_artifact_set_length( uint64_t entity_handle, uint64_t length );
+
void truxton_artifact_set_length( uint64_t artifact_handle, uint64_t length );
 
</source>
 
</source>
  

Revision as of 07:39, 9 November 2020

This records the number of bytes of raw data where the artifact was found. This corresponds to the [Length] column of the [Entity] table.

Syntax

void truxton_artifact_set_length( uint64_t artifact_handle, uint64_t length );

Parameters

artifact_handle

The artifact instance. This handle comes from calling truxton_artifact_create().

length

The number of raw bytes that make up the artifact.

Sample

This sample supposes you are a file expander that knows a user's pin code is optionally stored at a fixed location in the file.

void expand_file(uint64_t file_handle)
{
   char pin_code[5];

   pin_code[0] = ' ';
   pin_code[1] = ' ';
   pin_code[2] = ' ';
   pin_code[3] = ' ';
   pin_code[4] = 0x00;

   truxton_file_seek( file_handle, 3772, SEEK_SET );

   if ( truxton_file_read( file_handle, pin_code, 4 ) == 4 )
   {
      if ( isdigit(pin_code[0]) &&
           isdigit(pin_code[1]) &&
           isdigit(pin_code[2]) &&
           isdigit(pin_code[3]) )
      {
         uint64_t artifact = truxton_file_create_artifact(file_handle);

         truxton_artifact_set_name( artifact, "PIN Code" );
         truxton_artifact_set_data_type( artifact, DATA_TYPE_ASCII );
         truxton_artifact_set_offset( artifact, 3772 );
         truxton_artifact_set_length( artifact, 4 );
         truxton_artifact_set_value( artifact, pin_code );
         truxton_artifact_set_type( artifact, ENTITY_TYPE_PASSWORD );

         if ( truxton_artifact_save( artifact ) != 0 )
         {
             char id[ 50 ];

             truxton_artifact_get_id( artifact, id, sizeof( id ) );

             printf( "Artifact saved as ID %s\n", id );
         }
         else
         {
             printf( "Could not save artifact\n" );
         {

         truxton_artifact_destroy( artifact );
      }
   }
}