Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - cpu2

#661
ASM / Re: Ayuda con funcion "Split"
28 Marzo 2013, 01:02 AM
Cita de: Vaagish en 27 Marzo 2013, 22:09 PM
Hola gentes!
Como deberia recorrer el string caracter por caracter ? Yo me encargo del cmp, del jmp y todo lo demas :D

A ver si lo entiendo porque la verdad esto se esta desviando, quieres mover carácter por carácter a eax no?

Para luego imprimir cada carácter con la api messagebox?

Sguiendo el código anterior hice esto aver si te puede ayudar

Código (asm) [Seleccionar]
_C.0

lodsb
cmpb $0x7c, (%rsi)
jne _C.0


Copia byte por byte a al "eax de 8 bit", hasta que se encuentre con "|" es eso lo que quieres?

Cita de: Vaagish en 27 Marzo 2013, 22:09 PM
Y Gracias cpu2 tambien pero eso es fasm, no? apenas puedo con masm aun jejeje

De nada, se trata de la sintaxis de AT&T, los ejemplos son de 64 bits solo los tienes que traducir a nasm y 32 bits.

Un saludo.
#662
ASM / Re: Ayuda con funcion "Split"
27 Marzo 2013, 10:52 AM
Hola

Esto puede ayudarte.

Código (asm) [Seleccionar]
.section .data

cadena:
.ascii "dddabbb"

.section .text
.globl _start

_start:

push cadena

_C.0:

incq %rsp
cmpb $0x61, (%rsp)
jne _C.0

incq %rsp
movl (%rsp), %edi
incb %al
syscall


Si quieres que copie las "d", elimina el inc de la línea 19 y el mov dejalo así

Código (asm) [Seleccionar]
movl -0x4(%rsp), %edi

Es un ejemplo que hice, se puede mejorar mucho más.

Un saludo.
#663
Gracias por compartir.

CitarLuego de ejecutar 'nexti' nos lleva a la siguiente instrucción, y si la verificamos con examine para ver donde esta parado EIP, nos encontramos con un JLE. Como recordamos, J.. es sinónimo de JUMP, pero en este caso es un salto 'condicional' que significa JUMP LESS EQUAL. Y quiere decir que SALTA, SI ES MENOR o IGUAL.....

Como evidentemente esto es cierto, ya que 0 es menor que 4.. entonces salta a la dirección 0x804841f.

Los saltos condicionales, saltan por el estado de las rFLAGS.

Un saludo.
#664
Unix/Unix-Like / Incluir cabezales ".h"
18 Marzo 2013, 19:51 PM
Estoy realizando un programa en ASM y necesito recurrir a las librerias de C.

Probé la directiva .extern pero sin resultado, compilando el ".S" con gcc opción -nostdlib pero nada.

Se pueden incluir los cabezales con ld?
Cuál seria la forma?

Si eso no es posible la única forma seria pasar la función a syscall, pero eso no seria portable para otras plataformas no?

Un saludo.
#665
Hacking / Re: Duda con Shellcode
15 Marzo 2013, 05:03 AM
Cita de: 10537 en 15 Marzo 2013, 01:05 AM
por cierto me dejaste con la curiosidad de la linea 10.

El segundo argumento, te permite construir una cadena y esa misma sera el nombre del proceso.

Cita de: 10537 en 15 Marzo 2013, 01:05 AM
También tengo una duda en el segundo fuente de porque agregas a al la dirección 0x0b

add $0x0b, %al

Estoy sumando 11 al registro al, pero esta en hexadecimal.

Cita de: 10537 en 15 Marzo 2013, 01:05 AM
¿Porqué se debe hacer así?

Puedes hacerlo como quieras, es lo bueno de ASM.

Código (asm) [Seleccionar]

or $0x0b, %al

xor $0x0b, %al     

sub $0xc, %al   
notb %al

push $0x0b
pop %rax

mov $0x0b, %al

add $0x0b, %al


Son más eficientes el mov y el add.
Los tres primeros solo funcionan si al vale cero, son ejemplos no hagas cosas así.

