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 - Marcelo!

#1
Citar:
A ver si te entiendo:

En 0xD65E40 se guarda el valor que quieres cambiar o el puntero al valor que quieres cambiar?

Si es lo primero, puedes hacer WriteProcessMemory en 0xD65E40 con el valor que quieres colocar.

Si es lo segundo, haces ReadProcessMemory en 0xD65E40 y luego WriteProcessMemory en el valor devuelto.



Ok gracias MCKSys Argentina, justamente es lo segundo, en D65E40 se guarda el puntero al valor que quiero cambiar.

Ahora si no es mucho una consultica más ya que no soy programador, habrá alguna herramienta que se pueda usar o que me puedan recomendar para esta tarea? O necesariamente se tendría que programar. Ya que al menos quedaría conforme con saber si está dentro de mis posibilidades o ver otra opción.
#2
Gracias Geovanne por la respuesta, me fijaré esa parte de las secciones en la memoria.

Asimismo al Sr. MCKSys
Citar:
Seguramente, esa direccion esta apuntada por otra variable. Busca hacia atrás en el codigo y seguramente, encontraras el lugar donde esta el puntero a dicha variable.

Es justamente lo que voy haciendo, solamente que ya encontré el puntero a esa variable y justamente es D65E40, en esa dirección se guarda la variable, esta variable es la dirección donde se encuentra mi clave.

A partir de ahí es que no sé cómo hacer para que el loader vaya a la dirección que muestra la variable y escriba los valores.
Es posible hacer esto con alguna herramienta?
#3
Ok gracias sr MCKSys, anteriormente ya había ingresado a la página con el mismo fin, pero seguramente me pasé por alto muchas cosas, lo volveré a revisar.

En realidad estaba practicando con dup y process patcher, y logré parchear código en memoria en otros progs.

La única dificultad que encuentro es la siguiente, ya que este ejecutable detecta los parcheos en memoria:

Por ejemplo
1. El programa calcula una dirección en memoria cada vez distinta en eax, por ejemplo eax=00B4B4B4 y lo guarda en otra dirección conocida la cual no cambia:

mov dword ptr ds:[D65E40],eax
En este caso eax=00B4B4B4



2. Ahora ingreso mi serial falso y por supuesto, el programa hace muchas transformaciones y vuelteos y lo convierte por ejemplo en 39383938 y lo guarda en la dirección que había calculado antes:

mov dword ptr ds:[00B4B4B4],39383938

Luego compara mi clave ya transformada con la clave correcta, la cual me anoté en papel y verifiqué que la clave correcta se mantiene en cada ejecución, al menos en la computadora que uso.

3. Si cambio en el dump en olly mi clave falsa por la clave correcta, el programa aparece registrado y funcional pero solamente hasta que se cierre.

Entonces cómo puedo decirle al loader que tome la dirección calculada (00B4B4B4) y en ella cargue la clave que tengo anotada? Ya que esta dirección cambia en cada ejecución.

Cualquier ayuda es muy apreciada e incluso me gustaría pensar en alguna compensación por los logros obtenidos en el foro.[/i][/i]
#4
Hola a todos, solamente una gota de su conocimiento.
Hay alguna forma, o algún generador de loader para poder realizar como en el siguiente ejemplo?

Mov dword ptr ds:[D65E40],eax
Mov dword ptr ds:[eax],39383938

Mi intención es sobeescribir con el valor 39383938hex cualquier valor que haya en la dirección que indica eax que es variable y además se encuentra en memoria.
La dirección D65E40 es fija.
Cualquier ayuda plis esperaré su respuesta.
Gracias
#5
Hola, solamente quería escribir para dar el tema por cerrado. Ya que sin ser programador logré identificar el punto clave del programa dejándolo completamente pelado, por lo que no le quedó otra más que ceder. El programa inicia en su máxima versión y todo habilitado. Intentaré ahora practicar con otros programas un poco más difíciles, por supuesto solamente con fines educativos.
Gracias por su ayuda
#6
Estoy de acuerdo en que no se deba crackear programas honestos en los que hayan trabajado sus autores, aunque solamente pensaba aplicar a nivel personal por aprender con algo real puesto que no soy programador, solo curioseo.

Pero podrán guiarme al menos con los pasos que debo practicar para resolver este problema? Ya que mi intención es de su conocimiento y estaré agradecido por su ayuda
#7
Hola gracias por responder

RDG Packer detector detecta:

Microsoft visual C++ 6.0
aPLib compresion (Algoritmo)
Check IsDebuggerPresent (API)

Aunque para isdebuggerpresent estoy utilizando el plugin en ollydbg
Y si puedo subir el link del programa me avisan porfa, intenté leer las reglas del foro pero al ingresar me dice error de conexión a pesar que tengo buena conexión de internet.
#8
Hola cómo están una ayuda please con un programa que de hecho ya lo intenté hace tiempo, leí los tutoriales de ricardo narvaja ollydbg del 1 al 58, pero este programa lleva 3 versiones dentro y se activa según el serial. Lo cargo en el olly y le doy run, el programa inicia con una ventana de registro delante, ingreso mi serial falso y logro detener al presionar tecla con olly y trato de seguirle pero da muchas vueltas y veo códigos desconocidos hasta que ya no sé qué es lo q hace, si me pueden ayudar estaré agradecido.

Otra forma que intenté fue revisar desde su inicio con tecla f7, f8 en ollydbg para ver si podría hacerlo iniciar registrado en alguna de sus versiones pero llega a una INT3 y se detiene, y al saltar excepción se cierra el programa. Además si le hago algún cambio por mínimo que sea y lo guardo el programa lo detecta al iniciar y da error, y ya ni se deja desinstalar ni reinstalar por lo que tuve que formatear el disco
Cualquier ayuda esperaré su respuesta.