domingo, 10 de octubre de 2010

HexDump

HexDump es un visor hexadecimal simple que se utiliza principalmente a través de la linea de comandos. Para usarlo simplemente ejecútalo con el nombre de un archivo como primer argumento:

HexDump.exe file.ext

Es muy útil en este caso redireccionar la salida a un archivo de texto para que quede guardado y pueda verse con mas calma:

HexDump.exe file.ext > file_hex.txt

Screenshot

DescargarSource Code

Código fuente

#include <stdio.h>

int main(int argc, char* argv[])
{
    if (argc != 2)
    {
        printf("Usage:  HexDump file  \n");
        return 1;
    }

    FILE *file = fopen(argv[1],"rb");
    if (!file)
    {
        printf("El fichero no existe o no puede ser abierto.\n");
        return 2;
    }

    char d[] = "                \0";
    int bytes,index = 0;

    while (bytes=fread(d, 1, 16, file))
    {
        printf("%08X%c",index+=16,179);

        for (int i=0; i<bytes; i++)
        {
            printf(" %02X",(unsigned char)(d[i]));
            if ((i+1)%4 == 0) printf(" ");
            if (d[i] == 127 || d[i]< -127 || (d[i]>=0 && d[i]<=31)) d[i] = '.';
        }

        if (bytes < 16)
        {
            for (int i=bytes; i<16; i++)
            {
                printf("   ");
                if ((i+1)%4 == 0) printf(" ");
            }
            d[bytes] = '\0';
        }

        printf("%c%s\n",179,d);
    }
    fclose(file);
    return 0;
}

Comparte o puntua esta publicación ▼

0 comentarios:

Publicar un comentario