Invirtiendo el cifrado analizando el ejecutable

2

Tengo un programa que lee datos de un archivo, los analiza / organiza y los escupe como un XML cifrado. La aplicación también puede tomar un XML cifrado y escupir el archivo original. Mi objetivo en este punto sería acceder al XML de texto simple (no estoy interesado en el archivo original de texto claro porque no está organizado con XML)

Todavía no tengo idea de qué es el cifrado, aunque un miembro de un foro dijo que era AES-128 (no estoy seguro de cómo llegó a esa conclusión).

Ejecuté PEiD con el complemento KANAL en la aplicación, no detecta ninguna firma de cifrado.

Debido a que tengo acceso al programa y algo de experiencia anterior con la explotación de BO en WinXP con algún conocimiento de ASM, pensé que podría intentarlo utilizando un depurador.

En pocas palabras, ¿cuáles son los pasos generales que debería seguir para resolver esto? En esta situación, ¿sería mejor comenzar a buscar la propia clave de cifrado o encontrar una forma de utilizar las funciones de cifrado / descifrado de la aplicación para mi ventaja?

EDITAR: Target es un ejecutable de Windows

    
pregunta Juicy 17.06.2015 - 23:47
fuente

1 respuesta

4

Ingeniería inversa de Windows Binary

Consigue un desensamblador

Comenzaría descargando la versión de evaluación de IDA . Debido a que es la versión de evaluación, tiene una ventana emergente y no le permite guardar, pero debería ser lo suficientemente bueno para comenzar. Nota: Esto no funcionará para un binario de 64 bits. Vaya a esta página para encontrar desensambladores alternativos si es necesario .

Inspeccionar las cadenas

Antes de profundizar en el código real, comience por inspeccionar las cadenas. IDA tiene una pestaña (o una opción en el menú "vistas") que mostrará todas las cadenas que se encuentran en el binario. A menudo, las bibliotecas de encriptación aceptarán una cadena como "SHA-256" para indicar qué tipo de algoritmo usar.

Además, busque cualquier cosa que pueda ser una clave. El tipo de clave que se utiliza depende del algoritmo, por lo que puede estar buscando una contraseña, frase de contraseña o no una cadena en absoluto, sino un bloque de datos.

Si puede encontrar el nombre de la rutina de cifrado como una cadena, puede hacer referencia cruzada (la clave x en IDA) a la función de cifrado original. Si puede encontrar la función de cifrado, tome nota de la dirección.

Análisis dinámico

Algunos de los desensambladores mencionados anteriormente (incluido IDA) también incluyen un depurador. Personalmente, me gusta OllyDbg . Establezca un punto de interrupción en la rutina de cifrado que financia más arriba y luego ejecute el programa. Inspeccione la memoria e intente encontrar la clave de cifrado.

También puede usar su depurador para volcar la memoria del programa. Después de descargar la memoria de un programa en vivo, puede usar una utilidad como strings en sysinternals para intentar localizar una clave.

    
respondido por el amccormack 18.06.2015 - 00:14
fuente

Lea otras preguntas en las etiquetas