"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".
El texto de arriba es un fragmento traducido de "Reverse Engineering for Beginners", también conocido como RE4B, un libro escrito por Dennis Yurichev (yurichev.com) para todo aquel que quiera introducirse en la ingeniería inversa del software. 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.
Además es gratuita bajo licencia Creative Commons Attribution-NonCommercial-NoDerivs 3.0.
Contenidos:
- Temas en profundidad: x86/x64, ARM/ARM64, MIPS, Java/JVM.
- 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.
Por el momento tenéis la versión en inglés, ruso y coreano. Si alguno está interesado en contribuir y traducirlo al castellano comentar la entrada para una posible colaboración.
Descarga versión completa en inglés:
- A4 para lectura e impresión
- A5 para ebooks
Descarga versión completa en inglés:
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.
- A4 para lectura e impresión
- A5 para ebooks
Sitio web del libro: http://beginners.re/
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".
El texto de arriba es un fragmento traducido de "Reverse Engineering for Beginners", también conocido como RE4B, un libro escrito por Dennis Yurichev (yurichev.com) para todo aquel que quiera introducirse en la ingeniería inversa del software. 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.
Además es gratuita bajo licencia Creative Commons Attribution-NonCommercial-NoDerivs 3.0.
Contenidos:
- Temas en profundidad: x86/x64, ARM/ARM64, MIPS, Java/JVM.
- 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.
Por el momento tenéis la versión en inglés, ruso y coreano. Si alguno está interesado en contribuir y traducirlo al castellano comentar la entrada para una posible colaboración.
Descarga versión completa en inglés:
- A4 para lectura e impresión
- A5 para ebooks
Descarga versión completa en inglés:
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.
- A4 para lectura e impresión
- A5 para ebooks
Sitio web del libro: http://beginners.re/
:) wou muy bueno
ResponderEliminarInteresado en echar una mano con la traducción.
ResponderEliminarpuedo ayudarles con la traduccion, minimo con el prologo o el indice.
ResponderEliminargenial! ya somos tres para traducir. Vamos a esperar por si alguien más se apunta y nos ponemos en contacto para repartir el trabajo. Saludos!
EliminarAyudo con la traduccion, ya somos 4 ¿cuando la empezamos?
EliminarBy: K20x1.
Yo tambien puedo colaborar en la traduccion
ResponderEliminar¿Alguien está traduciendo el libro al español?
ResponderEliminar