Blog con notas, publicaciones sobre exploits, uso de herramientas, búsqueda de vulnerabilidades y más. @Yonatan_correa
Mostrando las entradas con la etiqueta registers. Mostrar todas las entradas
Mostrando las entradas con la etiqueta registers. Mostrar todas las entradas
04 mayo 2018
Notas, Registers, opcode y comandos
Bueno, este post quiero que sea más para aprender algunos conceptos y tener algunas ideas más clara de algunas cosas y definiciones
Estas son la definiciones según wikipedia:
Opcode: En informática, un opcode (operation code) o código de operación, es la porción de una instrucción de lenguaje de máquina que especifica la operación a ser realizada
Assembly: El lenguaje ensamblador, o assembler (en inglés assembly language y la abreviación asm), es un lenguaje de programación de bajo nivel. Consiste en un conjunto de mnemónicos que representan instrucciones básicas para los computadores, microprocesadores, microcontroladores y otros circuitos integrados programables.
Pila o Stack: Una pila (stack en inglés) es una lista ordenada o estrutura de datos que permite almacenar y recuperar datos, el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In, First Out, «último en entrar, primero en salir»).
shellcode: Una shellcode es un conjunto de órdenes programadas generalmente en lenguaje ensamblador y trasladadas a opcodes (conjunto de valores hexadecimales) que suelen ser inyectadas en la pila (o stack) de ejecución de un programa para conseguir que la máquina en la que reside se ejecute la operación que se haya programado.
Los 8 registros de propósito general
EAX - El Acumulador registro: este también acumula el resultado de
los cálculos de la CPU
ECX - El contador de registro: se suele usar en bucle
EDX - El registro de datos: extensión de eax para cálculo más complejos
EBX - El registro base: apoya los cálculos de operaciones
EBP - El puntero de base: indica la base del frame de la pila
ESI - El índice de origen: localización de los datos de entrada
EDI - El índice de destino: donde se almacenan los datos
ESP - El puntero de pila: indica la cima de la pila
04 abril 2018
Buffer Overflow Básico Parte 1
En esta entrada, haremos un Buffer Overflow Básico. Parte 1.
En esta parte y como todo tema de inicio, meteremos un poco de teoría.
Según wikipedia un Buffer Overflow o Desbordamiento de búfer tiene la siguiente descripción
Wikipedia dice así: En seguridad informática y programación, un desbordamiento de búfer (del inglés buffer overflow o buffer overrun) es un error de software que se produce cuando un programa no controla adecuadamente la cantidad de datos que se copian sobre un área de memoria reservada a tal efecto (buffer): Si dicha cantidad es superior a la capacidad preasignada, los bytes sobrantes se almacenan en zonas de memoria adyacentes, sobrescribiendo su contenido original, que probablemente pertenecían a datos o código almacenados en memoria. Esto constituye un fallo de programación.
En lenguaje coloquial: es cuando tu rebosas un vaso con agua o cerveza como quieras, y al sobrecargarlo con una cantidad mayor a la que debería recibir, provoca que se derrame y haga un desastre. En un programa provoca que haga crashh :)
Ahora ahí algunos cosas que debemos tener pendiente:
Registers
EAX – The Accumulator Register
ECX – The Counter Register
EDX – The Data Register
EBX – The Base Register
ESP – The Stack Pointer
EBP – The Base Pointer
ESI – The Source Index
EDI – The Destination Index
The Instruction Pointer (EIP)
Estos son los registers que tambien veremos en el debugger, en un post posterior lo describiremos más exhaustivamente.
Ya casi estamos por empezamos paciencia paciencia.
Suscribirse a:
Entradas (Atom)