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 - karmany

#581
Seguimos... el plugin si modificas lo que te he dicho se ve una cosa curiosa y es que el plugin llama a subrutinas del mismo project. Como estas subrutinas no existen en otro emulador pues te da error. La subrutina es esta que tal vez se pueda emular:

00CE6880    movsx eax,word ptr ss:[esp+4]
00CE6885    add eax,dword ptr ds:[D74E8C]
00CE688B    mov ecx,dword ptr ds:[D74E9C]        
00CE6891    push eax
00CE6892    push ecx
00CE6893    call near dword ptr ds:[D74EA0]       ; Project6.00414AC0
00CE6899    add esp,8
00CE689C    retn


en el project la call [d74ea0] que está dentro del plugin va a parar al mismo project, como puedes observar.

Edit: Mira le acabo de echar otro vistazo un pelín detenidamente y para hacerlo correr bien hay que hacer bastantes modificaciones (para hacerlo correctamente) ya que el problema es que el plugin llama directamente a subrutinas del ejecutable project y estas subrutinas a otras y si quieres emular todo eso pues es bastante trabajo.
El problema principal está en las dos funciones del plugin: "InitiateGFX" primeramente y en "dllConfig" que es el salto que modificaste.

También yo estoy usando wxp y yo no he conseguido ni siquiera que salga la ventana de configuración(dllconfig).
#582
Ya tengo tus descargas...
Bueno pues el problema es la inicialización del plugin. La función que hay que analizar es "InitiateGFX". Dicha función se inicia correctamente en Project 1.7 (eax devuelve 1) mientras que en Mupen retorna incorrectamente.(eax devuelve 0). Esto es lo que hay que analizar. ¿Por qué devuelve en Mupen 0? Pues estoy echando un vistazo pero a primera vista parece que ibas por buen camino y parece que reconoce a Mupen pero todavía no estoy seguro.

Actualización.
Mira, si te fijas, el problema está en la subrutina "InitiateGFX". Si entras en ella y accedes un poco más abajo verás lo siguiente (tu dirección seguramente no coincida con la mia pero casi seguro que los últimos bytes si coincidadan):


02C3AF66    jnz short 02C3AF71
02C3AF68    call 02C66680 -> esta es la call importante para no salir
02C3AF6D    test eax,eax
02C3AF6F    je short 02C3AF86
02C3AF71    cmp dword ptr ds:[2CF39A4],edi
02C3AF77    jnz short 02C3AF99
02C3AF79    push 2CD80C8    ; ASCII "InitiateGFX called without CloseDLL"
02C3AF7E    call 02C36890
02C3AF83    add esp,4
02C3AF86    xor eax,eax <- si entra aquí devuelve que InitiateGFX fue mal


02C3AF68    call 02C66680:

02C66680    movzx eax,byte ptr ds:[2CF4EBC]
02C66687    retn


En project 1.7 sí es modificado ese byte pero en mupen no. Realmente no sé qué significa ese byte. Sólo es modificado a 1 en el project y repito que no tengo ni idea de porqué.

Bueno, si luego te fijas un poquito más abajo de esto que te acabo de comentar verás tres funciones ultraconocidas que también te envían a que la función initiateGFX se inicie mal. Estas funciones son:
02C3AFC4    call near dword ptr ds:[2CD721C]  ; USER32.GetClassNameA
02C3AFCA    push 9
02C3AFCC    lea ecx,dword ptr ss:[ebp-1C8]
02C3AFD2    push 2CD7BB8       ; ASCII "Project64"
...
...
02C3AFF1    call near dword ptr ds:[2CD712C]  ; kernel32.GetModuleHandleA
02C3AFF7    push eax
02C3AFF8    call near dword ptr ds:[2CD7148]  ; kernel32.GetModuleFileNameA
02C3AFFE    lea eax,dword ptr ss:[ebp-1C8]
02C3B004    push 2CD7BB8                            ; ASCII "Project64"


Como puedes observar, está buscando si el programa es project64 o no. Si el programa donde está el plugin es Mupen64 pues la función initiateGFX dará mal iniciada y saldrá el msgbox que ya sabemos.

Parece ser que el autor del plugin ha hecho un plugin compatible sólo con project64. Para hacerlo compatible con Mupen habrá que hacer una serie de modificaciones más ya que aún evitando esto que te comento, el programa da una excepción.

¿Cuál es el camino que puedes seguir?
Pues probar el plugin en el project y después en mupen y ver por qué uno va por un camino y otro por otro.




#583
Me parece una barbaridad, una salvajada y una injusticia. ¡Ni que hubiera matado! Seguro que si mata le hacen pagar menos dinero.
Yo no sé dónde está la justicia, van a por el usuario que no puede defenderse.

