-Hackear el World of Warcraft con Cheat Engine
Para empezar, decir que usar estos hacks puede ser detectado, asi que no lo recomiendo usar para un uso "serio" del WoW, sinó para aprender, y etc. IMPORTANTE: Esto funciona en la versión del WoW "3.3.5 (12345)".
----------------Recomiendo leer el post entero antes de empezar a trabajar----------------
Para empezar, ovbiamente, necesitamos el cheat engine. Yo uso el 6.1, pero supongo que vale practicamente cualquiera.
Recordad primero abrir el WoW, antes que el Cheat Engine, pues el WoW os mostrará un mensaje de error, "Alerta, Cheat Engine detectado". Si lo iniciamos después, ya no dará ningún problema.
Aquí no os daré hacks de oro, ni de niveles. Solo he conseguido hacks de "movimiento": volar, levitar, coordenadas, etc.
Bueno, para empezar, iniciar el personaje en el WoW, y elegir el proceso "WoW.exe" en el Cheat Engine.
ATENCIÓN: No me pararé a explicar como usar el Cheat Engine (CE de ahora en adelante). Quién no sepa usarlo, que busque un tutorial y/o que haga el tutorial que el CE incluye.
Bueno, para empezar, vamos a ver la memoria, al desensamblador, y vamos a la instrucción ""WoW.exe"+F4476".
Vemos la instrucción "mov edx,[ecx]". También estaría bien que conocierais algo de ensamblador. Aprobecho a decir, que esto es informativo, quién quiera aprender, se tomará el tiempo de ver lo básico de ASM, quien solo lo quiera para ganar ventaja en el WoW, lo siento mucho por él.
Como iva diciendo, la instrucción "mov edx,[ecx]". Nos interesa ecx, que es la dirección de memoria donde está la BASE de todos los datos que gestionan el movimiento de nuestro personaje. hacemos breackpoint, y, añadiendo la dirección manualmente, metemos el valor de ECX, como float. Veremos un número, que será la coordenada "Norte-Sur". Para verificar que sea esa, cambiamos en 1 o 2 puntos el valor. Si veis que el personaje se ha movido, es que hemos dado con la adecuada. Es posible que no se nos mueva. Eso es porque a veces ECX es la dirección que no es. No pasa nada, volvemos a hacer breakpoint, hasta que el valor cambie. Entonces volvemos a probar. Por cierto, tras hacer cada breakpoint, recordad quitarlo y volver a correr el programa. Es posible que si lo dejais mucho tiempo parado, os tire el servidor.
Bueno, ¿parece fácil no? Ahora viene lo interesante. Copiad la dirección de "Norte-Sur". <Consejo: Id dandole nombres a las direcciones, en la descripción de estas, para no liarnos, ya que vamos a encontrar muchos datos.>
Ahora vamos con la coordenada "Oeste-Este". Añadimos la dirección: "BASE + 4", donde BASE es la dirección de Norte-Sur, que deberíamos tener copiada. IMPORTANTE: Excepto alguna que yo mismo os diré, todas las direcciónes serán FLOAT.
Ahora para la altura, o coordenada Y, pondremos "BASE + 8".
¿Sencillo no? Pues ahora os pondré aquí todos los Offsets (el número que se le suma a la base): "BASE + Offset".
Es muy posible que haya más que yo desconozco. Asi que os propongo que busquéis, y os diviertais haciéndolo. ¿Quién encontrará la dirección que cambia el "No-Clip" (atravesar paredes)? Pero os recuerdo, excepto el movimiento, lo demás está del lado del server. El dinero, los objetos, todo lo demás.
- N-S --- BASE
- O-E --- BASE + 4
- Altura --- BASE + 8
- Rotación del personaje --- BASE + 10
- Velocidad andando --- BASE + 80
- Velocidad corriendo --- BASE + 84
- Velocidad hacia atras --- BASE + 88
- Velocidad de nado --- BASE + 8C
- Velocidad de nado hacia atras --- BASE + 90
- Velocidad de vuelo --- BASE + 94
- Velocidad de vuelo hacia atras --- BASE + 98
- Velocidad de giro --- BASE + 9C
- Subir montañas --- BASE + C0
- Movimiento y volar --- BASE + 34 --- Es importante que esta la mostreis como HEXADECIMAL, no como un número.
- Buscar en el minimapa --- "Wow.exe"+7EBA64 --- Es importante que esta la mostreis como HEXADECIMAL, no como un número.
Ahora os explicaré las 2 últimas: "Movimiento y volar" y "Buscar en el minimapa".
-Movimiento y volar: esta es la más interesante. Lo más importante son los primeros 2 dígitos: 00000000.
El segundo, si es 1, será "andando, pero con la posibilidad de volar", si es 2, será "volando siempre", y si es 3, es como el 1, pero en el aire. Lo mejor es que lo probéis, y os quitais dudas. Cabe decir, que volar significa nadar en el aire.
El primero, es muy interesante, y lo mejor es que probeis todos los valores del 0 al F. El 8 es el normal. El 9 es andar sobre el agua. El 7 es levitar (igual que el C). Probadlos.
Hablando en general sobre esta dirección, aquí se ve cuando saltas, cuando giras, andas, nadas, etc. Todo se guarda aquí. Tened cuidado con lo que cambiais. Si 00000000 es igual a 1, será caminar. Si cambiais algo y no os podeis mover, o algo así, lo mejor es que pongais todo igual a 0 (00000000).
-Buscar en el minimapa: Esta es más compleja. No cambieis valores al azar, pues os dará error, y se os cerrará el WoW. Os recomiendo que probeis, y apunteis con un block de notas, o algo así, los valores que va tomando al cambiar el rastreo. Por ejemplo, cuando buscas "tabernero", tomará un valor. Escribidlo, o guardadlo, y así con los demás. Esto no es realmente útil, ya que lo puedes hacer sin necesidad de hack, pero todo sea información.
-------------------------
Bueno, acabo el tutorial aquí. Un par de cosas: Cuando reinicias el WoW, cambias de continente dentro de este, entras en mazmorras o algo así, la "BASE" cambia, así que habría que volver a cambiar cada valor. Por esta razón, formulo esta pregunta, o reto:
-Me gustaría, que si alguien consigue la dirección de un puntero estático (de varios niveles supongo) que apunte a la BASE, que lo dijese, ya que he estado buscando, y no vi nada.
Para acabar, decir que estos datos los he encontrado por mi cuenta, simplemente escaneando valores con el cheat engine, algo muy sencillo.
Suerte a quien intente encontrar el puntero base ^^.
Gracias a todos los que me hallan leído.
Edito: Si alguien lo ha echo y no le funciona, que diga que le pasa, o que no le funciona. Yo esto solo lo probé en mi PC. Además, si alguien que lo hizo, le funcionó todo, que diga, se lo agradecería. Todo sea aprender vosotros y yo.