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 - Arkangel_0x7C5

#131
ASM / Re: [Problema] De buffer a variable
13 Julio 2009, 02:38 AM
Cita de: x0ʎu en 13 Julio 2009, 02:26 AM
es el problema de usar macros, te ocultan como funcionan en verdad las funciones  :rolleyes:

Ya, pero si usas asm, se deberia aprender primero como funcionan las cosas basicas. y luego usar algun que otro macro para tareas repetitivas.
Y al que no le gustelo de no usar casi macros, le recomiendo que use c/c++ porque en este lenguaje la verdadera ventaja esta en poder hacer las cosas desde realmente zero.

Saludos
#132
ASM / Re: [Problema] De buffer a variable
13 Julio 2009, 02:08 AM
haber, pongamos algo de orden. Normalmente los parametros se pasan a la funcion a traves de la pila y se devuelve un valor de retorno en el registro EAX.

Esto es cosa de las convenciones de llamada.

Saludos.

PD: Estas cosas deberian de salir en un buen tuto de asm
#133
Abril negro / Re: Proyecto Metamorph
12 Julio 2009, 01:56 AM
la version 2, por lo que he visto va a ser como una navaja suiza. jeje

OffTopic: Solo le falta hacer bocatas

Saludos
#134
gran trabajo de traducción amigo.

saludos Arkangel
#135
no es un error, a GetProcAddress también le pasa eso. La solución si te fijas es buscar el '.' para saber de que dll es y hacer otra llamada con los datos correctos. yo tengo la solución, pero este no es el lugar para colocar el code.

Saludos
#136
Cita de: YST en 15 Junio 2009, 01:37 AM
Cita de: Arcangel_0x7C5 en 15 Junio 2009, 01:07 AM
bueno, hay tienen el code, al que no le guste algo de el code :-(, que lo cambie. Lo de usar unos registros en puesto de otros es cuestión de gustos, yo si tengo registros sin usar no usare la pila, y siempre suelo dejar para los últimos edi y esi. lo de ah y al da lo mismo porque un caracter nunca superara el tamaño de 1 byte al menos con ascii.


Saludos

No te pongas sensible :xD . No es por usar los registro seguramente que lo dijo seguro se refiere a usar cmpsb.
ok ;D pero si usas cmpsb con el rep necesitaras saber la longitud de alguno de ellos. y no podría pasarlo de minúsculas a mayúsculas sin modificar lo en memoria. y a veces eso no es conveniente.

Saludos

PD:Pa mi gusto esta bien, lo único es que lo de Case Sensitive podría dar problemas con caracteres como el punto y demás
#137
bueno, hay tienen el code, al que no le guste algo de el code :-(, que lo cambie. Lo de usar unos registros en puesto de otros es cuestión de gustos, yo si tengo registros sin usar no usare la pila, y siempre suelo dejar para los últimos edi y esi. lo de ah y al da lo mismo porque un caracter nunca superara el tamaño de 1 byte al menos con ascii.


Saludos
#138
si usara esi y edi tendría que añadir 2 push y 2 pop para conservar los registros. De todas maneras, si quieres puedes quitar un test si le pones ax.

Saludos

PD:Con or 0x20 lo pasarías a minúsculas
#139
Prueba este, no hace falta saber el tamaño de la cadena si lo haces asi. Ademas que le puse la opcion de Case Sensitive.

Saludos
Código (asm) [Seleccionar]

StrCmp proc str1,str2,CaseSen;CaseSen = 1 desactiva el case Sensitibe e = 0 lo activa

push ebx
push edx
push ecx

mov ebx,str1
mov edx,str2
mov ecx,CaseSen
xor eax,eax

comparando:
mov ah,byte ptr[ebx]
mov al,byte ptr[edx]
test ecx,ecx
je CaseSensitibe
and ah, 0DFh
and al, 0DFh
CaseSensitibe:
cmp al,ah
jne diferente
inc ebx
inc edx
test al,al
jz fin
test ah,ah
jz fin
jmp comparando
diferente:
inc eax
fin:
pop ecx
pop edx
pop ebx

ret

StrCmp endp
#140
Cita de: Eliptico en 29 Mayo 2009, 00:39 AM
Ok.

Y a la hora de hurgar en los ejecutables y dll-s es mejor utilizar un debugger Ring0, Ring3 o es indiferente?

(supongo que la respuesta sera el Ring0, pero me gustaria saber porque) jejeje
Aver, la cosa es que si travajas con driver, estos se encuentran solo en ring0. y los exes y dll se ejecutan en ring3.

Se podria ver lo de ring3 en ring0, pero seria complicado de seguir. por eso normalmente se usa ring3 para los exes y dlls, y ring0 para cosas que esten en el nucleo