Esta noticia me hace pensar en nuestro futuro, estoy convencido que en unos años esa salvajada va a llegar a España. Dentro de unos diez-quince años veremos esta noticia aquí.

Por descargarse 24 canciones!!!
Es que no puedo pensar en otra cosa: una bestialidad, barbaridad, atrocidad, disparate, burrada, barbarie. Con este hecho ya no sé cuál es la definición de Justicia.

Ya se sabe: los que tienen el dinero tienen el poder. Seguro que estarán cienmil abogados contra Jammie Thomas-Rasset
#584
Ingeniería Inversa / Re: Crackme Nº1 De Flamer
5 Noviembre 2010, 11:47 AM
Flamer muchas gracias por tu trabajo y enhorabuena a los que lo resolvieron que seguro que estará bien, seguro.
Tengo guardado tu crackme, a ver si actualizo la descarga y enlaces de los mismos.
Un saludo

Edit: [corregido]Flamer[/corregido]
Perdón  :(
#585
Estoy descargando project 64 1.7, el Mupen 64 y el plugin Jabo que he encontrado por ahí que no sé si estará modificado ya.

Voy a echarle un vistazo en cuanto pueda.


PD. No consigo el plugin Jabo. Todos los que me he descargado están ya modificados y alguno ni me da error en el Mupen 64. Si puedes subir el original podré echarle un vistazo.
#586
Cita de: henryxs87 en  4 Noviembre 2010, 04:57 AM

Si vez el primer mensaje que puse en la 2 y 3 era captura se puede ver que aparecen casi todos los elementos de las 2 ventanas para ambos emuladores, por eso me parecio bien comenzar por alli

Y si cambio el JZN por un JE(que esta en las primeras capturas que puse), las ventanas del emuladores se invienten, la que salia en uno sale en el otro y viceversa


Pues con esto que me respondes me estás dando la razón. Ese messagebox que quieres eliminar NO es una protección del programa(en un primer vistazo, tal vez lo sea de forma secundario... me entiendes no?): es real y te lo dice claramente. Te está diciendo que lo estás intentado configurar sin haber pasado primero por la call initialize. Tiene que iniciarse primero.!!
Por eso si modificas el salto a JE en el project te sale error.. normal le estás diciendo lo contrario. Es algo lógico.
Yo estoy convencido a un 80% que no tienes que seguir el camino que has tomado. Tienes que conseguir que el plugin se inicialize antes.
Yo miraría a ver de dónde es llamada esa subrutina del msgbox.
#587
Yo quiero darte henryxs87 mi punto de vista: mira en la primera imagen que has puesto te sale el mensaje "initialize the dll before you try config it!". Es fácil saltarlo y seguramente si modificas todos los saltos te funcione pero... yo me preguntaría ¿por qué narices sale ese mensaje? ¿realmente es una protección a posta del programador?

Mi opinión es que tal vez deberías indagar un poco más con ese mensaje. Fíjate está diciendo que no configures el plugin porque todavía no ha sido inicializado. Podría ser verdad. Por eso también es posible que se haya colgado el programa. Tal vez la protección real haya sido que ha saltado por alto la subrutina de inicialización. ¿Por qué? PUes esto es lo que hay que buscar.

Con un editor de PE cualquiera puedes examinar dónde se encuentra esa subrutina. Puedes ponerle un bp y ejecutar el programa desde el emulador project a ver de dónde es llamada y después haces lo mismo desde el otro emulador y comparas a ver...

Yo es que primero iría a ver por qué sale el mensaje no lo evitaría directamente sin saber por qué...
Saludos
#588
Hola.
Soy moderador en Ing. inversa. Se ha creado un hilo de 6 mensajes. El mensaje número 4 no tiene nada que ver con el tema y quiero enviarlo (sólo este mensaje) al foro de ingeniería inversa es decir, sacarlo de ese hilo y crear otro.
Antes recuerdo (si no recuerdo mal) que había una opción que era cortar o mover o algo así... ¿Cómo se hace ahora?

Gracias
#589
¿Y por qué no te funciona un Sendkeys a la pulsación de avanzar?
Qué programa es?
#590
z_azazel: "estoy iniciandome en el mundo de la ingenieria inversa"
Por este motivo, tal vez lo que intentas hacer sea algo complejo. ¿Por qué no intentas modificar directamente el programa, en vez de utilizar otro para que lo haga?

Si expones más detalladamente tu problema tal vez te podamos orientar para encontrar una solución más sencilla.(estoy casi convencido que la hay).