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

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Encontrar el método que instancia un Form
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Encontrar el método que instancia un Form  (Leído 6,550 veces)
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Encontrar el método que instancia un Form
« en: 11 Enero 2015, 04:25 am »

Buenas!

Estoy utilizando una aplicación completamente gratuita desarrollada en Delphi que al iniciar el programa (justo al iniciarse) muestra 2 Forms insufribles con spam, ventanas que debo cerrar para que me muestre el Form principal de la aplicación, y al cerrar el Form principal (es decir, al cerrar la aplicación) vuelven a salir las molestas ventanas de spam que debo cerrar una vez más.

No encuentro ningún ejemplo sencillo en Google, todo es complejo de entender, como lo que explican en esta url, y no me aclaro.

¿Alguien me puede orientar un poco acerca de como puedo buscar y encontrar las instrucciones necesarias que debo noopear para bypasear esos Forms, en IDA Pro u OllyDbg 1.0?

EDITO:
Con el decompilder DEDE creo que he encontrado los RVA de los métodos que instancian los forms de publicidad (no se que hacer con los RVA), posteriormente he desensamblado esos métodos directamente en el DEDE para obtener los offsets del evento "FormCreate", y luego en un editor hexadecimal he noopeado los offsets, pero me tira error la aplicación :-/

Gracias

Saludos!
« Última modificación: 11 Enero 2015, 05:37 am por Eleкtro » En línea



MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.513


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Encontrar el método que instancia un Form
« Respuesta #1 en: 11 Enero 2015, 06:48 am »

Hola!

IDR es lo recomendado a la hora de analizar ejecutables hechos en Delphi.

Saludos!
En línea

MCKSys Argentina

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

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Encontrar el método que instancia un Form
« Respuesta #2 en: 11 Enero 2015, 07:48 am »

@MCKSys Argentina
Gracias, ¿podrías indicarme más o menos que es lo que debo buscar o en que debo fijarme en el IDR?

Supongo que lo que he marcado en rojo es la llamada al método "principal":


Dentro, no se si voy bien encaminado, pero veo que se instancian 3 forms, y en un principio creo que el primero debería ser el TfmSplash, el segundo TfmAbout, y el tercero TfmMain (o al menos ese es el orden al ejecutar la app de forma normal), quiero ocultar los dos primeros.. que son spam.

Pero ahora, creo que en el IDR no puedo modificar directamente los ops, así que copio esos 3 offsets y abro el ollyDbg, bien, ¿pero que hago?, ¿cómo debo cambiarlo?,
 ¿debo noopear los 2 primeros call, o debo "intercambiar" la primera instrucción por la última para que salte directamente al Form principal?, ¿y como hago entonces para intercambiar las posiciones?:



Saludos!
« Última modificación: 11 Enero 2015, 07:58 am por Eleкtro » En línea



MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.513


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Encontrar el método que instancia un Form
« Respuesta #3 en: 11 Enero 2015, 08:55 am »

Pero ahora, creo que en el IDR no puedo modificar directamente los ops, así que copio esos 3 offsets y abro el ollyDbg, bien, ¿pero que hago?, ¿cómo debo cambiarlo?,
 ¿debo noopear los 2 primeros call, o debo "intercambiar" la primera instrucción por la última para que salte directamente al Form principal?, ¿y como hago entonces para intercambiar las posiciones?:

IDR sólo desemsambla. Los cambios los debes hacer con Olly o un editor hexa o con lo que más gustes.

Con respecto a "qué debes hacer": No recuerdo bien, pero creo que en delphi primero hay que crear un form para luego usarlo. Si NOPeas el CreateForm, quizás luego salte un error pues la aplicación intentará mostrar un form que no se ha creado.

Deberías buscar la parte del código donde haga un "Show" o "Activate" (la verdad, no recuerdo cómo hace delphi para mostrar un formulario).
Revisa los metodos de los forms que quieres quitar.

Saludos!

PD: Por lo que veo el programa se llama iconedit, pero hay muchos con ese nombre...  :P
En línea

MCKSys Argentina

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

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.866



Ver Perfil
Re: Encontrar el método que instancia un Form
« Respuesta #4 en: 11 Enero 2015, 11:49 am »

Deberías buscar la parte del código donde haga un "Show" o "Activate" (la verdad, no recuerdo cómo hace delphi para mostrar un formulario).
En Delphi se utiliza el método Show para mostrar un Form, pero no encontré nada de eso en el DEDE/IDR (debido a la inexperiencia).

Citar
IDR sólo desemsambla. Los cambios los debes hacer con Olly o un editor hexa o con lo que más gustes.
El ollydbg lo odio, me cuesta manejarme incluso para encontrar el entrypoint de la aplicación (de verdad, no se encontrarlo en ollydbg), y todo sale con una fuente de letra texto muy pequeña.

Con el IDA me llevo mejor, pero todo son complicaciones de diseño y de soporte con este programa ...a pesar de ser el nº1, no puede ni generar un .exe y hay que buscarse la vida para para modificar un op (primero hay que editar un archivo de configuración para añadir/activar la opción de edición) y/o para parchear el archivo de diferencia de bytes (.dif) que genera IDA, en resumen... se invierte mucho más tiempo para acabar cometiendo siempre el mismo error.

Todo lo que noopeo me tira errores de memoria, pero bueno, ¡seguiré intentándolo!

saludos
« Última modificación: 11 Enero 2015, 12:00 pm por Eleкtro » En línea



MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.513


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Encontrar el método que instancia un Form
« Respuesta #5 en: 11 Enero 2015, 18:26 pm »

El ollydbg lo odio, me cuesta manejarme incluso para encontrar el entrypoint de la aplicación (de verdad, no se encontrarlo en ollydbg), y todo sale con una fuente de letra texto muy pequeña.

Toda la interface de Olly se puede configurar. Incluso dispones de varios tipos de fuente para las ventanas...  ;)

Saludos!
En línea

MCKSys Argentina

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

Flamer


Desconectado Desconectado

Mensajes: 1.052


crack, crack y mas crack...


Ver Perfil WWW
Re: Encontrar el método que instancia un Form
« Respuesta #6 en: 11 Enero 2015, 19:23 pm »

Hola Elektro lo que dise fly con lo poco que lei por que no lei todo es que encuentres la funcion que manda crear la ventana y luego que la encuentres es solo cuestion de redirigir el flujo del programa o sea que no se ejecute dicha funcion.
Para en pesar yo uso Olly y una de las apis que crea ventanas es CreateWindowEx si no me equivoco ya que estoy con el celular e.
Puedes empezar poniendo un BreakPoint en dicha api, nomas que no la nopees por que pienso que te marcara error, mejor dirijete unas lineas atras y modifica algunos valores para que no se ejecute y cambees el curso del programa.

Saludos Flamer y con el Resource Hacker no puedes quitar las ventanas
En línea

Mi Canal De Youtube y Blog

https://elblogdeflamer.blogspot.com

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: Encontrar el método que instancia un Form
« Respuesta #7 en: 12 Enero 2015, 01:34 am »

¿leíste este tuto? http://ricardonarvaja.info/WEB/CURSO%20NUEVO/TEORIAS%20NUMERADAS/801-900/838-COMO_ELIMINAR_NAGS_EN_PROGRAMAS_DELPHI.rar
En línea

Flamer


Desconectado Desconectado

Mensajes: 1.052


crack, crack y mas crack...


Ver Perfil WWW
Re: Encontrar el método que instancia un Form
« Respuesta #8 en: 13 Enero 2015, 03:20 am »

Me puedes manda una muestra para analisarla

Salu2 Flamer
En línea

Mi Canal De Youtube y Blog

https://elblogdeflamer.blogspot.com

suicidexcode

Desconectado Desconectado

Mensajes: 12



Ver Perfil
Re: Encontrar el método que instancia un Form
« Respuesta #9 en: 14 Enero 2015, 03:44 am »

Estimado hágale caso a lo que dice Flamer, con Olly deberías volver un par de lineas atrás o buscar desde donde se hace la llamada a esa instancia que muestra la ventana, quizás encuentres algún Jump y si es así es mucho mas fácil redirigir el flujo.

Consejo: utiliza Olly es mas sencillo de lo que crees.

hay una configuración del Olly que te muestra con una linea al costado donde te redirige algún Jump y también para que resalte dichas instrucciones.

si mal no recuerdo también puedes marcar una instrucción y con el clic derecho si buscas hay una opción que te dice buscar desde donde es llamada la instrucción seleccionada.

Aunque creo que lo que mas te puede ayudar en tu problema es depurar el programa paso a paso creo que con el Olly era con F7 o F8 + Alt no estoy seguro pero si era una combinación con esas teclas y te comienza  a correr el programa y a mostrar cada linea de código que se ejecuta y te detienes en el momento que abre la ventana que te molesta y comienzas a seguir hacia atras.

Sorry si lo que dije te enreda.

Saludos,
En línea

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

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines