Buenas tardes ;D
Qué tal, me encuentro intentando comprender una funcionalidad que desconozco de una librería que no poseo el source, les explico la situación: hay un ejecutable, llamémosle pepe.exe, el cual carga un archivo, llamémosle hola.bmd, de un path concreto.
Ahora, a este pepe.exe se le agregó una librería, llamémosle chau.dll, que lo que hace es modificar el comportamiento de pepe.exe para que en vez de cargar a hola.bmd desde el path que tiene impuesto lo haga desde otro path el cual varía, llamémosle %path, que es recibido desde un combobox que es mostrado al usuario.
El tema es que esta librería tiene más funcionalidades que la que estoy intentando averiguar y tiene errores que generan crash en pepe.exe, es por esta razón que se decidió remover a chau.dll.
Por lo que me llevó a mí a crear un nuevo chau.dll que solo contenga la funcionalidad de modificación de path, pero al no poseer el source de chau.dll y tener escaso conocimiento de asm me resulta imposible saber cómo es que chau.dll hace que pepe.exe use a %path y no al que tiene por defecto.
Lo que pude observar es que chau.dll no modifica offsets vía address de pepe.exe ya que si yo empaqueto a pepe.exe con mew11 sigue funcionando genial a pesar de que hayan cambiado sus offsets :-\
Les dejo la librería http://www.mediafire.com/?gkp4s7pxtim9do8 (http://www.mediafire.com/?gkp4s7pxtim9do8), pepe.exe lo único que hace es cargar la librería y llamar a la función ENCGames, uno de los path que cambia es "Data\Local\%s\Text.bmd". Espero que puedan darme una mano con esto ;D
Desde ya, gracias ;)
Cordiales saludos,
John.
Hola!
La verdad, me confundí en algún lado de tu explicación... :-\
Podrías ser mas concreto ?
Buenas MCKSys Argentina ;D
Gracias por la pronta respuesta ;), decime qué parte necesitás más concreta e intento ser más explícito! ;D
Desde ya, gracias ;)
Cordiales saludos,
John.
Por lo que veo, la DLL es para proteger alguna especie de juego (MU?).
Dime como se llama el archivo "hola.bmd" asi puedo ver que parte esta cambiando en el EXE...
Así es, es con respecto al juego MU. Creo que tiene protección pero no es de la mejor, fue reemplaza por otra librería con más protección y actualización constante.
hola.bmd podría llegar a ser como el ejemplo que di Text.bmd
Muchas gracias por la pronta respuesta y constante ayuda ;)
Cordiales saludos,
John.
Como proteccion veo que usa la API GetAsyncKeyState para detectar F7 y F8 (teclas usadas en OllyDbg).
Ahora, la funcion que maneja toda la parte de la ventana que dices, esta en 1002170 (ese es el windowproc).
Como te dije por privado, con IDA y Hexrays lo destripas en 2 segundos... ;)
Saludos!
Agregado
Podrias probar NOPeando el push 0 y el call siguiente de la direccion 100018D0 (ENCGames + 30h). Con eso se "quita" la proteccion antidebug...
MU... hace unas semanas, un brodher se hizo un hack de speed para magdalena, dime que MU intentas hacerle algo?.
Nox
Hola Иōҳ
No sé si estuviste leyendo el post y sus comentarios, pero no estoy intentando hacerle nada a ningún MU, eso fue un comentario aparte que define en qué contexto se encuentra la librería... solamente intento hacer ingeniería inversa sobre una DLL para averiguar y comprender una funcionalidad específica de dicha DLL.
Gracias por la respuesta.
Cordiales saludos,
John.