ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Ensamblador para la creacion de exploits


Enviado por   •  14 de Septiembre de 2022  •  Resumen  •  1.127 Palabras (5 Páginas)  •  62 Visitas

Página 1 de 5

EIP

El registro EIP(dirección de retorno), guarda la dirección de la siguiente instrucción a ejecutar. Tiene un tamaño de 32 bits.

Crear Ejecutables

Paso 1: Archivo de código de fuente creado por un editor de texto.

Paso 2: ensamblador como "nasm", lo cual este creara un archivo de código de objeto

Paso 3: Enlazador con el cual obtendremos el ejecutable y fin

___________________________________________________________________________________________________________________________________________________

SystemCalls(SysCalls)

Solicitudes al kernel para la ejecución de tareas, se utilizan debido a que manejar las caracteristicas de bajo nivel de las interfaces de hardware

puede ser muy complicado.

Para ver todas las syscalls disponibles vamos a la siguinete ruta /usr/include/x86_64-linux-gnu/asm/unistd_64.h

_____________________________________________________________________________________________________________________________________________________

Tipos de Datos

Byte 8 bits "AA"

Word 16 bits "AABB"

Double Word 32 bits "AABBCCDD"

Quad Word 64 bits "AABBCCDDEEFFGGHH"

Doble Quad Word 128 bits "AABBCCDDEEFFGGHHIIJJKKLLMMNNOOPP"

Datos inicializados

db - significa define byte, dw - define word, etc.

db 0x11 <-> byte 0x11

db 0x11,0x22,0x33 <-> bytes en sucesión

db 'a'.0x11 <-> carácter más una constante, ojo: aqui el caracter va a pasar a hexadecimal por ejemplo en este caso la 'a' sera 0x61+

dw 0x1234 <-> 0x34 0x12 <-- Aqui como te das cuenta los letras o numeros van al reves por que son little endian

dw 'a' <-> 0x61 0x00 <-- se define una palabra y sobra un byte se llena de carcater nulo, ojo: las letras siempre van en hexadecimal

dw 'ab' <-> 0x61 0x62 (caracteres)

dw 'abc' <-> 0x61 0x62 0x63 0x00 (string)

dd 0x12345678 <-> 0x78 0x56 0x34 0x12

dq 1.0563 <-> punto flotante

dq 0x123456789abcdef0 <-> 8 bytes constantes

Datos no inicializados

nombreVar: resb 32 <-> Reservar 32 bytes

nombreVar: rebw 1 <-> Reservar 1 palabra

___________________________________________________________________________________________________________________________________________________________

Estructura del Código en Assembly

global _start

section .text

_start:

mov eax, 0x4

mox ebx, 0x1

mov ecx, mensaje

mov edx, mlen

int 0x80

mov eax, 0x1

mov ebx, 0x7

int 0x80

section .data

mensaje: db "hola perro"

mlen equ $-mensaje

section .bss

var1: resb 100

var2: resq 200

1.- Primero se define la entrada en este caso es "_start"

2.- definimos la primera seccion que es ".txt" que es la del código fuente, de ahi si tenemos variables globales inicializas definimos ".data" y tambien si tenemos variables globales no inicializadas definimos ".bss".

___________________________________________________________________________________________________________________________________________

Instrucciones

#Etiqueta -> Instrucción -> Operando

mov EBP,EIP

perro: db 0x10

• Etiquetas: identificador simbílico que se da a la instracción. Puede tener hast 31 caracteres; el primero no numérico; indiferente usar mayúsculas o

...

Descargar como (para miembros actualizados) txt (7 Kb) pdf (51 Kb) docx (12 Kb)
Leer 4 páginas más »
Disponible sólo en Clubensayos.com