Modificar exe mediante trainer

Iniciado por msrone, 23 Octubre 2007, 10:06 AM

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

msrone

Bien amigo, gracias por contestar primeramente. Segundo, e podido llegar al offset en el cual puedo blokear tanto la subida como la bajada de oro.

549539 mov [edi+eax+0x4],edx

entonces al crear el trainer pongo en los respectivos botones:

Patched script:
Poke 549539 90 90 90 90


UnPatched script:
Poke 549539 89 54 07 04


Y consigo el bloquear tanto la subida como la bajada del recurso (oro).

Mi pregunta sigue en:

Teniendo ya este offset, como podria dar a un boton la funcion de subir la cantidad que kiera del oro? con el codigo q me has puesto antes, modificandolo?
Que codigo pondrias tu en kada boton, para q al accionarlo subiera dicha cantidad.

Muchas gracias crack.

msrone

  Rectifico, este offset, sera alguno q hará alguna funcion la cual si la blokeas impides que suba o baje la cantidad de oro que posees. Se podria saber el offset en el cual hace el recuento del oro total q keda a partir del mov [edi+eax+0x4],edx ?

:-\

x4uth

pues no se me ocurre ninguna manera sencilla de hacerlo :/ pero si lo que quieres es que vaya aumentando y
en [edi+eax+0x4] esta el dinero puedes cambiar el 89 por 01 que seria esto
WriteProcessMemory(hProcess,(LPVOID)0x549539, 1, 1, NULL);
con lo cual tienes
add [edi+eax+0x4],edx
asi aumenta el dinero cada ves que se llame a la funcion (se podria decir q se duplica)

msrone

Al cambiar el 89 por el 01 me da error, y me saka del juego. Me dice que no se puede "written", aqui tengo el trainer maker kit, en el cual puedo darle la opcion de poner un script. Si pusiera add dword o add byte ?... O cambiar el 89 por algun otro numero para que haga la funcion deseada??

Gracias

x4uth

pues no se xk te da ese fallo quiza de tanto duplicarse llegue a un numero imposible
lo otro q puedes hacer es cambiar
895438 04     MOV DWORD PTR DS:[EAX+EDI+4],EDX

por


896438 04     MOV DWORD PTR DS:[EAX+EDI+4],ESP

o sea el 54 por 64,
ESP es el puntero al stack que normalmente es 0012XXXX
con lo cual estas poniendo un numero 1179668++



byebye

mira a ver si con tsearch te deja ver el valor de los registros, con cheat engine se puede y personalmente me gusta mas.  entonces reg+reg+n = direccion donde estan los datos, escribe ahi directamente. aunque lo suyo es que anotes esa direccion pilles el depurador yverifiques ue esta pasando en esa direccion. volviendo al tema del cheat engine te viene con un programa tutorial donde te enseña lo mas basico hasta el problema de la DMA y como solucionarlo.

saludos.

msrone

Gracias por contestarme crack; haber tengo esto exactamente:

  549535 - push edi
   549536 - mov edi, [esi + 18]
-- 549539 - mov [ edi + eax + 04] edx
    54953d - mov edx. [esi+18]
    549540 - add eax,edx

me dice:

the value of the pointer needed to find this addres is probably 092F2EF0

Eax 00000030
Ebx 00000030
Ecx 00000003

Edx 00000000
Esi 05087C80
Edi 092F2EF0

Esp 0012Fbcc
Ebp 0012FbF4
Eip 0054953d


Hago la buskeda con el 092F2EF0 y no logro encontrar el punto en el q se guarda la cantidad de oro/piedras/Madera del p*to juego (settlers6).

Alguna idea? Gracias ;)

x4uth

#17
segun eso q pusiste ahi el puntero a 092F2EF0 lo tienes en ESI+18
si ESI es constante entonces ya lo tienes resuelto

[0x5087C80+0x18] +0x00000030 +0x4 = direccion del oro

msrone

Nuevos avances en el tema:

He descubierto que en la funcion:

-- 549539 - mov [ edi + eax + 04] edx

El edx es la cantidad de oro que queda. Entonces, la pregunta es:

¿Bastaria con modificar ese edx para que se pudiera ver el incremento del oro en el juego? ¿como se podria hacer?? add?¿...

Espero respuestas, gracias ;)

byebye

si edx es el valor del oro ya aumentado o restado yo iria mas atras hasta encontrar donde se pone el valor a edx y ahi modificar la funcion que lo resta yue esta incremente, asi veras aumentar el oro.