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 - 0xDani

#731
ASM / Re: Cargar modulo del kernel Linux.
25 Noviembre 2012, 16:43 PM
El or y el add los utilizo para que no me queden ceros en la sección .text del binario, porque pensaba utilizarlo como una especie de shellcode.

Los argumentos de la syscall son un puntero a void, un unsigned long y un puntero a char. El unico que se para que sirve es el puntero a char, que son los argumentos que se le pasan al modulo.

Y si, si se rellenar una estructura en C, de hecho es mi primer lenguaje, y ASM esta siendo mi segundo.

En cuanto a lo de la backdoor me vendria genial ver ese codigo, me lio mucho con los sockets en ASM.

Saludos!
#732
Alguno dedicado a Linux.

Saludos.
#733
ASM / Re: Cargar modulo del kernel Linux.
24 Noviembre 2012, 14:07 PM
Tampoco funciona con _init_module. Va a ser que no linko con la libreria adecuada.
#734
ASM / Re: Cargar modulo del kernel Linux.
22 Noviembre 2012, 18:27 PM
Puedo incluir linux/module.h en el programa en assembly? Es decir, puedo incluir headers de C en programas en assembly?
#735
ASM / Cargar modulo del kernel Linux.
22 Noviembre 2012, 17:21 PM
Hola!

Veran estoy haciendo un pequeño codigo en asm que debe comprobar si se tienen permisos de root y si los tiene cargar un modulo del kernel. Al parecer hay una syscall que lo hace, la 0x31, pero he optado por llamar a la funcion de C(http://www.kernel.org/doc/man-pages/online/pages/man2/init_module.2.html). Tengo dos problemas:

-No se el tamaño de la struct image, y no lo encuentro por ninguna parte.
-No se con que hay que linkar o que hay que hacer para hacer un call a init_module, el assembler (nasm) me dice: 'symbol "init_module" undefined'.

Y en realidad tengo otro, y es que no se si tengo que rellenar la estructura o algo, no hay ejemplos ni nada, pero con eso ya me apaño.

Código (asm) [Seleccionar]

extern init_module
section .text
global _start

_start:

xor eax,eax
add eax,0x31
int 0x80
test eax,eax
jz init

exit:
xor eax,eax
inc eax
xor ebx,ebx
or ebx,eax
int 0x80

init:
xor eax,eax
or eax,80
add eax,48
push image
jmp n
m:
call init_module
jmp exit

n:
call m
name:
db "mylkm.o",0



section .bss

image: resb (tamanio de struct image)


Saludos y gracias de antemano ;D

Edit: Tenia que declarar init_module como extern claro :') Ahora el ensamblador no me dice nada, pero el linker me salta con undefined reference to 'init_module'.
#736
Que gil*pollez de noticia. Los adolescentes ocultamos muchisimas cosas a nuestros padres, tanto en la red como en la vida real. Pero eso es evidente, se da por hecho. Y excepto lo de comprar drogas el resto no tiene mucho fundamento...

Saludos.
#737
Programación C/C++ / Re: Iniciandome en C
18 Noviembre 2012, 14:06 PM
Cita de: hlastras en 18 Noviembre 2012, 02:02 AM
Bueno, probandolo en otra maquina, la de la uni que trabaja bajo UNIX, lo he compilado con esa y lo he ejecutado y parece que avanza mas, pero hay un punto en el que me sale el mensaje de VIOLACION DE SEGMENTO, que segun nos explico el profesor es cuando accedemos a memoria que no nos corresponde como usuarios

Ahi el problema suele estar en en el uso de punteros o arrays, por ejemplo si tienes una variable que hace de indice y no la reseteas a 0 a cada iteracion de un bucle o algo asi. Revisa como usas los punteros y los arrays.

Saludos.
#738
Cita de: Xafi en 16 Noviembre 2012, 14:56 PM
Jaja al Estilo GTA

Nah, es mas como Ocean's Eleven xD
#739
Cita de: C_1^N en 14 Noviembre 2012, 20:59 PM
Hola Oscar34!
te convendria usar la funcion perror para marcar los errores de creacion de socket, bind, conexion, etc ya que te devolveria el error detallado de lo que esta pasando, tal vez asi te des cuenta en que esta fallando.

Saludos!

Si, es una buena costumbre poner comprobaciones despues de cada funcion para saber que esta fallando. Y tambien usar etiquetas GeSHi, para que el codigo sea legible  ;)