reverse-engineering file-format

reverse engineering - Ingeniero inverso de un formato de archivo



reverse-engineering file-format (3)

Este es mi primer intento de ingeniería inversa, y realmente, no sé cómo hacerlo. Tengo una mentalidad de procedimiento y ninguna base de conocimiento sobre los métodos populares de encriptación.

Pero, me parece, si tengo los datos mínimos en el formato correcto y sé que hay una ocurrencia en los datos de una determinada palabra, o palabras, y donde esa palabra comienza y termina en los datos, que De alguna manera podría descubrir el método de descifrar todo el archivo.

----- ENCRYPTED ------------------------------------------- HEX 44 5E 12 47 55 5E 53 17 4C 5C 49 4F 4F ACII D ^ ? G U ^ S ? L / I O O DEC 68 94 63 71 85 94 83 63 76 92 73 79 79 BIN 01000100 01011110 00111111 01000111 01010101 01011110 01010011 00111111 01001100 01011100 01001001 01001111 01001111 ----- DECRYPTED ------------------------------------------- HEX 74 6F 20 74 61 6B 65 20 74 65 73 74 73 ASCII t o t a k e t e s t s DEC 116 111 32 116 97 107 101 32 116 101 115 116 115 BIN 01110100 01101111 00100000 01110100 01100001 01101011 01100101 00100000 01110100 01100101 01110011 01110100 01110011

Esto es sólo una muestra de datos. Sé dónde comienza y termina la información del título porque examiné dos archivos con títulos diferentes, así que sé que estos se traducen a las palabras correctas, pero ¿a dónde voy para identificar el proceso de cifrado?

* Sé que la gente preguntará por qué: Esto es de un formato de archivo VCE (examen) y quiero traducir esto a XML o JSON. Esto me facilitaría escribir un programa que compara preguntas y respuestas de múltiples archivos de exámenes, adjuntar, eliminar duplicados y crear nuevos. *


El valor XOR del campo de pregunta comienza con 19 y luego es cada segundo carácter.

CIFRADO:

6D 1A 74 1C 3D 1E 6B 20 40 22 48 24 40 26 07 28 5D 2A 4E 2C 5E 2E 5B 30 42 32

XOR:

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

DECRITADO:

t?o? ?t?a?k?e? ?t?e?s?t?s?


Prueba XORing las dos cuerdas juntas. Lo que obtienes es

HEX 30 31 32 33 34 35 36 37 38 39 3A 3B 3C ASCII 0 1 2 3 4 5 6 7 8 9 : ; <

¿Ves un patrón ya?


Siempre intente XOR''ing (operación inteligente) primero cuando tenga un archivo hexadecimal y piense que está cifrado.
Hay muchas razones para ello.

  • Una vez que aplique el cifrado por XOR, puede desencriptarlo aplicando el XOR nuevamente.
  • Por lo tanto, es una forma muy simple de cifrar algo.
    Puedes ir a través de la siguiente página wiki para más detalles:
    XOR_wiki
    Además, si tiene acceso al Arte de la Programación (y también el tiempo para referirse a eso: D), vaya a la sección de operaciones bit a bit.
    Está muy bien explicado. Vale la pena leer compañero :)