Ingeniería inversa

Curso práctico


La Ingeniería Inversa, se refiere al estudio detallado de las funciones de cualquier archivo binario, paso a paso, con el fin de descubrir cuál es el código responsable por su funcionamiento. Es una de las disciplinas más gratificantes dentro de la seguridad informática. Esta obra te explica de forma secuencial como poner en práctica esta materia a
través de explicaciones claras y didácticas, acompañados de ejemplos y ejercicios de autoevaluación.

En la primera parte aprenderás el lenguaje de más bajo nivel legible que existe, el lenguaje Ensamblador, y lo harás comenzando desde cero con este orden:

  • • A moverte por el mundo de las API de Windows.
  • • A enlazar Ensamblador con lenguajes de alto nivel como Python y VB.Net.
  • • A crear su propia Shell Inversa en Ensamblador y conectarla con Python.
  • • A crear sus propias DLL.

En la segunda parte asimilarás a interpretar los programas compilados y aprenderás:

  • • A interpretar ficheros Binarios PE.
  • • A poner puntos de ruptura.
  • • A crear sus propios parches o cambios en un binario.
  • • A cifrar texto por XOR.
  • • A reconstruir código intermedio.
  • • A analizar un binario contaminado por Malware real.

Además, con esta obra tendrás acceso a 40 videos y supuestos prácticos descargables desde la web del libro que complementan al contenido y que están indicados en el libro.

Descarga de los videos y material adicional

Descarga de la máquina virtual

Escritor
Colección
Seguridad Informática
Materia
Seguridad informática
Idioma
  • Castellano
EAN
9788419444363
ISBN
978-84-19444-36-3
Depósito legal
M-27757-2022
Páginas
272
Ancho
17 cm
Alto
24 cm
Peso
459 g
Edición
1
Fecha publicación
23-11-2022
Edición en papel
27,90 €
546,41 MX$29,15 US$
También disponible en

Índice de contenido

