elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
28 Mayo 2012, 01:17  


Tema destacado: Sigue las noticias más importantes de elhacker.net en ttwitter!

+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: Shaddy, karmany)
| | |-+  Trial en vb6 native code autoextraible
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Trial en vb6 native code autoextraible  (Leído 4,266 veces)
silvau

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Trial en vb6 native code autoextraible
« en: 4 Noviembre 2010, 20:25 »

A todos, me presento con este programa.

He leído los tutes de Introducción de Ricardo  y no encuentro ( seguramente por falta de experiencia) la forma de entrarle a su análisis.

Se trata de un trial full durante 21 dias. De acuerdo a lo que he visto se desempaqueta en tiempo de ejecución, tiene un manejador de excepciones y es multithread. Por si fuera poco, está en PE code de VB6.

Dentro de los 21 dias aparece al principio una nag que me da la opción de activar la aplicación o usarla en modo evaluación por los dias restantes.

Una vez que pasa el periodo ( modificando la fecha del sistema) aparece la misma nag pero solo con la opción de activacion ( desaparece completamente el botón de evaluación.

Cuando entro al modo de activación aparecen dos números generados a partir de ids de la computadora ( disco duro, motherboard, etc). Y pide dos seriales para enviarlos al server que los verifica ( este envío creo se hace cifrado).

Mi teoría es:
Que el modo más "fácil" de "domar" este toro es hacer que la aplicación no tenga la restricción de los 21 días ( que se quede siempre en 21 o que a pesar de haber pasado el tiempo no desaparezca el botón de evaluación).

Una vez logrado esto podría atacarse la nag inicial que indica ambas opciones ( evaluación o activación) ocultándola o desaparecíendola y simulando el "click" sobre la evaluación y haciendo que pase directamente al "desempaquetado" de la aplicación y uso de la misma.

Ahora todas mis dudas.

Algún samaritano podría decirme si mis afirmaciones son correctas en cuanto al comportamiento del programa ( tipo de programa, lenguaje usado, etc).

Podrían decirme si es posible atacar el problema de esta manera o estoy enfocando mal el reto.

¿Es necesario desempaquetar el programa para eliminar su protección?. La preguta surge porque veo que desempaqueta hasta que pulso el botón del evaluación. Pero para eso del desempaquetado y la IAT como que estoy sin las herramientas... y dudo que vaya por ahí.

Por último, sería muy descabellado pensar en la activación?... A mi por ese lado sí me parece más complicado y sí necesitaría que me dieran luz sobre este enfoque. Usé el punto H que enseña Ricardo, pero me perdí en las comparaciones y el error de conexion al servidor...

Trabajo con olly y es lo que estoy tratando de aprender..

Por cierto, usando Trial Reseter vuelve a darme 21 dias y podría darme por servido dado que no me limita el programa en nada... pero la idea es aprender no?

¿El toro es muy bravo, me enfrento mejor a una vaquilla primero?

El enlace del instalador es este:

http://www.myupload.dk/showfile/65615451a9f.exe/



Gracias por su tiempo y ayuda.
« Última modificación: 11 Diciembre 2010, 00:51 por silvau » En línea
silvau

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Trial en vb6 pe code autoextraible
« Respuesta #1 en: 8 Noviembre 2010, 22:23 »

Alguna sugerencia despues de 60 lecturas?

Espero alguien pueda comentar.
En línea
MCKSys Argentina


Desconectado Desconectado

Mensajes: 1.222


Diviérte crackeando, que para eso estamos!


Ver Perfil
Re: Trial en vb6 pe code autoextraible
« Respuesta #2 en: 9 Noviembre 2010, 01:04 »

Tambien buscaste en la web de Ricardo como desempacar VB6 ???

Porque lo he desempacado en 2 minutos, usando el metodo mas antiguo que existe para VB 6.  :P

Si no investigas por ti mismo, nadie te hara las tareas.  :silbar:

Por lo pronto, mirando rapidamente el EXE, tiene un hack en la IAT. Aunque creo que es para poder llamar APIs del SO, sin tener que declararlas en el codigo VB.

Despues, el EXE esta en Codigo Nativo, no PCODE (No creas todo lo que dicen los detectores).

Pregunta: el programa se conecta a un servidor para funcionar??? No lo he probado, pero por las strings refs, asi parece...  :huh:

Por lo pronto, te recomiendo buscar el la web de Ricardo, como desempacar VB 6  :P

Saludos!

Modificado

El desempacado no correra facilmente, pero te permitira analizar el EXE... (VBDecompiler, IDA, etc)
« Última modificación: 9 Noviembre 2010, 01:12 por MCKSys Argentina » En línea

---------------------
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
silvau

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Trial en vb6 pe code autoextraible
« Respuesta #3 en: 9 Noviembre 2010, 16:23 »

Gracias por tu comentario, me dedicaré entonces a revisar el desempacado.

Respecto del hack en la IAT no entiendo a lo que te refieres ( alguna protección del programa?)

El programa se conecta a un servidor para activarse, pero puede funcionar sin internet.

Estoy empezando en esto, pero parece que no me saqué buenas calificaciones en el curso de Ricardo, me toca recursar...jaja.

En línea
MCKSys Argentina


Desconectado Desconectado

Mensajes: 1.222


Diviérte crackeando, que para eso estamos!


Ver Perfil
Re: Trial en vb6 pe code autoextraible
« Respuesta #4 en: 10 Noviembre 2010, 04:30 »

El hack que tiene la IAT, es en la funcion de VB que se usa para llamar funciones API de windows, o funciones externas (en DLL's).

La function es DllFunctionCall. En este EXE, esa funcion fue reemplazada por una del packer. En realidad, de esta forma esta funcionando mas lento, pero bueno... al menos intenta proteger el EXE...  :)

Si dumpeas el EXE, no te funcionara por este hack. Lo que hay que hacer, es agregar las secciones que contienen el codigo ejecutable y los datos de esa DLL "virtual" y reparar las referencias del EXE dumpeado.

Con un script lo puedes hacer en 2 patadas...  ;)

Saludos!
En línea

---------------------
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
silvau

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Trial en vb6 pe code autoextraible
« Respuesta #5 en: 10 Noviembre 2010, 21:05 »

Una vez mas. gracias por tu respuesta..primero me encargaré de hacerme del exe desempacado y después me ire sobre la reparación de la IAT..

En cuanto tenga algún avance publicaré mis nuevas dudas ( que seguramente seran varias).
En línea
MCKSys Argentina


Desconectado Desconectado

Mensajes: 1.222


Diviérte crackeando, que para eso estamos!


Ver Perfil
Re: Trial en vb6 pe code autoextraible
« Respuesta #6 en: 10 Noviembre 2010, 22:12 »

Para obtenert un semi-desempacado: pones un BP en ThunRTMain, y en el stack figura la direccion de retorno del call.

2 intrucciones mas arriba esta el OEP de VB: el PUSH y el CALL.

Balanceando el stack y poniendo EIP en el push, puedes dumpear sin problemas y arreglar la IAT con Imprec (no te olvides que la entrada mala es el hack).

Saludos!
En línea

---------------------
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
silvau

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Trial en vb6 pe code autoextraible
« Respuesta #7 en: 19 Noviembre 2010, 19:34 »

Honestamente estoy perdido. el BP en ThunRTMain salta hasta que doy click en evaluar, entonces supongo que la idea es obtener un codigo que ya no muestre el nag de comprar o evaluar sino directamente el loading.

Sin embargo, no logro llegar al OEP, no logro ver el push y call.

Por otra parte estoy investigando qué significa "balancear el Stack..." porque no he podido interpretar tus sugerencias..

El tema no lo he dejado, solo que parece que me faltan varias lecturas antes de dar con el clavo.

Gracias por tu ayuda.
En línea
MCKSys Argentina


Desconectado Desconectado

Mensajes: 1.222


Diviérte crackeando, que para eso estamos!


Ver Perfil
Re: Trial en vb6 pe code autoextraible
« Respuesta #8 en: 19 Noviembre 2010, 19:43 »

Balancear el stack, significa tener en cuenta los PUSH/POP que se hicieron desde el lugar donde quieres llegar hasta el lugar donde estas.

De todas formas, no veo necesario balancearlo aqui, asi que puedes poner el EIP en el push y dumpear...

Por lo del conocimiento... bueno, lo maximo que puedo hacer es darte una mano, pero si no entiendes lo que te digo, creo que deberias leer algunos tutes antes...  :P

De todas formas, estamos aqui para aprender... no?  ;)

Saludos!
En línea

---------------------
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
silvau

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Trial en vb6 pe code autoextraible
« Respuesta #9 en: 2 Diciembre 2010, 19:29 »

Sigo estudiando el tema... solo que me he encontrado con que la llamada a ThunRTMain (para llegar al OEP) la encuentro por el método de las excepciones pero ya no estoy seguro que sea el correcto...

Para verificar lo intenté encontrar con un bp on memory access en MSVBVM60 en la parte code ( ENGINE)... pero en la pila solo encuentro direcciones hacia la misma dll u otras... no llego al user code traceando... o quizá no tengo suficiente paciencia.

Lo que he visto es que por las excepciones el desempacador no usa la misma direccion ( para generar las últimas excepciones) y eso me hace pensar q el punto q encontré no es el correcto... ¿ como puedo probar q es el correcto...?

