Saltar al contenido principal
Reversing, Ingeniería Inversa

Reversing, Ingeniería Inversa

Teoría y Aplicación

Garrote Garcia, Ruben

La capacidad de invertir el proceso de compilado de un código fuente, siendo capaz de convertir un conjunto de números binarios en código fuente entendible por una persona con conocimientos de programación, sin más herramientas que la vista, es sin duda una gran cualidad que diferencia a los profesionales entre sí. El objetivo principal del libro es dotar al lector de las herra...

Editorial:
Ra-Ma
Año de edición:
2017
Materia:
Programación
ISBN:
978-84-9964-706-7
Páginas:
370
Encuadernación:
Otros
Colección:
Informática
30,90 €
IVA incluido
Añadir a favoritos

Sinopsis

La capacidad de invertir el proceso de compilado de un código fuente, siendo capaz de convertir un conjunto de números binarios en código fuente entendible por una persona con conocimientos de programación, sin más herramientas que la vista, es sin duda una gran cualidad que diferencia a los profesionales entre sí. El objetivo principal del libro es dotar al lector de las herramientas necesarias para poder llevar a cabo labores de ingeniería inversa por sus propios medios y comprendiendo en cada momento lo que sucede, sin toparse con barreras técnicas a las que no pueda enfrentarse. En esta obra el autor pone en práctica todo lo aprendido con casos reales y resueltos paso a paso, como la explotación de un fallo de seguridad, la detección de una puerta trasera y la generación de un fichero con formato válido habiendo proporcionado tan solo el binario que lo valida. También el lector encontrará un repaso por la historia de la ingeniería inversa, teoría de compiladores, estructuras de datos y de control (x86 32 y 64 bits y ARM), funcionamiento de los desensambladores y depuradores bajo Linux y Windows, formatos de ficheros PE y ELF, funcionamiento de cargadores dinámicos también en Linux y Windows El objetivo del libro sin duda, es proporcionar de recursos al lector para afrontar los diversos retos con una buena base teórica y técnica para dotarlo de razonamiento sobre cada problema y en cada caso.

Índice

SOBRE EL AUTOR INTRODUCCIÓN CAPÍTULO 1. INTRODUCCIÓN A LA INGENIERÍA INVERSA 1.1 DEFINICIONES 1.2 MOTIVACIÓN 1.2.1 Descifrar algoritmos y/o especificaciones privadas 1.2.2 Agregar funcionalidades 1.2.3 Validación y verificación del software 1.2.4 Detección de vulnerabilidades 1.2.5 Análisis de malware 1.3 LIMITACIONES 1.4 ASPECTOS LEGALES 1.5 CUESTIONES RESUELTAS 1.5.1 Enunciados 1.5.2 Soluciones CAPÍTULO 2. COMPILADORES 2.1 TEORÍA DE COMPILADORES 2.2 FASES DE UN COMPILADOR 2.3 ANÁLISIS LÉXICO 2.3.1 Definición de términos 2.3.2 Especificación de componentes léxicos 2.3.3 Reconocimiento de componentes léxicos 2.3.4 LEX como analizador léxico 2.4 ANÁLISIS SINTÁCTICO 2.4.1 Gramáticas independientes del contexto 2.4.2 Arboles de análisis sintáctico y derivaciones 2.4.3 Analizadores sintácticos LR 2.4.4 Analizadores sintácticos LALR 2.5 ANÁLISIS SEMÁNTICO 2.6 GENERACIÓN DE CÓDIGO INTERMEDIO 2.6.1 Código de tres direcciones 2.6.2 Tipos de proposiciones de tres direcciones 2.7 GENERACIÓN DE CÓDIGO Y OPTIMIZACIONES 2.8 HERRAMIENTAS PARA LA COMPILACIÓN 2.9 CUESTIONES RESUELTAS 2.9.1 Enunciados 2.9.2 Soluciones 2.10 EJERCICIOS PROPUESTOS CAPÍTULO 3. RECONSTRUCCIÓN DE CÓDIGO I. ESTRUCTURAS DE DATOS 3.1 CONCEPTOS BÁSICOS SOBRE RECONSTRUCCIÓN DE CÓDIGO 3.2 VARIABLES 3.3 ARRAYS 3.4 PUNTEROS 3.5 ESTRUCTURAS 3.6 OBJETOS 3.7 CUESTIONES RESUELTAS 3.7.1 Enunciados 3.7.2 Soluciones 3.8 EJERCICIOS PROPUESTOS CAPÍTULO 4. RECONSTRUCCIÓN DE CÓDIGO II. ESTRUCTURAS DE CÓDIGO COMUNES 4.1 ESTRUCTURAS DE CÓDIGO 4.2 OPERADORES 4.3 CONDICIONALES Y BIFURCACIONES 4.4 FUNCIONES 4.5 CUESTIONES RESUELTAS 4.5.1 Enunciados 4.5.2 Soluciones 4.6 EJERCICIOS PROPUESTOS CAPÍTULO 5. FORMATOS DE FICHEROS BINARIOS Y ENLAZADORES DINÁMICOS 5.1 CONCEPTOS PRELIMINARES 5.2 BINARIOS ELF 5.2.1 Formato de ficheros 5.2.2 Cargador dinámico 5.3 FICHEROS BINARIOS PE 5.3.1 Formato de fichero 5.3.2 Cargador dinámico 5.4 CUESTIONES RESUELTAS 5.4.1 Enunciados 5.4.2 Soluciones 5.5 EJERCICIOS PROPUESTOS CAPÍTULO 6. ANÁLISIS ESTÁTICO: DESENSAMBLADORES Y RECONSTRUCTORES DE CÓDIGO 6.1 CONCEPTOS INICIALES 6.2 DESENSAMBLADORES 6.2.1 Conceptos básicos 6.2.2 Herramientas disponibles 6.3 RECONSTRUCTORES DE CÓDIGO 6.3.1 Herramientas disponibles 6.3.2 Hex-Rays Decompiler 6.4 CUESTIONES RESUELTAS 6.4.1 Enunciados 6.4.2 Soluciones 6.5 EJERCICIOS PROPUESTOS CAPÍTULO 7. ANÁLISIS DINÁMICO: DEPURADORES DE CÓDIGO 7.1 ASPECTOS GENERALES 7.2 CAJA NEGRA: ANÁLISIS DE COMPORTAMIENTO 7.2.1 Interceptación de comunicaciones 7.2.2 Monitorización de funciones del sistema 7.3 CAJA BLANCA: DEPURADORES DE CÓDIGO 7.3.1 Depuradores de código en Linux 7.3.2 Depuradores de código en Windows 7.4 CUESTIONES RESUELTAS 7.4.1 Enunciados 7.4.2 Soluciones 7.5 EJERCICIOS PROPUESTOS CAPÍTULO 8. APLICACIONES PRÁCTICAS 8.1 PUNTO DE PARTIDA 8.2 CASO PRÁCTICO 1: ANÁLISIS DE VULNERABILIDADES 8.3 CASO PRÁCTICO 2: ANÁLISIS DE FUNCIONALIDADES OCULTAS 8.4 CASO PRÁCTICO 3: ANÁLISIS DE UN FORMATO DE FICHERO DESCONOCIDO 8.5 CUESTIONES RESUELTAS 8.5.1 Enunciados 8.5.2 Soluciones

Artículos relacionados

Comprender los Algoritmos

Comprender los Algoritmos

Y. Bhargava, Aditya

Los algoritmos que utilizas con más frecuencia ya han sido descubiertos, probados y comprobados. La segunda actualización de Comprender los algoritmos hace que sea muy fácil aprenderlos, comprenderlos y usarlos. Con explicaciones maravillosamente sencillas, más de 400 ilustraciones divertidas y docenas de ejemplos relevantes, aprenderás a desbloquear el poder de los algoritmos ...

✅ Disponible

36,95 €

Micropython en Proyectos. Una Introducción Práctica a la Programación de Microco

Micropython en Proyectos. Una Introducción Práctica a la Programación de Microco

Padin Romero, Beatriz / Dapena Janeiro, Ad / Padín Romero, Beatriz / Dapena Janeiro, Adriana

Desarrolle proyectos en MicroPython paso a paso Vivimos rodeados de microcontroladores. Estos pequeños ordenadores, programados para realizar tareas concretas, son la pieza central de muchos de los dispositivos electrónicos con los que interactuamos a diario: electrodomésticos, automóviles, sistemas de monitorización y control? Sin embargo, a pesar de su ubicuidad, su funciona...

✅ Disponible

22,80 €

Guía de Programación en C/C++

Guía de Programación en C/C++

Lopez, Eliezer

Medio siglo después, C y C++ son los lenguajes más eficientes de la historia y el fundamento de gran parte de la tecnología que utilizamos a diario. Creados por y para programadores, se siguen enseñando en miles de centros educativos y ofrecen multitud de ventajas a empresas relevantes en multitud de sectores.C y C++ están presentes en una amplia variedad de sectores gracias a ...

✅ Disponible

29,95 €

Python Black Hat. Programación para Hackers y Pentesters

Python Black Hat. Programación para Hackers y Pentesters

Arnold, Tim / Seitz, Justin

Cuando se trata de crear herramientas de hackeo potentes y eficaces, Python es el lenguaje elegido por la mayoría de los analistas de seguridad. En este libro explorarás el lado más oscuro de las capacidades de Python: todo, desde escribir sniffers de red, robar credenciales de correo electrónico y acceder a directorios y carpetas por la fuerza hasta crear fuzzers de mutación, ...

✅ Disponible

32,95 €

Curso Práctico con Unity 3D

Curso Práctico con Unity 3D

Cantón Nadales, David

El primer libro en español que guía el desarrollo de videojuegos con Unity, desde los fundamentos hasta la creación de builds ejecutables.Dirigido a principiantes y desarrolladores con experiencia, este libro te acompaña paso a paso, desde el uso del Unity Editor hasta la creación de videojuegos completos y optimizados. Aprenderás a manipular GameObjects, programar en C# y Visu...

✅ Disponible

29,95 €

Curso de Programacion con Rust

Curso de Programacion con Rust

Lopez, Eliezer

El lenguaje de programación Rust ha ganado popularidad en los últimos años debido a su enfoque en la seguridad y el rendimiento, y se ha convertido en una excelente opción para el desarrollo de aplicaciones críticas y sistemas de alto rendimiento. Con una comunidad en constante crecimiento y el respaldo de importantes empresas, Rust constituye una herramienta poderosa para desa...

✅ Disponible

30,95 €