¿Qué tipo de ingeniería inversa quieres lograr?
Ingeniería inversa de software? ¿Ingeniería inversa del controlador de dispositivo? ¿Ingeniería inversa del firmware del circuito integrado? ¿Una ingeniería mecánica inversa del motor?
La respuesta a su pregunta dependerá de cuál sea el objetivo que desea revertir.
Consideraré que te referías a Ingeniería inversa de software.
- ¿Qué libro debo leer para dejar de pensar?
- Cómo hacer tiempo para leer
- ¿Qué libros disfrutaste más leyendo a pesar de las críticas negativas en Amazon.com?
- ¿Cuál sería el mejor libro para un adolescente para leer que no llevará mucho tiempo completar?
- ¿Cuáles son algunos buenos libros de psicología que debe leer un graduado de ingeniería que trabaja en un puesto directivo?
Para comenzar su camino en Ingeniería inversa de software, deberá tener una sólida base de comprensión de los siguientes temas:
- La arquitectura del procesador en la que se ejecuta su software de destino.
- El compilador con el que se compiló el software de destino.
- La estructura de imagen ejecutable de su archivo ejecutable de destino.
- Los idiomas en los que se escribió el software de destino.
El primero, la Arquitectura del procesador, es el más importante, ya que cuando se trata de un software de código cerrado, está trabajando en el código generado por la máquina que fue el resultado del compilador del lenguaje en el que se escribió el software. Cuanto más sepa sobre el procesador, más fácil será manejar, interceptar y analizar el código.
Además, el conocimiento del compilador es demasiado importante para algunas técnicas anti-desmontaje que podrían ser un obstáculo (difícil) en su viaje de marcha atrás.
El conocimiento del formato de archivo ejecutable del sistema operativo en el que se ejecuta su objetivo también es un aspecto importante, que revela un tesoro de información sobre el archivo que se está ejecutando, por ejemplo, lo más probable es que necesite saber las tablas que apuntan a los diferentes módulos importados / exportados que el software necesita para ejecutarse de la manera prevista, o la lista de funciones que se utilizan en el archivo ejecutable.
Finalmente, a veces, si sabía en qué idioma estaba escrito el software, le será más fácil ir directamente a analizar partes específicas del código, en lugar de perder mucho tiempo en seguir cada instrucción.
Por lo tanto, Reverse Engineering no tiene un libro que le enseñe a seguir algunos pasos y podrá revertir con éxito un software / archivo específico. Como puede ver, depende en gran medida de su comprensión del entorno en el que se ejecuta el archivo ejecutable.
Sugiero fuertemente los siguientes libros como lecturas adicionales sobre algunos trucos reversibles / antitricks:
Inversión: Secretos de ingeniería inversa: Eldad Eilam: 8601300478531: Amazon.com: Libros
Análisis práctico de malware: la guía práctica para diseccionar software malicioso: Michael Sikorski, Andrew Honig: 8601400885581: Amazon.com: Libros