Diferencia entre revisiones de «Ingeniería Inversa/Desensambladores»

Contenido eliminado Contenido añadido
Rotxa (discusión | contribs.)
Rotxa (discusión | contribs.)
Línea 101:
:http://developer.apple.com/documentation/Darwin/Reference/ManPages/man1/ndisasm.1.html
 
== Problemas del desensamblador ==
== Disassembler Issues ==
 
=== SeparatingSeparatción Codede fromcódigo Datay datos ===
 
Puesto que tanto instrucciones como datos están almacenados como datos binarios en un fichero ejecutable, una pregunta surge espontáneamente: ¿Como puede un desensamblador separar código de datos? ¿Es un byte en particular una variable, o parte de una instrucción?
Since data and instructions are all stored in an executable as binary data, the obvious question arises: how can a disassembler tell code from data? Is any given byte a variable, or part of an instruction?
 
El problema
 
The problem wouldn't be as difficult if data were limited to the .data section of an executable (explained in a later chapter) and if executable code was limited to the .code section of an executable, but this is often not the case. Data may be inserted directly into the code section (e.g. jump address tables, constant strings), and executable code may be stored in the data section (although new systems are working to prevent this for security reasons).