...memoria & el Basic XD

Iniciado por schumacher, 13 Mayo 2008, 14:50 PM

0 Miembros y 2 Visitantes están viendo este tema.

schumacher

...bueno hace un tiempo atras, jugando un jueguito de golf en linea ^^, encontre un hack para dicho juego
...pero resulta que yo no lo vi como un hack, sino como un editor de memoria de cualquier programa en ejecucion
...aunque ya depues de eso podias mandarle ciertas instrucciones (todo en hexadecimal) al programa en ejecucion
...y podias hacer (tomando el ejemplo del juego) tiros que no se te permitian, cambiar de tipo de bola, cosas parecidas a esa
...solo era cuestion de saber que instruccion era para que cosa^^
...en ese tiempo sabia casi nada de programacion (como ahora casi xD)
...por ahi encontre un ejemplo pero no basta, ademas de que no esta en hexadecimal, no lo entendi xD
...si alguien sabe, nose si me puede dar algunos alcanzes y si no es mucho pedir una explicada no me vendira mal^^
...gracias

PD: el ejemplo que encontre fue este
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=32235&lngWId=1

xavierote

Tengo unos módulos de clase que te hacen ese trabajito, es decir, hacer un handle al programa y acceder a su rango de memoria.

Lo conseguí hace tiempo en alguna página de gamehacking.
http://www.megaupload.com/?d=MZ3FZZIA


Te explico su uso:
Tienes que incluir en el proyecto los 3 archivos: modAPI.bas, ReadMem.cls y WriteMem.cls
Luego tienes que crear una instancia para esas clases de esta manera:
Dim ReadMemory As New clsReadMem
Dim WriteMemory As New clsWriteMem


Si los declaras en (General), mejor.
Por último, hacer las llamadas correspondientes utilizando sus funciones, como por ejemplo en un command button:
ReadMemory.TargetWindow = "Heroes 4"

Esto lo que hace es buscar el handle de la ventana que tiene como título "Heroes 4".
ReadMemory.ReadLong Direccion, ReadValue
txtRecursos.Text = ReadValue


ReadValue es una variable de tipo long, ya que estamos accediendo a la memoria con una longitud de tipo Long (4 bytes).
Direccion es una variable que contiene la dirección que queremos acceder en base diez, es decir, sistema decimal.

Y para escribir en la memoria lo mismo, pero accediendo a las funciones de la clase WriteMemory que hemos declarado.

Si no sabes que son las clases o como utilizarlas, busca más al respecto. Es la esencia de Visual Basic, programación orientada a objetos.

¡Un saludo!

~~

Básicamente es usar WriteProcessMemory para cambiar los valores q te interesen ;)

schumacher

...gracias estoy viendo todo eso ahora^^

...bueno y estaba viendo otro codigo, y tengo una idea de para que sirve pero me gustaria saber que es lo que piensan uds

Declare Function CreateToolhelpSnapshot Lib "kernel32" _
Alias "CreateToolhelp32Snapshot" (ByVal lFlags As Long, lProcessID As Long) As Long

Public Const TH32CS_SNAPPROCESS As Long = 2&

Type PROCESSENTRY32
    dwSize As Long
    cntUsage As Long
    th32ProcessID As Long
    th32DefaultHeapID As Long
    th32ModuleID As Long
    cntThreads As Long
    th32ParentProcessID As Long
    pcPriClassBase As Long
    dwFlags As Long
    szexeFile As String * 260
End Type


...ver algo de ese codigo me asusta un poco xD, ya que no me lo se en parte
...entonces la ultima parte es para ver los procesos del PC y la primera?...

saludos!

Tughack


schumacher

Cita de: Tughack en 14 Mayo 2008, 14:12 PM
msdn...
...o.o!

...gracias, nose como no se me ocurrio
...tengo unas... lagunas mentales... xD
...eso aclaro varias dudas

...pero aun no puedo armar
...ya tengo un codigo para saber lo de las ventanas abiertas
pero...
Cita de: xavierote en 13 Mayo 2008, 16:33 PM
Esto lo que hace es buscar el handle de la ventana que tiene como título "Heroes 4".
ReadMemory.ReadLong Direccion, ReadValue
txtRecursos.Text = ReadValue


ReadValue es una variable de tipo long, ya que estamos accediendo a la memoria con una longitud de tipo Long (4 bytes).
Direccion es una variable que contiene la dirección que queremos acceder en base diez, es decir, sistema decimal.

...no lo entendi mucho (me parece muy tecnico)
...creo que tengo que empezar llevar clases de basic, pero de verdad xD

...espero no molestar^^

saludos!

Tughack

Es una lastima k mucha gente no entienda k si aprenden a trabajar con apis y a saber k apis usar para lo k necesitan hacer pueden programar en kualkier lenguaje con poco esfuerzo.

Usar clases de vb para leer y escribir memoria (o para kualkier otra cosa) no es un buen comenzo pork al usarlas no saben k estan haciendo (a no ser k las hagan vosotros, aunk en mi opinion es perdida de tiempo)...

Saludos

schumacher

Cita de: Tughack en 14 Mayo 2008, 16:25 PM
Es una lastima k mucha gente no entienda k si aprenden a trabajar con apis y a saber k apis usar para lo k necesitan hacer pueden programar en kualkier lenguaje con poco esfuerzo.

Usar clases de vb para leer y escribir memoria (o para kualkier otra cosa) no es un buen comenzo pork al usarlas no saben k estan haciendo (a no ser k las hagan vosotros, aunk en mi opinion es perdida de tiempo)...

Saludos
...tu razonamiento tiene sentido o.o!

...talvez siga tu consejo y me vaya a las api y luego a esto de la memoria

...pero si alguien me puede dar un adelanto explicandome seria muy util^^

PD: logre encontrar el programa es el NoobEngineSE ^^ lo analizare un poco mas

juancho77

CitarUsar clases de vb para leer y escribir memoria (o para kualkier otra cosa) no es un buen comenzo pork al usarlas no saben k estan haciendo (a no ser k las hagan vosotros, aunk en mi opinion es perdida de tiempo)...

Seee, cuando me enseñaron en profundidad funciones en pascal en la universidad me vine corriendo a revisar los codigos de basic y los empece a mirar con una perspectiva mas...comprendedora digamos. y ahi empezo a tomar color  :P