Skip to content

Decoding stream data

Raphael Kim edited this page Feb 21, 2017 · 1 revision

An example of decoding stream data.

C++ code

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include "endetool.h"

int main( int argc, char** argv )
{
	// Load a file.
	FILE* fp = fopen( "encoded.bin", "rb" );
	if ( fp == NULL )
		return 0;
		
	fseek(fp, 0L, SEEK_END);
	int fsz = = ftell(fp);
	fseek(fp, 0L, SEEK_SET);
	
	if ( fsz == 0 )
	{
		fclose( fp );
		return 0;
	}
	
	char* buffer = new char[ fsz ];
	if ( buffer == NULL )
	{
		fclose( fp );
		return 0;
	}
	
	memset( buffer, 0, fsz );
	
	fread( buffer, 1, fsz, fp );
	fclose( fp );
	
	char* encbuffer = NULL;

	EnDeTool ende;
	
	// Set a cryptkey in maximum 32 bytes. (recommend to use in minimal 4 bytes)
	ende.cryptkey( "123456789ABCDEFGHIJKLMNOPQRSTUVW" );
	
	// Then input source and out buffer.
	int retsz = ende.decodebinary( buffer, fsz, encbuffer );

	if ( retsz > 0 )
	{
		fp = fopen( "out.bin", "wb" );
		if ( fp != NULL )
		{
			fwrite( encbuffer, 1, retsz, fp );
			fclose( fp );
		}
		
		delete[] encbuffer;
	}
	
	delete[] buffer;
	
	return 0;
}
Clone this wiki locally