Colección de citas famosas - Slogan de motivación - Índice de la Guía Definitiva de IDA Pro

Índice de la Guía Definitiva de IDA Pro

Parte 1 Introducción a IDA

Capítulo 1 Introducción al desmontaje 2

1.1 Teoría del desmontaje 2

1.2 ¿Qué es el desmontaje 3?

1.3 Por qué desmontar 3

1.3.1 Analizar malware 4

1.3.2 Análisis de vulnerabilidad 4

1.3.3 Interoperabilidad del software 4

1.3.4 Verificación del compilador 4

1.3.5 Mostrar información de depuración 5

1.4 Cómo desmontar 5

1.4.1 Algoritmo básico de desmontaje 5

1.4.2 Desmontaje de escaneo lineal 6

1.4.3 Desmontaje de descenso recursivo 7

1.5 Resumen 10

Capítulo 2 Inversa y Herramientas de desmontaje 11

2.1 Herramientas de clasificación 11

2.1.1 archivo 11

2.1.2 Herramientas PE 13

2.1.3 PEiD 14

2.2 Herramientas de resumen 14

2.2.1 nm 15

2.2.2 ldd 16

2.2.3 Objdump 17

2.2.4 otool 18

2.2.5 dumpbin 18

2.2.6 c++filt 19

2.3 Herramientas de detección de profundidad 20

2.3.1 cadenas 20

2.3.2 Desensamblador 21

2.4 Resumen 22

Capítulo 3 Conocimientos previos de IDA Pro 23

3.1 Estrategia antipiratería de la empresa Hex-Rays 23

3.2 Obtención de IDA Pro 24

3.2 .1 IDA versión 24

3.2.2 IDA licencia 24

3.2.3 Comprar IDA 25

3.2.4 Actualizar IDA 25

3.3 Recursos de soporte de IDA 25

3.4 Instalar IDA 26

3.4.1 Instalación de Windows 26

3.4.2 Instalación de OS X y Linux 27

3.4.3 Estructura de directorios IDA 28

3.5 Interfaz de usuario de IDA 29

3.6 Resumen 29

Parte 2 Uso básico de IDA

Capítulo 4 Introducción a IDA 32

4.1 Iniciar IDA 32

4.1.1 Cargar archivos IDA 34

4.1.2 Usar el cargador de archivos binarios 35

4.2 Archivo de base de datos IDA 37

4.2.1 Crear base de datos IDA 38

4.2.2 Cerrar base de datos IDA 38

4.2.3. Reabrir la base de datos 39

4.3 Introducción a IDA escritorio 40

4.4 Comportamiento del escritorio durante el análisis inicial 42

4.5 Consejos y trucos de IDA para el escritorio 43

4.6 Informar de un error 44

4.7 Resumen 44

Capítulo 5 Ventana de visualización de datos de IDA 45

5.1 Ventana de visualización de datos principal de IDA 45

5.1.1 Ventana de desmontaje 45

5.1 .2 Ventana de nombres 50

5.1.3 Ventana de mensajes 51

5.1.4 Ventana de cadenas 52

5.2 Ventana de visualización de IDA secundaria 53

5.2.1 Ventana hexadecimal 53

5.2.2 Ventana Exportar 54

5.2.3 Ventana Importar 54

5.2.4 Ventana Función

55

5.2.5 Ventana de estructura 55

5.2.6 Ventana de enumeración 56

5.3 Otras ventanas de visualización de IDA 56

5.3 .1 Ventana de segmento 56

5.3.2 Ventana de firma 57

5.3.3 Ventana de biblioteca de tipos 58

5.3.4 Ventana de llamada de función 58

5.3.5 Ventana de problemas 59

5.4 Resumen 59

Capítulo 6 Navegación de desmontaje 60

6.1 Navegación IDA básica 60

6.1. 1 Navegación con doble clic 60

6.1.2 Saltar a dirección 62

6.1.3 Historial de navegación 62

6.2 Marco de pila 63

6.2.1 Convención de llamada 64

6.2.2 Diseño de variable local 67

6.2.3 Ejemplo de marco de pila 67

6.2.4 Vista de pila IDA 70

6.3 Búsqueda en base de datos 74

