elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Pointers y offset de World of Warcraft
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Pointers y offset de World of Warcraft  (Leído 7,848 veces)
Sefi

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Pointers y offset de World of Warcraft
« en: 8 Abril 2012, 02:07 am »

Hola muy buenas a todos, después de 1 semana de buscar me he decidido a postear mi primer post.

Quería pedir a ver si alguien me hecha una pequeña mano en el problema que tengo (no pido solución, solo orientación).

El tema es el siguiente:

Estoy haciendo un pequeño programa en C++ para aprender mas en general, el programa se basa en ver la vida del personaje del WOW (o al menos para empezar).

Actualmente consigo llegar a la dirección de memoria que almacena la vida del personaje en tiempo de ejecución, pero como todos sabran una vez que se reinicia el juego la dirección de memoria cambia y se "pierde" hay que buscarla de nuevo, de ahí viene el titulo del post, necesitaría encontrar el Pointer y el offset que apuntan a este valor, mas bien como a prender a buscar estos valores necesitaría.
He conseguido que en C++ ver la vida a través de la dirección de memoria.

Me he leído ya una infinidad de tutoriales, a cual cada uno se acerca mas a lo que quiero.

Actualmente "creo" que se llegar al pointer + offset he utilizado este vídeo como referencia:
http://www.youtube.com/watch?v=asDRjFCg87o
Ya que busca el pointer y el off set en varios niveles.

Actualmente sigo los pasos y cuando al fin creo que he llegado al pointer estático con los offset, que actualmente me funcionan, incluso cambio de mapa y de char y de servidor y sigue en funcionamiento, pero salgo del juego y entro de nuevo... desaparecen






Tambien he intentado utilizar el ollydbg como referencia y buscarlo a través como indica este post de otro foro:
http://www.blizzhackers.cc/viewtopic.php?f=181&t=345914

Citar
1. Google: ollydbg. Unzip and run ollydbg.exe
2. Start Wow.exe
3. In Ollydbg. File -> Attach -> WoW.exe -> Attach. Give the debugger a few seconds to parse the big list of modules and hurry up to resume the execution (press the "play" button on toolbar), so WoW can be happy.
4. View -> executable modules (or press ALT-E) and select WoW. Press Enter or double click it.
5. Right-click -> Analysis -> Analyse code (or press CTRL-A). Wait for the debugger to parse the modules. This is good that we will be able to spot beginning/ends and params of the functions found.
6. In the new window, right click -> Search for -> All referenced text strings. Wait a few seconds for the debuger to parse the modules.
7. In the new window, right-click -> Search for text. Type "Usage:" and make sure the entire scope is checked. Press Enter on a found entry to get sent in the CPU window to the function body.
8. Use the markings made by the analysis to find the beggining of the function.
9. Press CTRL-L in the text strings window to go to the next function

The good part, these pointers never change, they are static.
The sad part, these are all public LUA function, so nothing juicy like your character position, orientation or things like that.

But its always "healthier" to call UnitHealth(player) than trying to read the health variable directly from the data segment, because that one is different each time you load the game.

I'd like some feedback from anyone who found any more "juicy" internal functions. C'mon, don't be "shy"  

Pero en este caso ni siquiera me acerco veo las direcciones "usage health("unit");" pero nada mas...

PD: El cheat engine no lo puedo utilizar el wow tiene un spyscann que detecta el programa y me lo cierra, utilizo el mhs ya que se "esconde" de manera brutal ;)

En breves subiré un vídeo y fotos. Saludos y gracias de antemano


By sirvivi at 2012-04-07


By sirvivi at 2012-04-07
« Última modificación: 8 Abril 2012, 02:28 am por Sefi » En línea

Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: Pointers y offset de World of Warcraft
« Respuesta #1 en: 8 Abril 2012, 05:22 am »

Has hecho el tutorial del CE?, viene incluido y te será de mucha ayuda!, si es que la vida se maneja del lado del cliente puedes hacer bastante...

Recuerda que pueden haber punteros de muchas bases, o como lo llama el CE Multi level pointer.

A veces lo más "fácil" es hacer un Scanner Signature o Scanner AoB, simplemente un scanner de bytes.

Encuentra una dirección de inicio (Byte Signature), luego un patrón único de bytes, con esos datos podes scanear en memoria, teniendo en cuenta que cada región de memoria tiene sus propios permisos.

Saludos,
Nox.
En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
Sefi

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Pointers y offset de World of Warcraft
« Respuesta #2 en: 8 Abril 2012, 11:03 am »

http://foro.elhacker.net/empty-t342767.0.html
[Tutorial] Hallar Pointers & Offset con CE & MHS5

Sí, me lo he leído, también hay un tutorial de Plants vs Zombies (entre otros).

Voy a probar con el Scanner AoB a ver.
En línea

Sefi

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Pointers y offset de World of Warcraft
« Respuesta #3 en: 8 Abril 2012, 17:44 pm »

Vale creo que lo estaba haciendo mal...
En vez de ir a buscar quien escribía el valor de la vida, iba a buscar aquien accedia a ese valor, y claro acceder podría acceder muchisimas funciones del wow para verificar cosas, pero escribir la vida solo 1.

Escogía al "azar" de todos los valores para encontrar el puntero y obviamente estaba mal..

Pero ahora solo me sale que para escribir el valor es solo 1 dirección, lo cual me estoy acercando, el problema que no entiendo lo que significa:

[EAX+EDX*4],ECX

la sentencia mov y ptr la entiendo pero a donde la mueve / apunta?

dejo imagen al respecto



Uploaded with ImageShack.us

Edit:


Mas abajo se ve la tabla y se ve que el valor de ECX es mi vida actual.

Pero es el valor en sí no apunta a ningún sitio.
EAX+EDX*4 es en la dirección de memoria a guardar que justamente es la que obtuve ya.

La pregunta es de donde saca el valor ECX? no apunta a ningún sitio, como si de "arte de magia" supiera que valor le toca...

El valor ECX es: 21DFF = 138751  , justamente mi vida

El valor  [EAX+EDX*4] = 2B56FDE8, casualmente es la dirección de memoria que almacena la vida actualmente.

Hay algo que se me escapa... y no se el que

Edit2:

Corregidme si me equivoco, según veo el valor de ECX se lo da un poco mas arriba (si movéis un poco la imagen donde tengo subrayado en negrita)

MOV ECX, DWORD PTR[EBP+C]
// ECX = Dirección de EBP + 12
Pues voy a la posición de memoria que indica EBP + C (y también miro en EBP) y no hay nada
Creo que me estoy calentando el coco en cosas que realmente son fáciles pero no las veo..

« Última modificación: 8 Abril 2012, 20:25 pm por Sefi » En línea

Arkangel_0x7C5


Desconectado Desconectado

Mensajes: 361



Ver Perfil
Re: Pointers y offset de World of Warcraft
« Respuesta #4 en: 8 Abril 2012, 21:31 pm »

lo que estas viendo es una función, parece que esta echo en c++ o algo de eso. los parametros en las funciones se pasan a partir de [ebp+8], el siguiente parámetro estaría en [ebp+0x0C] y asi sucesivamente. el puntero a this se lo están pasando por ecx. Yo lo que haría seria buscar los call a esa función.

Saludos
En línea

.:UND3R:.
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.118


Ingeniería inversa / MASM


Ver Perfil WWW
Re: Pointers y offset de World of Warcraft
« Respuesta #5 en: 8 Abril 2012, 22:58 pm »

Con esto encuentras offset:
http://foro.elhacker.net/empty-t342664.0.html
En línea


Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)
Sefi

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Pointers y offset de World of Warcraft
« Respuesta #6 en: 8 Abril 2012, 23:10 pm »

Gracias UND3R ^^ pero ya me habia leído el tuto =P, recuerdo también que no puedo utilizar cheat engine ya que tienen controlado este software, pero me estoy acercando muchiiiiiisimo ya! haber si me sale y os cuento ;)
En línea

Sefi

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Pointers y offset de World of Warcraft
« Respuesta #7 en: 8 Abril 2012, 23:34 pm »

Ahora si que estoy totalmente perdido:

Los Static Pointers segun el CE y el MHS se ven verde no?

Al fin cuando lo logro alcanzar, y obtengo también los offsets, y el programa me funciona perfectamente... al reiniciar el wow ese "STATIC" pointer desaparece...

address =  0x01EA5C20;  //Pointer estatico
Nivel_1 =  0x80D0;  // Offset Nivel 1
Nivel_2 =  0x100;  //Offset Nivel2

Adjunto imagen... ya no sé por done tirar a buscar, si la teoría no es ni correcta no sé que hacer ya. Algún consejo?



Uploaded with ImageShack.us
En línea

Иōҳ


Desconectado Desconectado

Mensajes: 563


Ver Perfil
Re: Pointers y offset de World of Warcraft
« Respuesta #8 en: 9 Abril 2012, 00:03 am »

Como NOTA:

Cuando yo hacía cheats, el puntero era de color negro y funcionaba para todas las pcs  :silbar:

Saludos,
Nox
En línea

Eres adicto a la Ing. Inversa? -> www.noxsoft.net
Sefi

Desconectado Desconectado

Mensajes: 12


Ver Perfil
Re: Pointers y offset de World of Warcraft
« Respuesta #9 en: 9 Abril 2012, 00:07 am »

Correcto, pero el valor que obtenías era diferente para cada vez que inicias el juego, mi idea es hace un programa, lo cual necesito el valor de origen, el estático.
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
World Of Warcraft
Juegos y Consolas
brazilian 0 1,490 Último mensaje 12 Mayo 2006, 03:34 am
por brazilian
¿World of Warcraft ?
Juegos y Consolas
Sapote 4 2,329 Último mensaje 7 Noviembre 2007, 19:59 pm
por Ariath
world of warcraft
Juegos y Consolas
nicoguns 2 2,106 Último mensaje 6 Enero 2008, 01:54 am
por EDKRAK
World of Warcraft
Juegos y Consolas
Shutdown -r 1 1,907 Último mensaje 4 Febrero 2008, 19:16 pm
por Castiblanco
[Tutorial] Hallar Pointers & Offset con CE & MHS5
Ingeniería Inversa
[NelSito*] 3 6,591 Último mensaje 25 Octubre 2011, 04:42 am
por jackgris
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines