CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
Results 1 to 6 of 6

Threaded View

  1. #1
    Join Date
    Feb 2013
    Posts
    27

    Array of bytes to string

    Using a table with the 256 bytes as strings, said table is used as a reference in the 2 functions of this code. Functions who make the conversion such as the title establishes, and in the inverse way too.

    The main adventage is that you don't need any knowledge about managing bytes with c++..

    Code:
    /********************************************************************************************************
    
    // By 85
    // boyscout_arg@hotmail.com
    // etalking.com.ar
    // David Riedel
    // 2013
    
    *********************************************************************************************************/
    
    #include <windows.h>
    #include <stdlib.h>
    #include <stdio.h>
    
    /////
    /////////////////////////////////////
    
    char* hextabla[] = { //256 BYTES
    	"00","01","02","03","04","05","06","07","08","09",
    	"0A","0B","0C","0D","0E","0F","10","11","12","13",
    	"14","15","16","17","18","19","1A","1B","1C","1D",
    	"1E","1F","20","21","22","23","24","25","26","27",
    	"28","29","2A","2B","2C","2D","2E","2F","30","31",
    	"32","33","34","35","36","37","38","39","3A","3B",
    	"3C","3D","3E","3F","40","41","42","43","44","45",
    	"46","47","48","49","4A","4B","4C","4D","4E","4F",
    	"50","51","52","53","54","55","56","57","58","59",
    	"5A","5B","5C","5D","5E","5F","60","61","62","63",
    	"64","65","66","67","68","69","6A","6B","6C","6D",
    	"6E","6F","70","71","72","73","74","75","76","77",
    	"78","79","7A","7B","7C","7D","7E","7F","80","81",
    	"82","83","84","85","86","87","88","89","8A","8B",
    	"8C","8D","8E","8F","90","91","92","93","94","95",
    	"96","97","98","99","9A","9B","9C","9D","9E","9F",
    	"A0","A1","A2","A3","A4","A5","A6","A7","A8","A9",
    	"AA","AB","AC","AD","AE","AF","B0","B1","B2","B3",
    	"B4","B5","B6","B7","B8","B9","BA","BB","BC","BD",
    	"BE","BF","C0","C1","C2","C3","C4","C5","C6","C7",
    	"C8","C9","CA","CB","CC","CD","CE","CF","D0","D1",
    	"D2","D3","D4","D5","D6","D7","D8","D9","DA","DB",
    	"DC","DD","DE","DF","E0","E1","E2","E3","E4","E5",
    	"E6","E7","E8","E9","EA","EB","EC","ED","EE","EF",
    	"F0","F1","F2","F3","F4","F5","F6","F7","F8","F9",
    	"FA","FB","FC","FD","FE","FF",
    };
    
    void Test1(BYTE* array_de_bytes, char* cadena_de_bytes_en_formato_string){ //Cadena de bytes a string
    
    	for(int i=0; i<(int)strlen( (char*)array_de_bytes); i++)
    		strcat(cadena_de_bytes_en_formato_string,hextabla[(int)array_de_bytes[i]]);
    	printf(cadena_de_bytes_en_formato_string);
    	printf("\n");
    }
    
    //////////
    
    void Test2(char* cadena_de_bytes, BYTE* cadena_de_bytes_resultante){//String a cadena de bytes
    
    	int bytes=0;
    	for(int i=0; i<(int)strlen( cadena_de_bytes); i+=2){
    		for(int j=0; j<256; j++){
    			if( cadena_de_bytes[i]==hextabla[j][0] && cadena_de_bytes[i+1]==hextabla[j][1] ){
    				cadena_de_bytes_resultante[bytes++]=j;
    				j=256;
    			}
    		}
    	}
    	for(int x=0; x<(int)strlen( cadena_de_bytes)/2; x++)
    		printf("%X",*(cadena_de_bytes_resultante+x));
    	printf("\n");
    }
    
    ///////
    
    int main(){//Programa
    
    	BYTE* array_de_bytes = (BYTE*)"\x68\x68\x68\x68\x68\x68\xFF\xFF\xFF\xFF\x69";
    	char cadena_de_bytes_en_formato_string[256];
    	memset(cadena_de_bytes_en_formato_string,0,sizeof(cadena_de_bytes_en_formato_string));
    	printf("TEST1:\n");
    	Test1(array_de_bytes, cadena_de_bytes_en_formato_string);
    	system("pause");
    
    	char* cadena_de_bytes = (char*)"686868686868FFFFFFFF69\0";
    	BYTE* cadena_de_bytes_resultante = (BYTE*)"\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00";
    	printf("TEST2:\n");
    	Test2(cadena_de_bytes, cadena_de_bytes_resultante);
    	system("pause");
    
    return 0;
    }
    ima leave the project in MSVCPP 6, see attachment
    It's ready to compile in 'Release' mode.
    Attached Files Attached Files

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  





Click Here to Expand Forum to Full Width

Featured