6.3.1 Búsqueda de texto 75

6.3.2 Búsqueda binaria 75

6.4 Resumen 76

Capítulo 7 Operación de desmontaje 77

7.1 Nombres y denominaciones 77

7.1.1 Parámetros y variables locales 77

7.1. Ubicaciones con nombre 79<. /p>

7.1.3 Nombres de registros 80

7.2 Comentarios en IDA 80

7.2.1 Comentarios generales 82

7.2.2 Comentarios repetibles 82

7.2.3 Comentarios antes y después 82

7.2.4 Comentarios de función 82

7.3 Conversión de código básico 83

7.3.1 Opciones de visualización de código 83

7.3.2 Formato de operandos de instrucción 85

7.3.3 Funciones de manipulación 86

7.3.4 Conversión entre datos y código 91

7.4 Conversión de datos básicos 91

7.4.1 Especificar el tamaño de los datos 92

7.4.2 Procesar cadenas 93

7.4.3 Especificar matrices 94

7.5 Resumen 96

Capítulo 8 Tipos de datos y estructuras de datos 97

8.1 Identificación de datos Uso de estructuras 98

8.1.1 Miembro de la matriz acceso 98

8.1.2 Acceso a miembros de estructura 102

8.2 Creación de estructuras IDA 107

8.3 Uso de plantillas de estructura 111

8.4 Importación de nuevos estructuras 114

8.4.1 Análisis de declaraciones de estructuras C 114

8.4.2 Análisis de archivos de encabezado C 115

8.5 Uso de estructuras estándar 115

8.6 Archivos IDA TIL 118

8.6.1 Carga de nuevos archivos TIL 118

8.6.2 ***Compartir archivos TIL 118

8.7 Conceptos básicos de C++ inverso ingeniería 119

8.7.1 este puntero 119

8.7.2 Funciones virtuales y tablas virtuales 120

8.7.3 Ciclo de vida del objeto 122

8.7.4 Adaptación de nombre 124

8.7.5 Identificación del tipo de tiempo de ejecución 125

8.7.6 Relación de herencia 126

8.7.7 Referencia de ingeniería inversa de C++ 127

8.8 Resumen 127

Capítulo 9 Referencia cruzada y función de dibujo 128

9.1 Referencia cruzada 128

9.1.1 Cruz de código -referencia 129

9.1.2 Referencia cruzada de datos 131

9.1.3 columna de referencia cruzada

Tabla 133

9.1.4 Llamada a función 134

9.2 Dibujo IDA 135

9.2.1 Función de dibujo heredado IDA 135

9.2. 2 Vista gráfica integrada de IDA 141

9.3 Resumen 143

Capítulo 10 Las diversas caras de IDA 144

10.1 Modo consola IDA 144

10.1.1 Las mismas características en modo consola 144

10.1.2 Consola Windows 145

10.1.3 Consola Linux 146

10.1.4 OS

Parte 3 Aplicación avanzada de IDA

Capítulo 11 Personalización de IDA 154

11.1 Archivo de configuración 154

11.1.1 Archivo de configuración principal :ida.cfg 154

11.1.2 Archivo de configuración de GUI: idagui.cfg 155

11.1.3 Archivo de configuración de consola: idatui.cfg 157

11.2 Otras opciones de configuración de IDA 158

11.2.1 Color IDA 159

11.2.2 Personalización de la barra de herramientas IDA 159

11.3 Resumen 161

Capítulo 12 Uso de firmas FLIRT para identificar bibliotecas 162

12.1 Técnicas rápidas de identificación y autenticación de bibliotecas 162

12.2 Aplicar firmas FLIRT 163

12.3 Crear archivos de firma FLIRT 166

12.3.1 Descripción general de la creación de firmas 166

12.3.2 Identificación y obtención de bibliotecas estáticas 167

12.3.3 Creación de archivos de esquema 168

12.3.4 Creación archivos de firmas 169

12.3.5 Iniciar firmas 171

12.4 Resumen 172

Capítulo 13 Ampliar el conocimiento de IDA 173

13.1 Información de funciones ampliada 173

13.1.1 Archivo IDS 175

13.1.2 Crear archivo IDS 176

