From 93bf2805ba66b628d0187637c85f86f2ae7eb4a1 Mon Sep 17 00:00:00 2001 From: stderr64 Date: Sun, 2 Aug 2026 23:25:46 +0300 Subject: Added RNG based encryption to the code to extract binary from define value --- extract_decoded_executable/extractor.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'extract_decoded_executable/extractor.c') diff --git a/extract_decoded_executable/extractor.c b/extract_decoded_executable/extractor.c index 3a53536..5bda48d 100644 --- a/extract_decoded_executable/extractor.c +++ b/extract_decoded_executable/extractor.c @@ -1,9 +1,25 @@ #include #include +#include +#include #include #include +#include #include #include +#include "rng.h" + +void decrypt_decoded_bytes( unsigned char *encrypted_bytes, size_t byte_count ){ + unsigned char dec_key[256]; + memset( (void*)&dec_key, 0, sizeof(dec_key) ); + size_t recv_key_size = 0; + for ( ; recv_key_size < 256; recv_key_size++ ) + dec_key[recv_key_size] = (unsigned char)get_random_int( 1, 255 ); + size_t c_byte = 0; + for ( ; c_byte < byte_count; c_byte++ ) + encrypted_bytes[c_byte] = encrypted_bytes[c_byte] ^ dec_key[byte_count % 255]; + return; +} void extract_contained_binary(){ double bin_hex_div = (double)strlen((const char*)BIN_HEX) / 2; @@ -33,6 +49,7 @@ void extract_contained_binary(){ } decoded_bytes[dec_byte_pos] = decoded_byte; } + decrypt_decoded_bytes( decoded_bytes, hex_byte_count ); int out_fd = open( "/tmp/test_output_binary", O_RDWR | O_CREAT, 0755 ); if ( out_fd == -1 ){ fprintf( stderr, "Error: failed to open /tmp/test_output_binary for writing: %s\n", strerror(errno) ); @@ -52,6 +69,7 @@ void extract_contained_binary(){ } int main( int argc, char *const *args ){ + init_rng(); extract_contained_binary(); return 0; } -- cgit v1.3.1-10-gc9f91