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.

Las Publicaciones más Vistas

Comandos Drozer Pentest Móvil