ACERCA DEL AUTOR
PRÓLOGO
INTRODUCCIÓN
PARTE 1.
CAPÍTULO 1. CONCEPTOS BÁSICOS Y EXPECTATIVAS DEL CURSO
1.1 FUNCIONAMIENTO DE WINDOWS, MENSAJES Y EVENTOS
1.2 ¿PARA QUÉ PODEMOS USAR EL LENGUAJE ENSAMBLADOR?
1.3 NUMERACIÓN Y CÁLCULO ARITMÉTICO
1.4 RESUMEN AUTOEVALUACIÓN
1.5 EJERCICIOS
CAPÍTULO 2. LENGUAJE ENSAMBLADOR
2.1 EJERCICIO
2.2 DESCARGA E INSTALACIÓN DE MASM32 / EASY CODE
2.3 REGISTROS DEL SISTEMA 32BITS
2.4 DIRECTIVAS DEL LENGUAJE, ESTRUCTURA DEL PROGRAMA
2.5 TIPOS DE DATOS
2.6 INTRODUCCIÓN A LAS API’S DE WINDOWS
2.7 MOVER DATOS A REGISTROS Y VICEVERSA
2.8 OPERACIONES MATEMÁTICAS SIMPLES
2.9 OPERACIONES DE PILA
CAPÍTULO 3. LENGUAJE ENSAMBLADOR: PROCEDIMIENTOS,
DEFINICIÓN Y USO
CAPÍTULO 4. LENGUAJE ENSAMBLADOR: OPERADORES Y DIRECTIVAS
RELACIONADAS CON LOS DATOS
4.1 OFFSET
4.2 ADDR
4.3 PTR
4.4 TYPE
4.5 SIZEOF
CAPÍTULO 5. LENGUAJE ENSAMBLADOR: OPERACIONES CON BANDERAS
CAPÍTULO 6. LENGUAJE ENSAMBLADOR: INSTRUCCIONES DE DESPLAZAMIENTO
6.1 MULTIPLICAR POR DESPLAZAMIENTO
CAPÍTULO 7. LENGUAJE ENSAMBLADOR: INSTRUCCIONES DE
TRANSFERENCIA DE CONTROL
7.1 INCONDICIONALES
7.2 CONDICIONALES TRADICIONALES
7.3 CONDICIONALES MASM32
7.4 ITERATIVAS TRADICIONALES
7.5 ITERATIVA MASM32
CAPÍTULO 8. LENGUAJE ENSAMBLADOR: INSTRUCCIONES MANEJO DE CADENAS
8.1 PREFIJOS DE REPETICIÓN
8.2 MOVER CADENAS
8.3 COMPARAR CADENAS
8.4 BUSCAR EN CADENAS
8.5 TRANSFERENCIAS ENTRE CADENAS Y REGISTROS
CAPÍTULO 9. MODOS DE DIRECCIONAMIENTO
CAPÍTULO 10. RESUMEN Y FASE DE VIDEO TALLERES
10.1 EJERCICIOS VARIOS PARA MASM32
10.2 PROYECTO FINAL MASM32
CAPÍTULO 11. ANEXO I. INTEGRACIÓN CON LEGUAJES DE ALTO NIVEL
11.1 COMO REALIZAR DLL EN ENSAMBLADOR
11.2 PYTHON INTEGRACIÓN
11.3 LA COMUNIDAD DE PYTHON
11.4 VB.NET INTEGRACIÓN
PARTE 2
CAPÍTULO 12. INTRODUCCIÓN
12.1 ¿QUÉ ES EL REVERSING O INGENIERÍA INVERSA?
12.2 ¿QUÉ ES UN COMPILADOR?
12.3 LIMITACIONES
12.4 ¿QUÉ DICE LA LEY, RESPECTO AL REVERSING?
12.5 EJERCICIOS
12.6 RESULTADOS
CAPÍTULO 13. INTRODUCCIÓN A OLLYDBG
13.1 DESENSAMBLADOR/CÓDIGO
13.2 REGISTROS
13.3 DUMP
13.4 PILA/STACK
13.5 RELACIÓN DE TECLAS Y BOTONES MÁS USADOS
CAPÍTULO 14. RECONSTRUCCIÓN DE CÓDIGO NATIVO
14.1 CÓDIGO NATIVO, VARIABLES Y ESTRUCTURAS
14.2 EJECUTANDO CÓDIGO NATIVO, CON OLLYDBG
14.3 CÓDIGO NATIVO, VARIABLES Y ESTRUCTURAS II
14.4 PROCEDIMIENTOS Y VARIABLES LOCALES
14.5 ESTRUCTURAS DE CONTROL CONDICIONALES
14.6 ESTRUCTURAS DE CONTROL ITERATIVAS
14.7 ESTRUCTURAS DE CONTROL REPETITIVAS
14.8 FORMULARIOS
14.9 FICHEROS BINARIOS PE
CAPÍTULO 15. API’S SIGNIFICATIVAS
CAPÍTULO 16. PRACTICAS CON SUPUESTOS EN CÓDIGO NATIVO
16.1 BUSCANDO CADENA EN CÓDIGO NATIVO
16.2 PONIENDO PARCHES (“PATCHES”)
16.3 EJERCICIO
16.4 CIFRADO DE TEXTO POR XOR
16.5 ANULAR OBJETIVO POR API (INTERMODULAR CALLS)
16.6 EJERCICIOS
16.7 ANALIZANDO SHELLTER, UN MALWARE REAL
CAPÍTULO 17. RECONSTRUCCIÓN DE CÓDIGO INTERMEDIO
17.1 MICROSOFT INTERMEDIATE LANGUAGE
17.2 ANALIZANDO BINARIO DE CÓDIGO INTERMEDIO VB.NET
17.3 EXEINFOPE
17.4 INTRODUCCIÓN A .NET REFLECTOR
CAPÍTULO 18. PRÁCTICA CON SUPUESTO EN CÓDIGO INTERMEDIO