13.2 Usar loadint para expandir comentarios predefinidos 178

13.3 Resumen 179

Capítulo 14 Parchear binarios y otras limitaciones de IDA 180

14.1 Menú de parches ocultos 180

14.1 .1 Cambiar bytes de base de datos 181

14.1.2 Cambiar palabras en la base de datos 181

14.1.3 Usar el cuadro de diálogo "Ensamblar" 182

14.2 Archivo de salida IDA y generación de parches 183

14.2.1 Archivo MAP generado por IDA 183

14.2.2 Archivo ASM generado por IDA 184

14.2.3 Generado por IDA INC archivo 184

14.2. 4 Archivo LST generado por IDA 185

14.2.5 Archivo EXE generado por IDA 185

14.2.6 Archivo DIF generado por IDA 185

14.2.7 HTML archivos generados por IDA 186

14.3 Resumen 186

Parte 4: Ampliación de las funciones de IDA

Capítulo 15 Capítulo Escritura de scripts IDC 188

15.1 Conocimientos básicos de ejecución de scripts 188

15.2 Lenguaje IDC 189

15.2.1 Variables IDC 190

>15.2.2 Expresión IDC 190

15.2.3 Declaración IDC 190

15.2.4 Función IDC 191

15.2.5 Programa IDC 192

15.2.6 Manejo de errores IDC 192

15.2.7 Almacenamiento permanente de datos IDC 193

15.3 Asociación de scripts IDC y teclas de acceso rápido 194

15.4 Funciones útiles de IDC 195

15.4.1 Funciones de lectura y modificación de datos 196

15.4.2 Funciones de interacción con el usuario 196

15.4.3 Funciones de manipulación de cadenas 197

15.4.4 Funciones de entrada/salida de archivos 197

15.4.5 Manipulación de nombres de bases de datos 198

15.4.6 Funciones de procesamiento 199

15.4.7 Código función de referencia cruzada 199

15.4.8 Función de referencia cruzada de datos 200

15.4.9 Función de manipulación de base de datos 200

15.4.10 Función de búsqueda de base de datos 201

15.4.11 Componente de línea de desmontaje 201

15.5 Ejemplo de script IDC 202

15.5.1 Función de enumeración 202

15.5.2 Instrucciones de enumeración 202

15.5.3 Referencia cruzada de enumeración 203

15.5.4 Enumeración de funciones exportadas 205

15.5.5 Búsqueda y marcado de parámetros de funciones 206

15.5.6 Simulación del comportamiento del lenguaje ensamblador 208

15.6 Resumen 209

Capítulo 16 Kit de desarrollo de software IDA 211

16.1 Introducción al SDK 212

16.1.1 Instalación del SDK 212

16.1.2 Diseño del SDK 212

16.1.3 Configuración del entorno de compilación 213

16.2 Aplicación IDA Interfaz de programación 214

16.2.1 Descripción general del archivo de encabezado 214

16.2.2 Nodo de red 217

16.2.3 Tipos de datos útiles del SDK 223

16.2.4 Funciones SDK de uso común 224

16.2.5 Habilidades de iteración de API de IDA 229

16.3 Resumen 232

Capítulo 17 Arquitectura del complemento IDA 233

17.1 Escritura de complementos 233

17.1.1 Ciclo de vida del complemento 235

17.1.2 Inicialización del complemento 236

p>

17.1.3 Notificación de eventos 237

17.1.4 Ejecución del complemento 238

17.2 Creación del complemento 239

17.3 Instalación del complemento 243

17.4 Configuración del complemento 244

17.5 Ampliación de IDC 244

17.6 Opciones de la interfaz de usuario del complemento 247

17.7 Resumen 254

Capítulo 18 Capítulo Archivos binarios y módulo cargador IDA 255

18.1 Análisis de archivos desconocidos 256

18.2 Carga manual de un archivo de Windows PE 256

18.3 Módulo cargador IDA 263

18.4 Escribir un cargador IDA 263

18.4.1 Cargador “estilo tonto” 265

18.4.2 Construir un módulo cargador IDA 269

18.4.3 Cargador IDA pcap 269

18.5 Otras estrategias de carga 274

18.6 Resumen 275

Capítulo 19 Módulo de procesador IDA 276

19.1 

Código de bytes de Python 277

19.2 Intérprete de Python 277

19.3 Módulo de procesador de escritura 277

19.3.1 estructura procesador_t 278

19.3.2 Básico inicialización de la estructura LPH 278

19.3.3 Analizador 282

19.3.4 Simulador 286

19.3.5 Exportador 288

19.3. 6 Notificación del procesador 293

19.3.7 Otros miembros de Process_t 294

19.4 Creación del módulo del procesador 296

19.5 Personalización de procesadores existentes 299

19.6 Arquitectura del módulo de procesador 301

19.7 Resumen 302

Parte 5 Aplicaciones prácticas

Capítulo Capítulo 20 Variaciones del compilador 304

20.1 Tabla de salto y rama Declaración 304

20.2 Implementación de RTTI 308

20.3 Localización de la función principal 308

20.4 Depuración y liberación de binarios 315

20.5 Otras convenciones de llamada 317

20.6 Resumen 317

Capítulo 21 Análisis de código difuso 319

21.1 Técnicas de análisis antiestático 319

21.1.1 Desmontaje y desincronización 319

21.1.2 Cálculo dinámico de la dirección de destino 322

21.1.3 Desenfoque de función importada 327

21.1.4 Herramientas de análisis de ataques dirigidos 331

21.2 Técnicas de análisis antidinámico 331

21.2.1 Detección de virtualización 331

21.2.2 Detección de "herramientas de detección" 333

21.2. 3 Detección de depuradores 333

21.2.4 Prevención de la depuración 334

21.3 Utilice IDA para "desenfocar estáticamente" archivos binarios 335

21.3.1 Desenfoque orientado a scripts 335

21.3.2 Desenfoque orientado a la simulación 339

21.4 Resumen 349

Capítulo 22 Análisis de vulnerabilidad 350

22.1 Utilice IDA para descubrir nuevos vulnerabilidades 351

22.2 Utilice IDA para descubrir vulnerabilidades después del hecho 356

22.3 IDA y proceso de desarrollo del programa de craqueo 359

22.3.1 Detalles del marco de pila 360

22.3.2 Secuencia de instrucciones de posicionamiento 362

22.3. 3. Encontrar direcciones virtuales útiles 363

22.4 Analizar shellcode 364

22.5 Resumen 366

Capítulo 23 Complementos IDA prácticos 367

23.1 Hex-Rays 367

23.2 IDAPython 368

23.3 IDARub 371

23.4 IDA Sync 371

23.5 collabREate 374

23.6 ida-x86emu 377

23.7 mIDA 377

23.8 Resumen 379

Parte 6 Depurador IDA

Capítulo 24 Depurador IDA 382

24.1 Iniciar el depurador 382

24.2 Visualización básica del depurador 384

24.3 Control de procesos 387

24.3. 1. Punto de interrupción 388

24.3.2 Seguimiento 390

24.3.3 Seguimiento de pila 393

24.3.4 Monitorear 393

<

p>24.4 Automatizar tareas del depurador 393

24.4.1 Usar IDC para escribir scripts para operaciones del depurador 394

24.4.2 Usar complementos IDA para automatizar operaciones del depurador 398

24.5 Resumen 400

Capítulo 25 Integración del desensamblador/depurador 401

25.1 Conocimientos previos 401

25.2 Base de datos IDA y depurador IDA 402

25.3 Depuración de código ofuscado 404

25.3.1 Bucle simple de descifrado y descompresión 404

25.3.2 Reconstrucción de tabla de importación 407

25.3.3 Ocultar el depurador 410

25.3.4 Manejo de excepciones 414

25.4 Resumen 418

Capítulo 26 IDA y depuración remota en plataformas Linux y OS X 419

26.1 Depuración en modo consola 419

26.2 Uso de IDA para depuración remota 420

26.2.1 Manejo de excepciones en depuración remota 422

26.2.2 Uso de scripts y complementos en la depuración remota 423

26.3 Resumen 423

Apéndice A Uso de IDA 4.9 Edición gratuita 424

Apéndice B Referencia cruzada de IDC/SDK 426

Apéndice C Nuevas características de IDA 5.3 444