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

Slides:



Advertisements
Presentaciones similares
Lenguajes de Programación
Advertisements

¿Cuáles son los programas
Algoritmos y Desarrollo de Programas I
Resumen 2014 INTRODUCCIÓN AL SPSS. Algo para recordar… Tres amigos estadísticos se reunieron para cazar patos. Uno apunta y dispara 1 metro más arriba.
Introducción a la Ingeniería Inversa Francisco Blas Izquierdo Riera (klondike).
Creación de un Blog… Pues bienvenido al tutorial donde aprenderás como crear un blog en Blogger paso a paso. Te explicaremos cada paso a seguir para la.
MANUAL PARA MOVILES. NUMERO PIN 1.PULSAMOS LOS 4 NUMEROS DE NUESTRO PIN DEL TELEFONO 2. PULSAMOS DESBLOQUEAR.
Universidad de Deusto Facultad de Ingenieria e-ghost, julio 2006 Universidad de Deusto Introducción al cracking en GNU/Linux Pablo Garaizar Sagarminaga.
COMUNICACIÓN Y TIC Ángela Espinosa Hayler Peñaranda.
INFORMATICA PAULA CADAVID 10°B.  A en el momento en el que elegimos crear una base da datos, antes de trabajar con ella. Debemos elegir su nombre y ubicación.
MICROSOFT ACCESS. Definición de una Base de Datos: un programa que permite gestionar y organizar una serie de datos. Por ejemplo, para la gestión de los.
Sistema de Información Gerencial - ERP(Planificación de recursos empresariales) Rolando Espinosa Annie Williams Joel Nieto
Tema 1 Fundamentos de Computación
INGENIERÍA DE INFORMACIÓN Y APLICACIONES
CURSO DE PROGRAMACIÓN DE MACROS PARA EXCEL CON VISUAL BASIC
PROGRAMANDO EN KODU GAME LAB
Repaso Programacion en C
WORD.
Programación en C - manejo de Archivos
PROGRAMACIÓN (1).
Programación Orientada a Eventos
EXPERIENCIAS EDUCATIVAS EN LAS AULAS DEL SIGLO XXI INNOVACIÓN CON TIC
POLITECNICO INDES COROZAL
INTRODUCCIÓN A MICROSOFT PUBLISHER 2013
LENGUAJE DE PROGRAMACIÓN Y SOFTWARE PROPIETARIO
Tópicos de bases de datos
MICROSOFT OFFICE EXCEL
Visual Basic CESAR RIAÑO.
Guía breve del editor web
Archivo Editor de control numérico (FNC-Editor)
Johnny Vanderley Montoya Mesa
Configurando mi espacio de trabajo
HERRAMIENTAS BÁSICAS PARA ESTUDIO VIRTUAL
Software Es intangible, existe como información, ideas, conceptos, símbolos, pero no ocupa un espacio físico, se podría decir que no tiene sustancia. Se.
LÓGICA DE PROGRAMACIÓN
SEBASTIAN GAITAN BEDOYA
Fundamentos de programación en TIG 4. Aptana y Arcpy
Ingeniería del Software
Conocer los fundamentos de la programación estructurada
SOFTWARE DE PROGRAMACION
CONCEPTOS PRELIMINARES (Cont)
Introducción al lenguaje de programación. Introducción  Los lenguajes de programación son aplicaciones específicas que han sido pensadas y diseñadas.
Conceptos básicos de.NET Explorar el entorno de desarrollo Crear un proyecto Visual Basic.NET Use Visual Studio.NET Acceso a datos Depurar e implantar.
Convierte tu CREATIVIDAD y tus IDEAS EN acción e INNOVACION Brenda Peña.
1.4 CONCEPTO DE MODELO 1/13.
HIPERVÍNCULO Escarlet Hernández Casas 1F MATUTINO.
Programación Orientada a Objetos. ¿Qué es un ordenador? “Un sistema digital con tecnología microelectrónica capaz de procesar información a partir de.
Introducción al Visual Basic  Un programa en sentido informático está constituido en un sentido general por variables que contienen los datos con los.
Excel Macros Macros Automáticas.
¿Para qué se utiliza el PSEINT?
CURSO PROGRAMACIÓN BÁSICA SEMANA 3 ¿Qué es un programa?
Fundamentos de la Programación I
El entorno de Desarrollo de Dev-C++
Unidad 2: Libre Office Writer
INGENIERÍA DE SOFTWARE CAPITULO I ANALISIS DE REQUISITOS Por:
Lenguajes del lado del cliente
Unidad 2: Programación 2. Programación.
MANEJO DE UBUNTU COMANDOS SHELL / TERMINAL.
Ingeniería de Sistemas. Programación II Python ¿Qué es Python? Python es un lenguaje de programación creado por Guido Van Rossum a principios de los.
CONTROLES Y ESTRUCTURAS BÁSICAS DE PROGRAMACIÓN  1. Algoritmos: conjunto de instrucciones programadas para resolver una tarea específica.  2. Datos:
UNIVERSIDAD JUÁREZ AUTÓNOMA DE TABASCO Nombres: Isaac Sánchez García Teofilo Martinez Garcia Ricardo Del Carmen Paz López Vanesa Anahí Pérez Lizárraga.
INTRODUCCIÓN A LA INFORMÁTICA
Conceptos básicos II. – Game Maker. –.
MICROSOFT ACCESS. Definición de una Base de Datos: un programa que permite gestionar y organizar una serie de datos. Por ejemplo, para la gestión de los.
GC-F-004 V.01 CENTRO DE INDUSTRIA Y LA CONSTRUCCIÓN REGIONAL TOLIMA.
TUTORIAL BÁSICO PARA GESTIÓN DE LA UBICACIÓN DE LAS PERSONAS EN LA APLICACIÓN DEL CATÁLOGO DE ESPACIOS. SERVEI TÈCNIC I DE MANTENIMENT.
ESTRUCTURA DE LOS SISTEMAS OPERATIVOS
UNIDAD II Generalidades sobre Algoritmos
Tema 1 Introducción a la programación (Lenguaje java). 1.1 Conceptos básicos.
¿QUÉ ES GIMP Y PARA QUE SIRVE? GIMP es un programa ideal para retocar, componer y editar imágenes. Muchas pequeñas empresas lo utilizan para crear logotipos.
Transcripción de la presentación:

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

¿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.

¿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.

¿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).

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”.

DEMO

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.

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

DEMO

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.

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.

DEMO

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

DEMO

Gracias por atender Contacto: klondike ( e n ) xiscosoft.es Material: Webs de interés: