Autor
|
Tema: Encontrar el método que instancia un Form (Leído 6,550 veces)
|
Eleкtro
Ex-Staff
Desconectado
Mensajes: 9.866
|
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
|
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
Mensajes: 9.866
|
@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
|
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...
|
|
|
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
Mensajes: 9.866
|
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). 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
|
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
Mensajes: 1.052
crack, crack y mas crack...
|
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
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
|
|
|
En línea
|
|
|
|
Flamer
Desconectado
Mensajes: 1.052
crack, crack y mas crack...
|
Me puedes manda una muestra para analisarla
Salu2 Flamer
|
|
|
En línea
|
|
|
|
suicidexcode
Desconectado
Mensajes: 12
|
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
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
[Solucionado] Como Hacer para llamar a un form desde otra instancia del programa
Programación Visual Basic
|
agus0
|
4
|
5,814
|
16 Enero 2010, 22:53 pm
por Hasseds
|
|
|
Metodo para encontrar nag en Delphi
Ingeniería Inversa
|
gastonp
|
5
|
4,216
|
7 Julio 2010, 05:20 am
por gastonp
|
|
|
Falso positivo con Medusa metodo web-form
Hacking
|
transfersote
|
1
|
2,869
|
23 Mayo 2013, 10:11 am
por transfersote
|
|
|
Ayuda con metodo para encontrar la direccion del Kernel y llamar APIs en memoria
ASM
|
harry_the_blogger
|
5
|
3,925
|
17 Agosto 2014, 10:51 am
por Eternal Idol
|
|
|
javascript - Un poco de ayuda para poder encontrar un método de descifrado
Desarrollo Web
|
TickTack
|
1
|
6,023
|
9 Agosto 2021, 14:07 pm
por el-brujo
|
|