conociendo el debugger y sus funciones

partes del debugger



Desensamblado :
listado desensamblado de un programa donde contiene el análisis  del programa cuenta con 4 columnas que dan información del programa que estemos analizando.

1) adress ( direccion) :
muestra la dirección donde se ejecutara el código

 2) hex dump :
muestra los bits que hay en la instrucción que hay en la columna disassembly .
3) disassembly:
indica el desensamblado del programa .
4) comentarios(comment)t: nos muestra comentarios propios , cadenas de texto , direcciones , datos almacenados , instrucciones detalles de donde estemos. nosotros también podemos agregar comentarios a una dirección.


ejemplo de como leer el desensamblado:

tomamos la primera linea
                     
direccion: 00401000
hex dump : 6A 00
desensamblado: push 0x0
comentario : ENTRYPOIN

Registros:
son contenedores de datos  donde se guardan los valores y podemos consultar un valor unico :



EAX ((Extended Accumulator Register); almacena  el valor de retorno de una función , se usa como contenedor, es un registro volatir ya que su valor no es almacenado aunque establezca el valor de una función.

EBX (Extended base register) : se utiliza para acelerar el calculo de las operaciones.

ECX(extended counter register): contador volatir se usa para contador de bucle o contenedor de parámetros que se pases a funciones .

EDX (extended data register): registro volatir usado como parámetro de funciones se usa para almacenar parámetros a corto plazo dentro de una función.

ESI:( extended source index) : registro no volatir usado mayormente como puntero , usando para funciones que llevan origen y destino para los datos apuntando siempre al origen .

EDI: (extended destination index ): es no volatir al igual que ESI solo que este apunta siempre al destino .

EBP: (extended base pointer): registro no volatir , puede ser un registro o puede ser el puntero al marco de  pila .

ESP: ( extended stak pointer) : almacena puntero en la parte inferior de la pila tras ejecutar una funcion al valor que tenia el registro .

EIP (Extended Instruction Pointer):  Contiene la direccion de memoria donde empieza la próxima instrucción a ejecutar, a no ser que se produzca un salto o una llamada a subrutina (función).



  • división de los registros:

  • 8 registros de 32 bits: EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP EIP
  • 8 registros de 16 bits: AX, BX, CX, DX, SI, DI, BP, SP, IP
  • 8 registros de 8 bits: AH, AL, BH, BL, CH, CL, DH, DL
  •  
  • mas adelante estaremos explicando sobre los registros de 16 y 8 bits y estaremos dando ejemplos aplicado de el cambio que hacen y los valores que se registran mientras analizamos un programa.

FLAGS (banderas) : son bits que nos indica el estado de algo en arquitecturas de 32 bits tenemos 32 banderas en total . ( mas adelante estaremos detallando los tipos de flags ).


PILA O STACK: es la zona de la memoria donde se almacenan los datos que mas adelante recuperaremos .


DUMP: 
nos muestra la  visualización hexadecimal de 8 columnas o bytes 



  • mas adelante les mostrare como se modifican los valores y como  ver los volcados y para que sirve cada una de esas funciones a medida que se vayan desarrollando los ejemplos ...
pueden ingresar al canal de telegram  de  ingenieria inversa donde podran estar pendiente a los hangouths .







Comentarios

Entradas populares