Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: .:UND3R:. en 22 Julio 2011, 06:41 am



Título: Duda con OP code LODS Y STOS
Publicado por: .:UND3R:. en 22 Julio 2011, 06:41 am
Eso, busqué referencias en google pero no me quedó claro
si me pudieran dar un ejemplo, sería mucho mejor

Saludos :D

PD:
Citar
LODS BYTE PTR DS:[ESI]

PD2:
Citar
STOS BYTE PTR ES:[EDI]


Título: Re: Duda con OP code LODS Y STOS
Publicado por: Иōҳ en 23 Julio 2011, 02:12 am
lods / lodsb / lodsw /lodsd
Se encargan de copiar un byte, word o dword, de la dirección indicada por DS:ESI, al registro AL, AX o EAX, según lo que va a copiar indicado por el sufijo de la instrucción

stos / stosb / stosw / stosd
estás instrucciónes podría decirce que son las "inversas" de las anteriores, ya que colocan el contenido de AL, AX o EAX, según lo que va a copiar indicado por el sufijo de la instrucción, en la dirección indicado por ES:EDI.

Que mejor ejemplo de crear un programa usando ese mnemónico y mirandolo en el Olly como actua D=.

Nox.


Título: Re: Duda con OP code LODS Y STOS
Publicado por: _Enko en 23 Julio 2011, 02:20 am
Te falto un detalle importante.

lodsb y stosb incrementan esi y edi respectivamente (Si NO esta puesto DF, si DF esta puesot, decrementa esi y edi respectivamente)


muy comodo a la hora de mover cadenas si se esta haciendo un auto-keygen.
Código:

   mov esi, cadena_original
   mov edi, cadena_destino
   mov ecx, tamano_cadena
label:
   lodsb
   stosb
   loop label


por cierto und3r, lodsb y stosb no son opcodes. "AC" y "AA" son los opcodes.
stosb y  lodsb son MNEMONICOS,  o mejor aun  INSTRUCCIONES del ensamblador.

Es lo que hace el ensamblador, convertir "stosb" en  "AA"
saludos


Título: Re: Duda con OP code LODS Y STOS
Publicado por: Иōҳ en 23 Julio 2011, 02:34 am
exacto, me falto ese punto =B, aunque sí de mover cadenas se tratase puedes usar
rep movsx; movs / movsb /movsw / movsd
;siendo "x" el sufijo que indica el tamaño a moverse.
usando el registro ecx, para decirle el numero de veces a mover, bueno es cuestion de gustos. Aunque no se que tiene que ver con la su pregunta, se lo menciono porseacaso, jeje  :P

EDITO: me olvidaba, esi y edi incrementen en este caso usando rep movsx si DF está activo, si no decrementa XD.

Nox.


Título: Re: Duda con OP code LODS Y STOS
Publicado por: .:UND3R:. en 23 Julio 2011, 06:20 am
Muchas gracias por las respuestas  ;-)

Saludos