Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: astaroth7 en 6 Agosto 2005, 20:51 pm



Título: Open for Binary
Publicado por: astaroth7 en 6 Agosto 2005, 20:51 pm
Buenas, tengo una duda con una programa. Mi programa pretende crackear a un *.exe, del cual conozco el offset y el valor que deseo cambiar. Utilizo entonces esta función para pretender cambiarlo.

Open "programa.exe" For Binary As #1
Put #1, &H4C663, &H7E
Close #1

Y al ver el archivo con un editor hexadecimal, en el original veo esto en esa dirección:

Offset 4C663 = EB

Y en el archivo editado esa dirección sigue siendo la misma, pero se cambian los valores anteriores y posteriores de los offset's contiguos.

¿Como podría hacer para que solo se cambiara esa dirección 4C663?

Gracias por responder.


Título: Re: Open for Binary
Publicado por: Slasher-K en 7 Agosto 2005, 00:46 am
A la instrucción Put o Get según el tipo de variable que le pases es lo que va a escribir o leer en el archivo, respectivamente.

Si le pasas un Integer va a leer/escribir dos bytes, si le pasas un Long va a leer/escribir 4 bytes. Entonces si sólo querés que modifique 1 byte tendrías que guardar los datos en una variable de tipo Byte.

Código:
           Dim btData As Byte

Open "programa.exe" For Binary As #1

btData = &H7E
Put #1, &H4C663, btData

Close #1

En ese caso sólo escribirá un byte.

Saludos.


Título: Re: Open for Binary
Publicado por: astaroth7 en 7 Agosto 2005, 22:46 pm
Muchas gracias, ahora si me funcina el programa. :D