¿Es posible ver un binario en unos y ceros?

Con esto quiero decir, ¿es posible escribir un progtwig en C, comstackrlo y luego ver cómo se ve en unos y ceros? Sería genial actuar como un hacker 1337 y pretender que se progtwig en unos y ceros: p.

Puedes usar xxd :

xxd -b filename 
 C: \ opt \ bin> xxd -b ctags.exe |  cabeza
 0000000: 01001101 01011010 10010000 00000000 00000011 00000000 MZ ....
 0000006: 00000000 00000000 00000100 00000000 00000000 00000000 ......
 000000c: 11111111 11111111 00000000 00000000 10111000 00000000 ......
 0000012: 00000000 00000000 00000000 00000000 00000000 00000000 ......
 0000018: 01000000 00000000 00000000 00000000 00000000 00000000 @ .....
 000001e: 00000000 00000000 00000000 00000000 00000000 00000000 ......
 0000024: 00000000 00000000 00000000 00000000 00000000 00000000 ......
 000002a: 00000000 00000000 00000000 00000000 00000000 00000000 ......
 0000030: 00000000 00000000 00000000 00000000 00000000 00000000 ......
 0000036: 00000000 00000000 00000000 00000000 00000000 00000000 ......

Solo para hacer esto un poco más relacionado con la progtwigción:

 #include  #include  const char *lookup[] = { /* 0 1 2 3 4 5 6 7 */ "0000", "0001", "0010", "0011", "0100", "0101", "0110", "0111", /* 8 9 ABCDEF */ "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111", }; int main(int argc, char *argv[]) { FILE *fin; int c; size_t bytes_read = 0; if ( argc != 2 ) { fputs("No filename provided", stderr); exit(EXIT_FAILURE); } fin = fopen(argv[1], "rb"); if ( !fin ) { fprintf(stderr, "Cannot open %s\n", argv[1]); exit(EXIT_FAILURE); } while ( EOF != (c = fgetc(fin)) ) { printf("%s", lookup[ (c & 0xf0) >> 4 ]); printf("%s", lookup[ (c & 0x0f) ]); bytes_read += 1; if ( bytes_read % 9 == 0 ) { puts(""); } } fclose(fin); return EXIT_SUCCESS; } 

Salida:

 C: \ Temp> binary.exe c: \ opt \ bin \ ctags.exe |  cabeza
 01001101010110101001000000000000000011000000000000000000000000000100
 0000000000000000000000001111111111111100000000000000001011100000000
 000000000000000000000000000000000000000000000001000000000000000000
 000000000000000000000000000000000000000000000000000000000000000000
 000000000000000000000000000000000000000000000000000000000000000000
 000000000000000000000000000000000000000000000000000000000000000000
 0000000000000000000000000000000000000000000000001110000000000000000
 000000000000111000011111101110100000111000000000101101000000100111001
 0010000110111000000000010100110011001101001001010101000110100001101001
 011100110010000001110000011100100110111101100111011100100110000101101101

Utilice hexdump o un editor hexadecimal para ver un binario en bytes hexadecimales.

Hexadecimal es simplemente una forma más compacta de ver binarios. Cada dígito hexadecimal (0-F) representa cuatro bits. Por ejemplo, 0xF en decimal es 15 y en binario es 1111.

¿Quieres decir que no puedes hacer comstackción y traducir los códigos de operación a binarios en tu cabeza?

De hecho, una de las computadoras en las que aprendí a progtwigr tenía que activar el código de arranque mediante los interruptores del panel frontal. Necesitaba ingresar suficiente código para arrancar el cargador desde la unidad de disquete de 8 “y cargar el sistema operativo. Puede ver una imagen de uno aquí . Realmente necesitaba saber el binario para los códigos de operación del cargador de arranque.

Claro que es posible. Puedes escribir tu propio visor usando la información en esta publicación .