|
Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.
Mensajes - eightyfive
Páginas: [1]
1
« en: Viernes 22 de Febrero de 2013, 19:53 »
Hace uso de una tabla con los 256 bytes a modo de strings, dicha tabla se usa como referencia en dos funciones las cuales son las que hacen la conversión tal como el título dice, y a la inversa también. Se que no es la única ni la mejor forma de hacerlo, pero como puede apreciarse no se requere saber nada acerca de manejo de bytes para usar este código. Creo que esa es la ventaja. Atte /********************************************************************************************************
// 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; } voy a dejar el proyecto en MSVCPP 6 está listo para compilar en modo 'Release', pero si sólo quitan el archivo .cpp para usarlo en otro compilador, compilen en modo Release también.. DESCARGA
Páginas: [1]
|
|
|