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

#3131
ASM / Re: [?]Registros de Windows <.<
10 Marzo 2010, 00:22 AM
A RegSetValueEx  y RegCloseKey les tenes que pasar el HANDLE y no un puntero al mismo. El ultimo parametro de RegSetValueEx es "The size of the information pointed to by the lpData parameter, in bytes." y le estas pasando 1, pasale el tamaño de un DWORD (4 bytes). El anterior es el buffer, donde tenes que poner el DWORD que queres escribir ... no tiene que ser un valor indefinido.

Otra cosa, RegOpenKeyEx:
Return Value
If the function succeeds, the return value is ERROR_SUCCESS.

ERROR_SUCCESS es 0 asi que estas haciendo la comparacion mal.

PD. Son claves del registro no carpetas.
#3133
ASM / Re: duda con imprimir en (X,Y) punto
9 Marzo 2010, 00:56 AM
¿Ya probaste pasando valores distintos a ir_a cada vez?
#3134
ASM / Re: Punteros en Asm32
22 Febrero 2010, 01:07 AM
Puede ser pero no sirve para modo Kernel  ::)
#3135
ASM / Re: Punteros en Asm32
22 Febrero 2010, 00:40 AM
Tambien aunque yo prefiero el WinDbg, arriba tiene como configurarlo para que se abra automaticamente pero no lo habra leido  :silbar:
#3136
ASM / Re: Punteros en Asm32
21 Febrero 2010, 21:16 PM
Es un breakpoint, para depurar el programa.
#3137
ASM / Re: Punteros en Asm32
21 Febrero 2010, 20:45 PM
A MessageBox le tenes que pasar CADENAS ... ademas eso seguramente este dando una excepcion debido a que esa direccion (800h) es invalida.

Código (asm) [Seleccionar]
.data
  msg1 db "hola", 0
  msg2 db "mundo", 0

.code
  main:
    int 3
    mov ecx, offset msg1
    mov edx, offset msg2
    invoke MessageBox, 0, ecx, edx, 0
#3138
ASM / Re: Punteros en Asm32
21 Febrero 2010, 13:05 PM
Cita de: Riki_89D en 21 Febrero 2010, 12:41 PMosea que esto estaria bien??:
Código (asm) [Seleccionar]

MOV ECX,800h    ;Direccion de memoria en donde hay un valor
MOV EAX,dword ptr [ECX]     ;Copia valor de la direccion 800h a EAX



en EAX quedaria el valor que esta almacenado dentro de la memoria 800h no?¿

Si, ECX es el puntero (a 800h) y estas desreferenciandolo. Moves EAX el DWORD al cual apunta ECX.

Siguiendo el ejemplo de antes podes depurarlo tambien, en al quedara 'h' (68 en hex, 104 en dec=ASCII):

Código (asm) [Seleccionar]
.386
.model flat, stdcall

.data
 msg db "hola", 0

.code
 main:
   int 3
   mov ecx, offset msg
   mov al, byte ptr [ecx]
 ret
end main
#3139
ASM / Re: Punteros en Asm32
20 Febrero 2010, 22:57 PM
Código (asm) [Seleccionar]
.386
.model flat, stdcall

.data
 msg db "hola", 0

.code
 main:
   int 3
   mov ecx, offset msg
   mov byte ptr [ecx], 'c'
 ret
end main


Podes hacer un ejercicio, bajas las Debugging Tools for Windows.
Vas al directorio de instalacion con la consola y ejecutar WinDbg.exe -I para instalarlo como depurador post-mortem.
Ejecutas este ejemplito (MASM), se va a abrir directamente el WinDbg (por el int 3).
Le das a F11 dos veces y haces da @ecx, despues le das a F11 otra vez y haces da @ecx otra vez.

PD. Si lo haces correctamente veras que ecx es un puntero a msg y cambiaste el primer caracter ('a') por una 'c'.
#3140
A favor, en el peor de los casos no entraria nunca asi que no me afectaria en lo mas minimo.