Un saludo.
#666
Unix/Unix-Like / Libros sobre LKM
14 Marzo 2013, 20:10 PM
Alguien conoce algún libro no demasiado obsoleto que traté sobre los LKM?

Yo encontré este, que les parece?

Unix Systems for Modern Architectures

Un saludo.
#667
Hacking / Re: Duda con Shellcode
12 Marzo 2013, 19:28 PM
Esta sería la de 19 bytes.

Código (asm) [Seleccionar]
.section .text
.globl _start

_start:

push $0x68732f6e
push $0x69622f2f
mov %esp, %ebx
push %eax
mov %esp, %ecx
add $0x0b, %al
int $0x80


La línea 6 y 7: Cargan la dirección en el stack, si traduces los valores en hex veras que es //bin/sh.

Línea 8: Copia la dirección al primer argumento ebx, la dirección que mueves apunta a //bi, al segundo push, lee todo hasta que se "tope" con un cero que como tendrías que saber significa fin de la cadena.

Línea 9: Al valer eax cero, carga un NULL en el stack.

La 10 como la 8, pero ojo el segundo argumento no es como el primero hace otra cosa, pero no viene al caso, si quieres lo explico.

Las restantes no creo que hagan falta explicarlas.

Esas dos barras absolutas no me gustan, aunque pese más para mí esta mejor este.

Código (asm) [Seleccionar]
.section .text
.globl _start

_start:

push $0xff978cd0
notl (%esp)
push $0x6e69622f
mov %esp, %ebx
push %eax
mov %esp, %ecx
add $0x0b, %al
int $0x80


Cargas /sh0 pero en negativo, ese not de la línea 7 vuelve positiva la dirección ala que esta apuntando esp, en este caso el primer push y lo deja /sh0, este metodo se utiliza para no dejar bytes núlos.

Código (asm) [Seleccionar]
push $0x68732f ; 68 2f 73 68 00

Un saludo.
#668
Hacking / Re: Duda con Shellcode
9 Marzo 2013, 21:32 PM
Cita de: 10537 en  9 Marzo 2013, 19:41 PM
Creo que mi código en ASM esta mal de pies a cabeza, y la segunda opción sería que no entendí las recomendaciones de CPU2

Exacto, me refería a esto:

Código (asm) [Seleccionar]
pushl %eax
movl %esp, %ecx


Tú código:

Código (asm) [Seleccionar]
mov esp, eax
lea ecx, [eax]


1: No estas cargando eax en el stack, estas copiando su contenido a esp, estas destruyendo la dirección de esp.
2: Estas copiando el contenido de eax a ecx, el segundo parametro de execve requiere un puntero.

Cita de: 10537 en  9 Marzo 2013, 19:41 PM
Creo que me falta leer mucho más, y pelear también mucho mas con el ASM para poder realizar una Shellcode optimizada y desde cero, si alguien me recomienda algunos tutoriales se los agradecería mucho, bueno la verdad estoy contento porque, poco a poco estoy logrando comprender las Shellcodes.

Puedo hacer eso del "spoiler", tendrás una SC optimizada y si quieres te ayudo a entenderla.

Un saludo.
#669
ASM / Re: Argumento 64 bits.
6 Marzo 2013, 16:29 PM
Ya solucioné el problema, la instrucción syscall salva rip en rcx lo "destruye", se tiene que usar r10.

Un saludo.
#670
ASM / Re: [Micro-rutina] strlen - ANSI
5 Marzo 2013, 20:31 PM
La mia devuelve 1 si la cadena es núla, el código esta escrito en unix-like.

Código (asm) [Seleccionar]
.section .data

cadena:
.ascii ""

.section .text
.globl _start

_start:

pushq $cadena
popq %rbx

C.0:
incb %bl
incb %dl
cmpb %al, (%rbx)
jne C.0
movl %edx, %edi
movb $0x1, %al

syscall


14 bytes C.0.

Kdump:
CALL  exit(0x1)

Un saludo.