es.phhsnews.com


es.phhsnews.com / Números Mágicos: Los Códigos Secretos que los Programadores Ocultan en su PC

Números Mágicos: Los Códigos Secretos que los Programadores Ocultan en su PC


Desde que la primera persona escribió 5318008 en una calculadora, los nerds han estado ocultando números secretos dentro de su PC, y usándolos para negociar apretones de manos secretos entre aplicaciones y archivos. Hoy echamos un vistazo rápido a algunos de los ejemplos más entretenidos.

¿Qué son los números mágicos?

La mayoría de los lenguajes de programación usan un tipo entero de 32 bits para representar ciertos tipos de datos detrás de escena: internamente se almacena el número en RAM o utilizados por la CPU como 32 unos y ceros, pero en el código fuente se escribiría en formato decimal regular, o como formato hexadecimal, que usa los números del 0 al 9 y las letras de la A a la F.

Cuando el sistema operativo o una aplicación desea determinar el tipo de archivo, puede buscar en el principio del archivo un marcador especial que indique el tipo de archivo. Por ejemplo, un archivo PDF puede comenzar con el valor hexadecimal 0x255044462D312E33, que equivale a "% PDF-1.3" en formato ASCII, o un archivo ZIP comienza con 0x504B, que equivale a "PK", que desciende de la utilidad PKZip original. Al observar esta "firma", un tipo de archivo puede identificarse fácilmente incluso sin ningún otro metadato.

Los archivos compilados de la clase Java comienzan con CAFEBABE

El archivo "utilidad" de Linux se puede usar desde el terminal para determinar el tipo de un archivo; de hecho, lee los números mágicos de un archivo llamado "magia".

Cuando una aplicación quiere invocar una función, puede pasar valores a esa función usando tipos estándar como entero, que se puede expresar en el código fuente en formato hexadecimal. Esto es especialmente cierto para las constantes, que son identificadores definidos con nombres legibles por el ser humano, como AUTOSAVE_INTERVAL, pero se asignan a valores enteros reales (u otro tipo). Entonces, en lugar de que un programador escriba un valor como 60 cada vez que llaman a la función en el código fuente, podrían usar la constante AUTOSAVE_INTERVAL para una mejor legibilidad. (Las constantes generalmente se reconocen fácilmente porque están escritas en mayúsculas).

Todos estos ejemplos pueden incluirse en el término Números Mágicos, ya que pueden requerir un número hexadecimal específico para que una función o tipo de archivo funcione correctamente. ... si el valor no es correcto, no funcionará. Y cuando un programador quiere divertirse un poco, puede definir estos valores usando números hexadecimales que deletrean algo en inglés, también conocido como hexspeak.

Diversión con números mágicos: algunos ejemplos notables

Cada AppleScript termina con FADEDEAD

Si echas un vistazo rápido al código fuente de Linux, verás que la llamada al sistema _reboot () en Linux requiere que se pase una variable "mágica" que es igual al número hexadecimal 0xfee1dead. Si algo intenta llamar a esa función sin pasar primero ese valor mágico, simplemente devolverá un error.

El GUID (identificador único global) para una partición de arranque del BIOS en el esquema de partición GPT es 21686148-6449-6E6F-744E -656564454649, que forma la cadena ASCII "Hah! IdontNeedEFI", una alusión al hecho de que GPT normalmente se usaría en computadoras que reemplazaron el BIOS por UEFI, pero no necesariamente tiene que serlo.

Microsoft escondió 0x0B00B135 en su código fuente de soporte de la máquina virtual Hyper-V enviado a Linux, luego cambiaron el valor a 0xB16B00B5, y finalmente lo cambiaron a decimal antes de ser eliminado por completo del código fuente.

Más ejemplos divertidos incluyen:

  • 0xbaaaaaad: utilizado por el registro de bloqueo de iOS para indicar que un registro es un apilamiento de todo el sistema.
  • 0xbad22222: utilizado por el registro de bloqueo de iOS para indicar que iOS ha matado a una aplicación de VoIP porque se comportaba mal.
  • 0x8badf00d - (Comimos mala comida) utilizado por iOS crash l para indicar que una aplicación tardó demasiado en hacer algo y que el watchdog lo mató.
  • 0xdeadfa11 - (Dead Fall) utilizado por el registro de bloqueo de iOS cuando un usuario cierra la aplicación.
  • 0xDEADD00D - used por Android para indicar un aborto de VM.
  • 0xDEAD10CC (Dead Lock) utilizado por iOS Crash Logging cuando una aplicación bloquea un recurso en el fondo.
  • 0xBAADF00D (Bad Food) utilizado por la función LocalAlloc en Windows para la depuración.
  • 0xCAFED00D (Cafe dude) utilizado por el paquete de Java. compression.
  • 0xCAFEBABE (Cafe babe) utilizado por Java como identificador para los archivos de clase compilados
  • 0x0D15EA5E (Disease) utilizados por Nintendo en Gamecube y Wii para indicar que se produjo un arranque normal.
  • 0x1BADB002 (1 arranque incorrecto ) utilizado por la especificación de arranque múltiple como un número mágico
  • 0xDEADDEAD - utilizado por Windows para indicar un error de depuración iniciado manualmente, también conocido como la Pantalla Azul de la Muerte.

Estos no son los únicos que existen, por supuesto , pero solo una breve lista de ejemplos que parecían divertidos. ¿Sabes de algo más? Cuéntanos en los comentarios.

Ver ejemplos para ti

Puedes ver más ejemplos abriendo un editor hexadecimal y luego abriendo cualquier cantidad de tipos de archivos. Hay muchos editores hexadecimales gratuitos disponibles para Windows, OS X o Linux; solo asegúrese de tener cuidado al instalar el software gratuito para no infectarse con spyware o spyware.

Como ejemplo adicional, imágenes de recuperación para teléfonos Android como ClockworkMod comience con "ANDROID!" si se lee en formato ASCII.

Nota: no cambie nada mientras mira alrededor. ¡Los editores de Hex pueden romper cosas!


Cómo seleccionar una imagen de fondo de pantalla en su dispositivo Android

Cómo seleccionar una imagen de fondo de pantalla en su dispositivo Android

Su dispositivo Android viene con una imagen predeterminada configurada como fondo de pantalla en la pantalla de inicio. Sin embargo, si desea una imagen diferente como fondo de pantalla, esto se cambia fácilmente. Hay varias imágenes incluidas en el sistema Android o puede usar una de sus propias imágenes.

(how-to)

Cómo trabajar con unidades externas en una Chromebook

Cómo trabajar con unidades externas en una Chromebook

Las Chromebook incluyen solo una pequeña cantidad de almacenamiento interno. Sin embargo, admiten dispositivos de almacenamiento externo como unidades flash USB, discos duros externos y tarjetas microSD. Use un dispositivo de almacenamiento externo para expandir el almacenamiento de su Chromebook o transferir archivos entre Chromebooks y otras computadoras, incluidas las PC y Macs con Windows.

(how-to)