Adjunto la imagen del OEP q obtuve... haber si alguien puede confirmarlo o corregirme.http://img.vz4.net/?s2ik5_oep.jpg
« Última modificación: 2 Diciembre 2010, 19:34 por silvau » En línea
MCKSys Argentina


Desconectado Desconectado

Mensajes: 1.222


Diviérte crackeando, que para eso estamos!


Ver Perfil
Re: Trial en vb6 pe code autoextraible
« Respuesta #10 en: 2 Diciembre 2010, 19:39 »

Ese es el OEP...
En línea

---------------------
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
silvau

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Trial en vb6 pe code autoextraible
« Respuesta #11 en: 2 Diciembre 2010, 19:42 »

Gracias por tu pronta respuesta..


Entonces ahora me toca dumpear y ver lo de la IAT...

Cuando tenga avances posteo.. ;-)
En línea
silvau

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Trial en vb6 pe code autoextraible
« Respuesta #12 en: 3 Diciembre 2010, 22:57 »

Mmmmm.... ya me volví a empantanar...

Resulta... que obtengo el archivo "dumpeado" con Ollydump, y petools

hasta ahi todo parece bien..

Toca entonces checar la IAT...

pero...



las únicas calls que identifico son llamadas a MSVBVM60... estoy bien o me regreso?...

Bueno... suponiendo que es solo esa... pues a buscar el tamaño de la IAT cierto?


Entonces voy a la direccion que dice va a ThunRTMain  40143C.

Ahi encuentro... esto..




Todas las referencias son a MSVBVM60... llendo hacia arriba... !!!Llego a 401000
con ese patrón!!!!

Entonces supongo que empieza en 401000


Pero hacia abajo no veo el limite... la secuencia de ceros no es clara...




Yo supongo que termina en 40154C... porque ahí termina el "patrón"... y suponiendo que no llama a otra dll... pues parece correcto... además... los datos debajo no llevan a direccion válida...
entonces...
usando estos datos... no obtengo con el importrec un exe valido... uso el petool para "reparar" la sección PE y sigo sin obtener nada...


He escuchado que se puede obtener un archivo "casi" desempacado... a qué se refieren?

Gracias por su ayuda.

Adjunto imagen haber si alguien me puede dar alguna pista..




En línea
silvau

Desconectado Desconectado

Mensajes: 16


Ver Perfil
Re: Trial en vb6 pe code autoextraible
« Respuesta #13 en: 3 Diciembre 2010, 23:07 »

El hack que tiene la IAT, es en la funcion de VB que se usa para llamar funciones API de windows, o funciones externas (en DLL's).

La function es DllFunctionCall. En este EXE, esa funcion fue reemplazada por una del packer. En realidad, de esta forma esta funcionando mas lento, pero bueno... al menos intenta proteger el EXE...  :)

Si dumpeas el EXE, no te funcionara por este hack. Lo que hay que hacer, es agregar las secciones que contienen el codigo ejecutable y los datos de esa DLL "virtual" y reparar las referencias del EXE dumpeado.

Con un script lo puedes hacer en 2 patadas...  ;)

Saludos!

Había olvidado estas instrucciones... No entiendo mucho cómo agregar las secciones. creo que reparar la dll virtual es reparando la referencia perdida de la IAT , para que apunte a dll function call (y cómo supiste que era esa???...por experiencia?)... y quizá con esto pueda obtener un exe que pueda correr al menos en olly...espero encontrar la info...

Actualizaré los resultados.
« Última modificación: 3 Diciembre 2010, 23:10 por silvau » En línea
MCKSys Argentina


Desconectado Desconectado

Mensajes: 1.222


Diviérte crackeando, que para eso estamos!


Ver Perfil
Re: Trial en vb6 pe code autoextraible
« Respuesta #14 en: 4 Diciembre 2010, 00:56 »

Si reemplazas la funcion por la original, se reparan algunas entradas, pero no todas... por eso lo de agregar las secciones y asi no jode esa parte  :P
En línea

---------------------
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
virtual dj trial
Ingeniería Inversa
peib0l 6 3,326 Último mensaje 20 Marzo 2012, 06:29
por RHL
Imagen autoextraible de Windows Xp o algun otro
Windows
DarkbookGT 0 385 Último mensaje 28 Mayo 2007, 20:31
por DarkbookGT
Trial-Reset.
Software
B€T€B€ 7 3,712 Último mensaje 15 Septiembre 2009, 00:14
por B€T€B€
[Code:Blocks] Run code y lanzar terminal
GNU/Linux
El As del Club Paris 0 896 Último mensaje 11 Septiembre 2009, 05:05
por El As del Club Paris
Problemilla con un trial. « 1 2 3 »
Ingeniería Inversa
nemus 42 5,084 Último mensaje 7 Octubre 2010, 16:41
por nemus
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines