Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: cucay en 31 Octubre 2008, 11:39 am



Título: Ayuda con una dll
Publicado por: cucay en 31 Octubre 2008, 11:39 am
Hola companeros:

A ver quien me puede dar una gran manito. Tengo un programa que me viene dando dificultades. Cuando lo corro con Olly siempre se detiene con la misma excepción (C0000135 -No encuentra la dll). Pero está allí. He tratado de esconder olly de todas las maneras posibles, usado diferentes versiones modificadas y nada. La cuestión es que lo he examinado con Peid, packer detector y no dice nada. Solo que fue compilado con Visual c++ y una que otra signatura. He chequeado la tabla y pareciera estar todo bien. El único número que no coincide es el Checksum.  De alguna manera la dll se está escondiendo o que?. Subí los archivos por si algún valiente los quiere chequear. Se los agradecería mucho

hxxp://rapidshare.com/files/159283406/problemilla.rar.html (http://hxxp://rapidshare.com/files/159283406/problemilla.rar.html)


Título: Re: Ayuda con una dll
Publicado por: KJD en 31 Octubre 2008, 12:11 pm
Que tal cucay, bienvenido al foro, has provado con isdebuggerpresent?? posiblemente sea alguna modificacion de este, intenta buscar la rutina que carga la dll, como LoadLibraryA o algo asi no me acuerdo con exactitd, fijate si no hay un salto anterior que obvie esta rutina y por eso no la cargue.

Pon el link de descarga del programa, porque lo que subiste no sirve para debuggearlo, ya que da error de instalacion.


Título: Re: Ayuda con una dll
Publicado por: cucay en 31 Octubre 2008, 13:56 pm
Gracias por el tip. Hace tiempo intenté parchar la IsdebuggerPresent para que devolviera 0 pero no funcionó. Puede ser que no haya hecho bien, no se. La cuestión es que el programa ni siquiera carga en olly o en cualquier otro debuger porque inmediatamente saca el letrero de la dll y luego si uno chequea la PE section todo es un caos.

Lo del ejecutable. Si que pena. Pasa que el programa usa librerías de otro más grande y tendrían que instalar los 2. Ah.. no se, están algo grandes...Pero bueno ya que piden. El objetivo final es el último.



Título: Re: Ayuda con una dll
Publicado por: KJD en 31 Octubre 2008, 14:22 pm
A la *****!!! 600 megas me parece un poco mucho, le pasaste el RDG packer detector para saber si esta packetado???, pon un screenshot del error que te da olly a ver si te podemos ayudar.


Título: Re: Ayuda con una dll
Publicado por: cucay en 31 Octubre 2008, 19:14 pm
De nuevo yo!. Pues si se lo pasé y dijo lo mismo que el Peid. Naita. Solo signatures. La cuestión es que si quiero cargar el programa en olly, antes de que éste pueda  muestrar algún simbolo saca un letrero de Error de que la dll no fue encontrada. Si das OK te lleva al final del programa con el siguiente panorama:

http://rapidshare.com/files/159402373/Error.JPG.html (http://rapidshare.com/files/159402373/Error.JPG.html)

Debe ser alguna función que detecta el debbuger y esconde la dll. Supongo. Que dicen los expertos??


Título: Re: Ayuda con una dll
Publicado por: KJD en 31 Octubre 2008, 19:28 pm
Es raro el error, pero todo me dice que es alguna proteccion antidebugger solo otra pregunta en que lenguaje esta echo???

PD: sube las imagenes a imageshack.com o algun otro.


Título: Re: Ayuda con una dll
Publicado por: cucay en 31 Octubre 2008, 19:37 pm
Visual C++ 7.0-8.0. Pues lo único que he podido usar es por ahora el IDA en desamblador, pero todavía estoy muy pegado. Quiero mirarlo en debbuger!!.  Alguien que le de una chequiadita por favor. Gracias


Título: Re: Ayuda con una dll
Publicado por: apuromafo CLS en 31 Octubre 2008, 21:28 pm
Visual C++ 7.0-8.0. Pues lo único que he podido usar es por ahora el IDA en desamblador, pero todavía estoy muy pegado. Quiero mirarlo en debbuger!!.  Alguien que le de una chequiadita por favor. Gracias

es dificil, si te funciona IDA, intenta agregar los plugins de este, y analizarlo como funciona..ahora bien si es vc++
ten presente tarde o temprano que necesitara los modulos normales de estos..
asi que el injerto en el peor de los casos podria ser con los modos de imagenes GDI..

solo si es que desarrollas un nivel mayor..obviamente
estoy claro que eres capaz de mirarlo..lo importante es que entiendas lo que veas..y el objetivo del mismo ;) mucho animo y sigue adelante


Título: Re: Ayuda con una dll
Publicado por: KJD en 1 Noviembre 2008, 00:38 am
Prova configurando el olly para que pare en cada importacion de dll, en Debuggin options, Events, Breack on new module, fijate cual es la ultima que carga antes que te de el error, y empeza a tracear desde alli hasta el error.


Título: Re: Ayuda con una dll
Publicado por: solidcls en 1 Noviembre 2008, 17:49 pm
2 cosas:
Primero, cuando para en la excepcion probaste dar SHIFT+F9 a ver si continua ??
Segundo, ATTACHEALO !!!!
SALUDOS !



Título: Re: Ayuda con una dll
Publicado por: cucay en 1 Noviembre 2008, 19:33 pm
Hola:

Si probé ese shift con todos los Fs y nada. Se deja attachar pero te deja botado en mfc80 o ntdll, mejor dicho este programa no es bobo!. Que dicen, arrojo la toalla?

PD. No creo que sea el IsdebbuggerPresent a pesar de estar en la dll, digo porque todos esos plugins que se han ideado no funcionan y cuando digo todos son todoss.



Título: Re: Ayuda con una dll
Publicado por: KJD en 1 Noviembre 2008, 19:56 pm
Hola:

Si probé ese shift con todos los Fs y nada. Se deja attachar pero te deja botado en mfc80 o ntdll, mejor dicho este programa no es bobo!. Que dicen, arrojo la toalla?

PD. No creo que sea el IsdebbuggerPresent a pesar de estar en la dll, digo porque todos esos plugins que se han ideado no funcionan y cuando digo todos son todoss.



Provaste con lo que te dije??? no para en acada importacion de la dll???


Título: Re: Ayuda con una dll
Publicado por: Shaddy en 1 Noviembre 2008, 20:55 pm
Aunque Solid creo que lo dejó claro.

Citar

1.- Analízalo con modo "M-B" en RDG Packer Detector. En caso de no detectar nada prueba con alguno alternativo. (más actualizado que el PEiD).
2.- Bájate la versión OllySND Portable que corre por ahí proque tiene el plugin "OllyAdvanced" y si es por ocultarlo creo que lo hará.
3.- ¿Que quieres hacer exactamente que no se pueda atacheando?


Salu2...


Título: Re: Ayuda con una dll
Publicado por: cucay en 2 Noviembre 2008, 11:19 am
Gracias de verdad por la colaboración. Me he encontrado con algo sorprendente gracias a sus recomendaciones. Quedé perplejo. Según el RDG, aparece protegido por una Hasp dongle. Será posible!. Pero si usa sistema de licencias flexl sin llave. Pero no puede ser el problema ahí. Tengo otro exe del mismo programa que si puedo correr en olly y que el RDG dice lo mismo. Solo que este no usa la dll. Este soft es del 2005. Uhmmm!

Chequeé la dll. Sacó algo interesante. Mencionó la compresion aPLib más el IsDebbuggerPresent. Creo que por ahí puede estar la cosa... pero raro que los plugines no lo oculten.

En resumen. Tengo un programa exe que ni siquiera lo puedo CARGAR en olly porque no ha pasado un nanosegundo cuando saca el letrero que no encuentra dll y manda una excepcion que no es manejable. La Memoria (M) aparece vacía y la stack (K) sin rastro, el Encabezado vuelto un desastre.

Y si abro el soft y le doy attach me manda directo a una excepción sin dejar rastro en el stack (K).

He chequeado el exe en file inspector y me muestra las fxns  sin problema, osea que la tabla IAT no debe estar tan mala. También en modo pasivo he chequeado el PE en olly entrada por entrada y parece estar bien. Solo el Checksum no concuerda. Uhm!

Uhm!! Veremos!

PD.

- Si probé bp en cada dll y en cada thread y varias opciones todo eso pero no funcionó.

- Probaré el olly SNDlite cuando lo pueda bajar. Había probado el que no es lite, impresionante, pero no funcionó.






Título: Re: Ayuda con una dll
Publicado por: KJD en 2 Noviembre 2008, 14:44 pm
Intenta primero sacar las protecciones de esa libreria, el aPLib y el isdebuggerpresent, talvez por eso no carga en olly.

Intentaste meter esa dll en la carpeta del olly??? suena raro pero.......


Título: Re: Ayuda con una dll
Publicado por: Shaddy en 2 Noviembre 2008, 19:08 pm
Bueno, por pasos porque no me aclaro del todo.

La librería tiene los 2 contratiempos.


- Algoritmo aPLiB.
- IsDebuggerPresent.


El 1º no creo que te dé ningún problema porque es un algoritmo estándar de compresión.

Citar
aPLib v0.44 - compression library

Copyright © 1998-2008 by Jørgen Ibsen. All Rights Reserved.

aPLib is a 32-bit compression library based on the compression algorithm used in aPACK (my executable compressor). aPLib is an easy-to-use alternative to many of the heavy-weight compression libraries available.

The compression ratios achieved by aPLib combined with the speed and tiny footprint of the depackers (as low as 169 bytes!) makes it the ideal choice for many products.

Since the first public release in 1998, aPLib has been one of the top pure LZ-based compression libraries available. It is used in a wide range of products including executable compression and protection software, archivers, games, embedded systems, and handheld devices.

aPLib works with most compilers / linkers, e.g.:

En cuanto a IsDebuggerPresent, tampoco creo que sea problema, he IsDebuggerPresent o simeplemente vas a "7ffdf002", (suele ser esa dirección..), y lo pones a 00 antes de arrancar.

Ahora lo de la mochila, puede llevar HASP sin necesidad de necesitar una llave "USB" física.

Ahora a ver si me aclaras lo de la librería, ¿cuando lo abres con OllyDBG te dice que no la encuentra?

Salu2..


Título: Re: Ayuda con una dll
Publicado por: cucay en 6 Noviembre 2008, 08:46 am
Hola. Disculpen la tardanza pero no  había visto que esto había continuado.

-A ver. Intenté copiar la dll a la carpeta del olly y nada.

-Si hombre, el mensaje aparece de entrada. Le doy abrir al exe y aparece el mensaje de dll not found y la excepción es inpasable por más que le de shift algo. Ojo ni siquiera le he dado F9. No tengo chance.. No lo carga!

-Lo de la hasp no se puede descartar del todo aunque como dije, es raro que a pesar de tener otros exes con la misma protección este sea el único que no se deja ni siquier ABRIR.

- Chequeé una versión anterior del soft y encontré que este usaba otra librería, digamos una versión anterior. El programa este packer detector no le detectó nada.... Sin embargo el problema persiste.

La verdad que esta protección te para de entrada y para los novatos es fatal.

 




Título: Re: Ayuda con una dll
Publicado por: KJD en 6 Noviembre 2008, 11:58 am
No creo que sea el hasp, ya que primero tiene que cargar el programa para luego verificar la mochila.

Pon un screen del log que te pone olly a ver que dice.

No se que olly estaras usando, pero prueva con el OllyShadow que tiene varios plugins para ocultarlo  herramientas que testean si estas realmente oculto, tambien descarga el OllySND (funciona solo en xp) este es mas "poderoso" que el anterior. (Ambos los tienes en el post Herramientas).


Título: Re: Ayuda con una dll
Publicado por: cucay en 6 Noviembre 2008, 14:45 pm
Bueno, esta es la parte interesante del log.

              New process with ID 00000AB4 created
005F593A   Main thread with ID 00000C7C created
7C97478E   Exception C0000135 (DLL NOT FOUND)
            Installing the hook...
            Hey I can't find the dll ! Try to do F7/F8/F9 and Plugins> SEH Hooker> Force to hook
             IsDebugPresent hidden
             Remove-RtlNtGlobalFlags
             Remove-ForceFlags

Ya probé esa versión y la pequena, obviamente con todos esos plugins trabajando y nada.

Raro ahh!. Casi paranormal. Está de concurso. El crackme del mes!! jeje.
Aunque creo que resultará algo trivial


Título: Re: Ayuda con una dll
Publicado por: KJD en 6 Noviembre 2008, 19:42 pm
Pues la verdad si, es bastante interesante, para hacer un tuto si resulta jejej.

Antes de empezar, en que sistema operativo estas?? me supongo que xp.

Por el log, me parece alguna proteccion anti debug, porque el hilo principal se crea, solo que despues muere.

Si te descargaste el OLLYsnd, fijate en la carpeta \Tools\HideToolz hay un programa llamado HideToolz, intenta ocultar el olly antes de empezar a debugear.

Si no funciona, carga esta DLL en olly, y fijate si encontras el issdebugerpresent y anulalo.

Saludos.


Título: Re: Ayuda con una dll
Publicado por: cucay en 28 Noviembre 2008, 18:35 pm
Bueno.. después de muchas lágrimas y patadas a mi PC pude correr el programa. Una solución poco ortodoxa, pero que más da. Comprimí el exe con PE Diminisher y corre. Algo molesto porque hay que descomprimirlo cada vez que corre. Pero bueno....

Lo que me pone a pensar es que la dll no estaba protegida sino el encabezado del exe. Y si detectaba el debuger ocultaba la entrada a las funciones. Al comprimirlo desaparece esta protección.  No se. Quizás alguna teoría descabellada. Alguna opinion experta?