Truxton etl send me local file

From truxwiki.com
Jump to navigation Jump to search

This is used during the development of your exploitation program. It will open the file and put a message into your message queue.

Syntax

void truxton_etl_send_me_local_file( uint64_t etl_handle, uint16_t file_type, uint16_t calculate_hash, char const * file_name );

Parameters

etl_handle

The handle created by the truxton_etl_create call.

file_type

The file_type field of the incoming message will be tagged set to this value.

calculate_hash

By default, Truxton will calculate the MD5 hash of the file's contents to populate the md5 member of the message before sending it to you. However, this can take some time if you are dealing with large files. If you don't care about the hash value, set calculate_hash to zero and the hash will be replaced with a random value.

file_name

The path to the file to open and send to your message queue. Ultimately, this value will be stored in the depot_filename field of the incoming message.

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_local_file( app, Type_MPEG4Video , 0, "C:\\Test Files\\Video\\Fragmented\\Recovered Video.mp4" );

    // 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 );
}