La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a la Ingeniería Inversa Francisco Blas Izquierdo Riera (klondike).

Presentaciones similares


Presentación del tema: "Introducción a la Ingeniería Inversa Francisco Blas Izquierdo Riera (klondike)."— Transcripción de la presentación:

1 Introducción a la Ingeniería Inversa Francisco Blas Izquierdo Riera (klondike).

2 ¿Qué es la ingeniería inversa? La ingeniería inversa consiste en el análisis de un sistema procediendo a su desmontaje para poder acceder a sus componentes básicos. Por ejemplo, ver como funciona un teléfono desmontándolo y viendo donde actua cada voltaje o ver como funciona un binario desensamblandolo y viendo que hace cada instrucción.

3 ¿Es legal la ingeniería inversa? ● Generalmente si se tiene permiso del autor/fabricante del sistema sí. ● Además en Europa es legal con fines de interoperabilidad. (Por ejemplo ver como funciona el filtro de Microsoft Word). ● En EE.UU. El aspecto legal es más turbio, especialmente por la DMCA, pero suele verse como una forma de potenciar la innovación.

4 ¿Qué es lo que vamos a hacer? ● No centraremos en la ingeniería inversa sobre Software y explicaremos como hacer las siguientes cosas. ● Detectar cadenas en los datos (strings). ● Desensamblar un programa usando un desensamblador (hte). ● Editar el algoritmo de un programa o sus datos fijos, usando un editor adecuado (hte). ● Analizar el proceso de ejecución de un programa, analizar y modificar sus datos, usando un debugger (gdb).

5 Detección de cadenas en un programa ● Es una forma rápida y sencilla de detectar partes de gramáticas, y en ocasiones palabras completas de la misma. ● Se basa en que toda cadena ASCII cumple una serie de propiedades (códigos entre 20 y 127 por ejemplo). Por lo que extrae aquellas partes del fichero que las cumplen. ● Analizar las cadenas a veces puede ser tedioso y puede favorecer el error. ● Basta con ejecutar: ”$strings programa | less”.

6 DEMO

7 Desensamblado de un programa ● Permite conocer el algoritmo subyacente a un programa y, a veces, ver cuales son sus datos. ● Requiere de ciertos conocimientos técnicos (mayormente programación y entender lenguaje ensamblador). ● Es bastante más costoso y puede inducir ocasionalmente a errores.

8 Desensamblado de un programa ● Basta con abrir el fichero con el hte ”$ht prog” ● Pulsamos la tecla F6 y elegimos el modo adecuado

9 DEMO

10 Editado de un programa ● Permite modificar el algoritmo y los datos estáticos. ● Suele ser el procedimiento habitual a la hora de crear un crack. ● Requiere un poco más de experiencia que el desensamblado.

11 Editado de un programa ● Abrimos el fichero con el hte ”$ht prog” ● Pulsamos la tecla F6 y elegimos el modo adecuado ● Pulsando F4 entramos en el modo de edición donde podemos cambiar el valor hexadecimal del dato o la intrucción.

12 DEMO

13 Analisis y modificación de datos y en la ejecución. ● Permite comprobar la ruta seguida por un algoritmo y las modificaciones que este hace. ● Suele ser el procedimiento habitual a la hora de crear un keygen o de analizar un programa. ● Requiere conocimientos de ensamblador. ● Basta con ejecutar el programa con el gdb... TODO

14 DEMO

15 Gracias por atender Contacto: klondike ( e n ) xiscosoft.es Material: http://klondike.xiscosoft.es/charlas/IngInversa Webs de interés: http://www.chillingeffects.org/reverse/faq.cgi


Descargar ppt "Introducción a la Ingeniería Inversa Francisco Blas Izquierdo Riera (klondike)."

Presentaciones similares


Anuncios Google