Difference between revisions of "Truxton etl send me hash"

From truxwiki.com
Jump to navigation Jump to search
Line 1: Line 1:
 
This is used during the development of your exploitation program.
 
This is used during the development of your exploitation program.
It will go to Truxton, find the file with the given hash and place it into your message queue.
+
It will go to Truxton, find the first file with the given hash and place it into your message queue.
  
 
=Syntax=
 
=Syntax=
<syntaxhighlight lang="C">
+
<source lang="C">
 
void truxton_etl_send_me_hash( uint64_t etl_handle, char const * md5_hash_string );
 
void truxton_etl_send_me_hash( uint64_t etl_handle, char const * md5_hash_string );
</syntaxhighlight>
+
</source>
  
 
=Parameters=
 
=Parameters=
 
==<code>etl_handle</code>==
 
==<code>etl_handle</code>==
 
 
The handle created by the [[truxton_etl_create]] call.
 
The handle created by the [[truxton_etl_create]] call.
  
Line 19: Line 18:
 
This API is usually used in situations where one particular file out of a group is failing.
 
This API is usually used in situations where one particular file out of a group is failing.
 
This lets you deal with just the problem file.
 
This lets you deal with just the problem file.
 +
Only one file that matches your hash will be put into your queue.
  
 
=Sample=
 
=Sample=
<syntaxhighlight lang="C" highlight="17">
+
<source lang="C" highlight="15">
 
#include <TruxtonCAPI.h>
 
#include <TruxtonCAPI.h>
  
Line 27: Line 27:
 
{
 
{
 
     char file_id[ 65 ];
 
     char file_id[ 65 ];
 
    int exit_loop = 0;
 
  
 
     uint64_t message = 0;
 
     uint64_t message = 0;
Line 40: Line 38:
 
     truxton_etl_send_me_hash( app, "baa51f0cc8361660df911e06e7637485");
 
     truxton_etl_send_me_hash( app, "baa51f0cc8361660df911e06e7637485");
  
     while( exit_loop == 0 )
+
    // Pause here until we get a message from the "SampleC" message queue
 +
    message = truxton_etl_get_message( app );
 +
 
 +
     while( message != 0 )
 
     {
 
     {
         message = truxton_etl_get_message( app );
+
         // Do something with the message
  
         if ( message != 0 )
+
         memset( file_id, 0x00, sizeof( file_id ) );
         {
+
         truxton_message_get_file_id( message, file_id, sizeof( file_id ) );
            // Do something with the message
 
  
            memset( file_id, 0x00, sizeof( file_id ) );
+
        printf( "Received file id %s\n", file_id );
            truxton_message_get_file_id( message, file_id, sizeof( file_id ) );
 
  
            printf( "Received file id %s\n", file_id );
+
        truxton_message_destroy( message );
  
            truxton_message_destroy( message );
+
        // Pause here until we get another message from the "SampleC" message queue
         }
+
         message = truxton_etl_get_message( app );
        else
 
        {
 
            exit_loop = 1;
 
        }
 
 
     }
 
     }
  
 
     truxton_etl_destroy( app );
 
     truxton_etl_destroy( app );
 
}
 
}
</syntaxhighlight>
+
</source>

Revision as of 04:09, 5 December 2020

This is used during the development of your exploitation program. It will go to Truxton, find the first file with the given hash and place it into your message queue.

Syntax

void truxton_etl_send_me_hash( uint64_t etl_handle, char const * md5_hash_string );

Parameters

etl_handle

The handle created by the truxton_etl_create call.

md5_hash_string

An MD5 hash in string form. Only the first file with the matching hash will put into the message queue.

Remarks

This API is usually used in situations where one particular file out of a group is failing. This lets you deal with just the problem file. Only one file that matches your hash will be put into your queue.

Sample

#include <TruxtonCAPI.h>

void main( void )
{
    char file_id[ 65 ];

    uint64_t message = 0;
    uint64_t app = truxton_etl_create();

    truxton_etl_set_application_name( app, "Sample C ETL" );
    truxton_etl_set_depot_type_name( app, "custom" );
    truxton_etl_set_queue_name( app, "SampleC" );

    // FOR TESTING PURPOSES ONLY!
    truxton_etl_send_me_hash( app, "baa51f0cc8361660df911e06e7637485");

    // Pause here until we get a message from the "SampleC" message queue
    message = truxton_etl_get_message( app );

    while( message != 0 )
    {
        // Do something with the message

        memset( file_id, 0x00, sizeof( file_id ) );
        truxton_message_get_file_id( message, file_id, sizeof( file_id ) );

        printf( "Received file id %s\n", file_id );

        truxton_message_destroy( message );

        // Pause here until we get another message from the "SampleC" message queue
        message = truxton_etl_get_message( app );
    }

    truxton_etl_destroy( app );
}