martes, 29 de marzo de 2016

Ingeniería inversa para Los principiantes - Introduccion

Code patterns -  patrones de código

Cuando el autor de este libro comenzó a aprender C y, después, C ++, que solía escribir pequeñas piezas de código, compilar, y que se ven en la salida del lenguaje ensamblador.
Esto hace que sea muy fácil para él entender lo que estaba pasando en el código que había escrito. Lo hizo tantas veces que la relación entre
código el C/C++  y lo que el compilador fue producido marcar profunda en su mente. Es fácil imaginar al instante un esbozo de C apariencia códigos y función. Quizás esta técnica podría ser útil para los demás.
Hay veces, que se usan los compiladores antiguos aquí, con el fin de obtener el más corto (y más simple) fragmento de código posible.
Exercises - Ceremonias
Cuando el autor de este libro estudio el lenguaje ensamblador, que a menudo también compilaba con pequeñas funciones de C y que luego se escriben de forma gradual hasta el montaje, tratando de hacer su código lo más corto posible.Esto probablemente no vale la pena hacerlo en escenarios del mundo real hoy en día, porque es difícil competir con los ordenadores modernos en términos de eficiencia.sin embargo, eso es una muy buena manera de obtener una mejor comprensión del conjunto.
No dude, por lo tanto, para tomar cualquier código ensamblador de este libro y tratar de hacerlo "corta". Sin embargo, no se olvide de poner a prueba lo que hay escrito.
Optimization levels and debug information - niveles de optimización e información de depuración
El código fuente puede ser compilado por diferentes compiladores con diversos niveles de optimización. Un compilador típico tiene alrededor de tres niveles, tales donde el nivel cero indica mejoramiento deshabilitado . La optimización también puede ser dirigido hacia el tamaño del código o la velocidad de código.
Un compilador no la optimización es más rápido y produce código más comprensible (aunque verbosa), mientras que un compilador de optimización es más lento y trata de producir código que corre más rápido (pero no necesariamente es más compacto).
Además de los niveles de optimización y dirección, un compilador puede incluir en el archivo resultante alguna información de depuración, código produciendo así haciendo una fácil depuración.
Una de las características importantes del código de depuración 'es que puede contener enlaces entre cada línea del código fuente y las respectivas direcciones de código de máquina.
La optimización de los compiladores, por el contrario, tienden a producir una salida donde las líneas enteras de código fuente se pueden optimizar de distintas "distancia" maneras  y por lo tanto ni siquiera estar presente en el resultado código de máquina.
La ingeniería inversa pueden encontrar ya sea la versión, simplemente porque algunos desarrolladores se convierten en los parámetros de optimización del compilador y otras no. Debido a esto, vamos a tratar de trabajar en ambos ejemplos de depuración y liberar las versiones del código presentado en este libro, siempre que sea posible. 
  

No hay comentarios.:

Publicar un comentario