Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: xmbeat en Abril 28, 2010, 10:31:28 am
-
Bueno quisiera que me aclararan esto.
Pues tengo un Juego Llamado Geometry Wars y queria hacer un cheat al score usando una herramienta de visor de memoria. Por fin de algunos intentos encontre la direccion en memoria, y con eso aumentaba el score (Funcionaba).
Despues, como mi PC esta en idioma EEUU lo cambie a espanol y cuando me meti nuevamente ohh sorpresa! ya no jalaba el cheat(tambien se cambio el idioma del game). Hasta que volvi a usar el visor de memoria saque nuevamente la direccion y funcionaba perfectamente otra vez y despues andando modificando otras cosillas al juego ese, nuevamente no funciono y volvi a buscar si direccion.
La duda es esta, las direcciones no son fijas?, Se modificaron por el idioma (se cambiaron variables de texto)?.
Existe alguna manera de siempre dar con la direccion?
Andaba checando el Cheat Pinball que hizo BlackZeroX y descubri que tenia estas lineas mas que yo:
'BlackZeroX
ReadProcessMemory phandle, ByVal &H2DD0DE2, OffSetDinamico, 4, 0
ReadProcessMemory phandle, ByVal OffSetDinamico, OldScore, 4, 0
'////////////////
WriteProcessMemory phandle, ByVal OffSetDinamico, NewScore, 4, 0
WriteProcessMemory phandle, ByVal &H2DD0E02, NewScore, 4, 0
Este es el mio :
'011ADB20 'Actual que funca
'0116DB20 'Ingles
'011ADD60 'Espanol
WriteProcessMemory GeoHandle, ByVal Adress, Score, 4, 0
'PT is a long
ReadProcessMemory GeoHandle, ByVal Adress, PT, Len(PT), 0
Esas lineas extras tiene algo que ver ?
-
Bueno de acuerdo con unas pruebas locales que hice con algunos juegos si que pueden cambiar las direcciones de la memoria... luego me puse a buscar y encontre un programa que se llama Cheat Engine y si verifique se si cambiaban las direcciones. en algunos no cambien pero en otros si.. Ah y lo que puedes hacer con respecto a si cambian solo es cuando cambia el idioma seria leer la parte del idioma y dependiendo del idioma coger la dirección de la memoria que te interesa ;).. eso es más o menos lo que se me ocurre :D
-
No se enojen por que lo revivo solo para explicar algo de forma rapida.
En el pinball hay dos variables que deben SIEMPRE ser identicas de lo contrario el Score no se actualizara
* En el caso cuando obtuve estas dirreciones (Que aun cambian NO importa el lenguaje ni nada solo cambia despues de un rato), fueron extraidas con el CHEAT ENGINE, (Me dio flojera seguir buscando y use este xP)
-> los offset en este momento fueron:
* &H2DD0DE2 Digase A.
* &H2DD0E02 Digase B.
Donde solo se lee A para obtener el Offset Dinamico del verdadero Offset que contiene el Score a leer y escribir.
y donde solo se escribe B a establecer un nuevo escore que sea identico a A
ReadProcessMemory phandle, ByVal &H2DD0DE2, OffSetDinamico, 4, 0 ' Leer Offset Real (Obtenemos Offset Dinamico)
ReadProcessMemory phandle, ByVal OffSetDinamico, OldScore, 4, 0 ' Leemos el Offset Real
WriteProcessMemory phandle, ByVal OffSetDinamico, NewScore, 4, 0 ' Escribimos un nuevo valor
WriteProcessMemory phandle, ByVal &H2DD0E02, NewScore, 4, 0 ' Aqui tambien
Rem si alguno de los dos offset no son escritos en el juego no se visualizara y tomara como real el que no se a modificado!¡.
Dulce Infierno Lunar!¡.