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 - Eternal Idol

#2681
La verdad es que no me habia referido a eso, ni habia visto ese cambio pero si podria ser un problema si EAX es por ejemplo 0xFFFFFFFF ...
#2682
En realidad por logica push y pop no sobran, estas sobreescribiendo la direccion de retorno, que se guarda en la pila, es cierto que salis con una interrupcion del programa PERO si queres hacer eso en una funcion cuando hagas ret te vas a arrepentir. No hay bytes nulos, su valor sera el mismo que tenian antes, el unico que cambia es el que nos interesa ...
#2683
VB exporta las funciones con la convencion de llamada stdcall:

typedef void(__stdcall *PF)();
#2684
De nadas  ::)
#2685
Como te dije no uso *NIX asi que lo vas a tener que probar vos el codigo:

Código (asm) [Seleccionar]

push ecx ;no importa lo que haya, despues ponemos la 'A'
;no sera una cadena terminada correctamente
;pero como especificamos el tamaño en count no importa
mov byte ptr [esp], 041h ;sintaxis MASM
mov eax, 0x4   ; write (1, "A", 1);
mov ebx, 0x1 ;fd <<
mov ecx, esp ;buffer <<
mov edx, 0x1 ;count <<
int 80H
pop ecx



Feliz año nuevo.
#2686
Con pasar una direccion de memoria donde haya una 'A' (0x41) y que count (edx) sea 1 es suficiente. Para no usar .data podrias usar la pila ... proba ... no uso *NIX y encima es 31 de Diciembre  :silbar:
#2687
El segundo parametro (ecx) es una CADENA y no un caracter.

http://linux.die.net/man/2/write
#2688
¿Y CreateProcess devuelve true (1)?
#2689
¿Y que dice GetLastError?   :silbar:
#2690
Depuralo hasta comprender donde y como falla.