Programación General > ASM (Ensamblador)

 Problema con Source

(1/2) > >>

XjersonX:
Bueno Soy nuevo en la web y tengo una duda.

Lo que sucede esque cree un source que busque por toda la memoria unos determinados bytes y los sobreescriba.
Por ejemplo.

Buscar : 1234567891h
Reemplazar solo el ultimo byte por 92h

Lo que sucede esque en ASM solo me dejan hacerlo pero como maximo hasta 8 bytes osea hasta 12345678h.


push eax
mov eax,04000000h ; Desde aqui empiesa a buscar desde la direccion 04000000
xor cx,cx

bucle:
inc eax

cmp dword ptr[eax],12345678h ; no me deja buscar 1234567891h solo hasta 8 bytes osea hasta 12345678h

jz Final
Loop bucle

Final:
mov dword ptr[eax+6],92h ; sobreescribo los dos ultimos bytes por 92 y deveria quedar 12345692h


   jmp bucle


Bien , la cuestion es como buscar todo si solo me deja hasta 8 bytes y lo que tengo son 10 bytes?.

PD: Solo me falta esa parte lo demas esta hecho el SEH y el resto del codigo. Solo me falta ese pedasito ayuda !

m0skit0:
Bueno, si encuentras 0x12345678 sólo te falta comprobar si el siguiente byte (ptr[eax]+1) es 0x91  ;)

Y por favor, la próxima vez utiliza las etiquetas de código.

Eternal Idol:
Son 4 bytes, cada numero hex representa 4 bits, siempre podes hacer dos comparaciones ... dword ptr [eax] y byte ptr [eax+4].

XjersonX:
Muchas gracias con la doble comparacion me basto.

Eternal Idol:
De nadas  B)

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa