elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


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

Desconectado Desconectado

Mensajes: 16


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

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 am 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 pm »

Alguna sugerencia despues de 60 lecturas?

Espero alguien pueda comentar.
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.513


Diviértete crackeando, que para eso estamos!


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

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 am 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 pm »

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.513


Diviértete crackeando, que para eso estamos!


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

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 pm »

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.513


Diviértete crackeando, que para eso estamos!


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

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 pm »

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.513


Diviértete crackeando, que para eso estamos!


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

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 pm »

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 pm por silvau » En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
discreet combustion trial
Diseño Gráfico
rodrihacker 0 1,636 Último mensaje 1 Octubre 2005, 13:02 pm
por rodrihacker
Trial-Reset v3.0
Ingeniería Inversa
ANELKAOS 2 9,614 Último mensaje 13 Octubre 2005, 15:17 pm
por Poyson
virtual dj trial
Ingeniería Inversa
peib0l 6 6,789 Último mensaje 20 Marzo 2012, 06:29 am
por x64core
Problemilla con un trial. « 1 2 3 4 5 »
Ingeniería Inversa
nemus 42 20,680 Último mensaje 7 Octubre 2010, 16:41 pm
por nemus
Ejecutable autoextraible
Programación C/C++
AbyssOfEternalCry 3 2,429 Último mensaje 22 Noviembre 2013, 02:43 am
por xaps
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines