Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Sefi

#1
Para los que le interesen:

El motivo porque los punteros estáticos no eran estáticos era culpa al ASRL:

aunque se puede buscar la dirección de memoria con la base adress.exe + offsets como he conseguido hacer ;) pero cada parche lo cambian :(

4.2.1 ASLR
Up until version 3.x of WoW, the base address of the process was always located at address
0x401000 in memory [17]. This allowed programmers to use absolute addresses to all the
data structures they wanted to access. The developers of WoW changed this from version
4.x onwards by adding support for address space layout randomisation (ASLR), to make
WoW more secure.
ASLR is security technology that makes a system more secure by making it harder for
attackers to exploit existing vulnerabilities in the system. This is accomplished by randomising the memory layout of an executing program, which means that where an attacker
could previously know exactly where a function would be in memory, the attacker would
now have to guess the location in memory. This significantly decreases the chances of a
single exploitation attempt being successful. It can also cause the program to crash, which
limits the amount of exploitation attempts the attacker can practically make. ASLR is
integrated into several operating systems, and is enabled by default in Windows Vista
and Windows 7 [18].
#2
LO TENGO!!!!!!

como os dije lo tenía delante de mi p**a cara y no lo veía...

la dirección estática es:

wow.exe+AD5C20 + offsets

es decir:

[[wow.exe+AD5C20]+0x80D0]+0x100  = A la Vida actual!

podemos cerrar el post ya ^^ alguna duda pm!
#3
Me he quedado atascado llevo estos días sin avanzar lo mas mínimo X,x alguien tiene idea que se hace con el BasePointer (que cambia...) a la dirección base (Wow.exe+AD5C20 )?
#4
Hasta donde tengo entendido una vez compilado el programa, el "código fuente" tal como lo ves cuando lo programas no puedes en mayor parte recuperar-lo, ya que ha sido "transformado / compilado" a lenguaje maquina, hay des-ensambladores que puedes obtener el lenguaje maquina de tu programa (de ahí como se petan los programas).
#5
Acabo de encontrar la base:

Wow.exe+AD5C20

que no varia cada vez que se reinicia,

disculpar mi ignorancia pero con ello como a hago llegar a la memoria?

Los offsets que tampoco cambian como mencione:

0x100

0x80D0

Como veis, sigo investigando al respecto ;) os comento si lo soluciono

#6
Disculpa creo que no me explique bien XD, me refería a eso justamente.

Actualmente estoy utilizando el OllyDbg a ver si encuentro el base pointer.
#7
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.
#8
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
#9
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 ;)
#10
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..