Te traemos un regalo: Ingeniería inversa para principiantes

Te traemos un regalo: Ingeniería inversa para principiantes

¿Te gustaría aprender ingeniería inversa? Te traemos este libro de regalo que aborda muchos temas que te serían de utilidad en esa área. ¡Es gratis!

La ingeniería inversa es un proceso por el cual intentamos desvelar los principios tecnológicos que usa un dispositivo, sistema o software a través del análisis de su estructura, función u operación con un alto nivel de detalle, generalmente para crear un dispositivo, sistema o software que realice una tarea similar sin necesidad de copiar la original.

Usando la ingeniería inversa, nos adentramos en las mismísimas entrañas de un software o dispositivo para entender cómo funciona y poder replicarlo e incluso mejorarlo.

Dennis Yurichev ha escrito un libro dedicado a todos aquellos que quieran introducirse en este apasionante tema. “Reverse Engineering for Beginners”, también conocido como RE4B, es una obra impresionante que cubre desde los fundamentos más importantes hasta los más avanzados y que incluye multitud de ejemplos con distintos lenguajes y para distintas arquitecturas.

Uno podría preguntarse por qué es necesario que haya diferencias entre el código máquina y un lenguaje de programación.

La respuesta radica en el hecho de que los seres humanos y las CPUs no se parecen – es mucho más fácil para los seres humanos utilizar un lenguaje de alto nivel como C/C++, Java, Python, etc., pero es más fácil para una CPU usar un nivel mucho más bajo de abstracción.

Tal vez fuera posible inventar una CPU que pueda ejecutar código de un lenguaje de programación de alto nivel, pero sería mucho más compleja de la CPU que conocemos hoy. De un modo parecido, es muy incómodo para los seres humanos escribir en lenguaje ensamblador debido a que es de bajo nivel y difícil de escribir sin cometer un gran número de molestos errores. El programa que convierte el código de alto nivel en ensamblador se denomina compilador.

Fragmento traducido de Reverse Engineering for Beginners

Además, es gratuita bajo licencia Creative Commons Attribution-NonCommercial-NoDerivs 3.0.

Quizás te interese:   Cascada de fuego

El libro, disponible por el momento, en inglés, ruso y coreano cubre una amplia gama de temas importantes para iniciarse en este mundo. Algunos con mayor nivel de profundidad, pero eso sí, todos con ejemplos bastante claros.

Contenidos:

  • Temas tratados:
    • Oracle RDBMS
    • Itanium
    • Copy-protection dongles
    • LD_PRELOAD
    • Stack overflow
    • ELF
    • Win32 PE file format
    • x86-64
    • Critical sections
    • Syscalls
    • TLS
    • Position-independent code (PIC)
    • Profile-guided optimization
    • C++ STL
    • OpenMP
    • Win32 SEH
  • Temas en profundidad:
    • x86/x64
    • ARM/ARM64
    • MIPS
    • Java/JVM

Existe también una versión reducida, aproximadamente 6 veces más pequeña (~150 páginas) para todos los que quieran tener una rápida introducción a la ingeniería inversa. Ésta no contiene nada sobre MIPS, ARM, OllyDBG, GCC, GDB, IDA, no tiene ejercicios, ejemplos, etc.

Aquí está la versión completa en inglés:

Aquí puedes descargar la versión Lite, también en inglés:

Si quieres participar en la traducción a otros idiomas, puedes dejarlo en los comentarios, o visitar el sitio web del libro para realizar tu contribución.

Fuente: beginners.re

Añadir Comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.