• Viernes 29 de Marzo de 2024, 06:48

Autor Tema:  Problema con Source  (Leído 2314 veces)

XjersonX

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Problema con Source
« en: Martes 28 de Abril de 2009, 17:42 »
0
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

  • Miembro de PLATA
  • *****
  • Mensajes: 2337
  • Nacionalidad: ma
    • Ver Perfil
    • http://fr33kk0mpu73r.blogspot.com/
Re: Problema con Source
« Respuesta #1 en: Martes 28 de Abril de 2009, 17:47 »
0
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

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema con Source
« Respuesta #2 en: Martes 28 de Abril de 2009, 17:58 »
0
Son 4 bytes, cada numero hex representa 4 bits, siempre podes hacer dos comparaciones ... dword ptr [eax] y byte ptr [eax+4].

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

XjersonX

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Problema con Source
« Respuesta #3 en: Martes 28 de Abril de 2009, 18:32 »
0
Muchas gracias con la doble comparacion me basto.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema con Source
« Respuesta #4 en: Martes 28 de Abril de 2009, 18:39 »
0
De nadas  B)

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

XjersonX

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Problema con Source
« Respuesta #5 en: Martes 28 de Abril de 2009, 21:59 »
0
Hola denuevo ! miren tengo otro problema espero que me ayuden T_T

push eax
mov eax,04000000h
xor cx,cx

bucle:
inc eax

cmp dword ptr[eax],12345678h
cmp byte ptr[eax+4],91h

jz Final
Loop bucle

Final:
mov byte ptr[eax+4],92h
jmp bucle


Todo perfecto verdad? . Pero lo que pasa esque quisiera hacerlo que comparara entre un numero determinado y solo los que esten en ese rango se sobreescriban.

Por ejemplo:

push eax
mov eax,04000000h
xor cx,cx

bucle:
inc eax

cmp dword ptr[eax],12345678h
cmp byte ptr[eax+4],91h ; Aki hacerlo que se sobreescriban por 92h todos los que esten en un rango por ejemplo entre 91 a 99.

jz Final
Loop bucle

Final:
mov dword ptr[eax+4],92h
jmp bucle

Lo mas cuerdo es hacerlo con los simbolos de Matematicas , == Suma resta , etc.. Pero nos e como lo podria hacer. Ayuda !

De ante mano gracias muxaxos me estan ayudando mucho.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema con Source
« Respuesta #6 en: Martes 28 de Abril de 2009, 22:23 »
0
Usa jl (jump if less) y jg (jump if greater).

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

XjersonX

  • Nuevo Miembro
  • *
  • Mensajes: 4
    • Ver Perfil
Re: Problema con Source
« Respuesta #7 en: Martes 28 de Abril de 2009, 22:55 »
0
como? , un ejemplo me vendria de miedo.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Problema con Source
« Respuesta #8 en: Martes 28 de Abril de 2009, 23:07 »
0
Código: ASM
  1. cmp eax, 060h ;limite inferior (incluye al mismo)
  2. jl no
  3. cmp eax, 069h ;limite superior (incluye al mismo)
  4. jg no
  5. ;lo que quieras hacer
  6. inc eax
  7. inc eax
  8. inc eax
  9. ;sigue el programa
  10. no:
  11.  

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.