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


 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .Exe evita ejecución de una dll?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: .Exe evita ejecución de una dll?  (Leído 1,067 veces)
gonzalitosk8

Desconectado Desconectado

Mensajes: 14


Ver Perfil
.Exe evita ejecución de una dll?
« en: 6 Junio 2015, 20:29 »

Hola comunidad, como están?
tengo una duda respecto a un exe que tengo,  es posible que al ejecutarse evite el inicio de unas funciones dll? de ser asi, en programación c# es posible crear algún archivo que ejecute una dll específicamente al iniciar el exe?
alguien que me oriente y explique ?

buen finde !


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: .Exe evita ejecución de una dll?
« Respuesta #1 en: 6 Junio 2015, 20:55 »

es posible que al ejecutarse evite el inicio de unas funciones dll?

Si, es posible siempre que hayan programado el código fuente para ese fín; se puede hookear "X" función de "X" .dll para procesar y alterar el comportamiento de sus llamadas, así cómo cancelarlas/ignorarlas.

en programación c# es posible crear algún archivo que ejecute una dll específicamente al iniciar el exe?

¿Qué estás preguntando exactamente?, ¿puedes ser más específico?, una .dll difiere de un executable en que precisamente no es un archivo ejecutable, ya que no provee un punto de entrada (entry point) que determine una función principal a la cual se le pase el control para iniciar su ejecución.

Si lo que pretendes es cargar una .dll y utilizar sus funciones, puedes hacerlo, sí;
en caso de que eso sea lo que pretendes, y si es un ensamblado .Net, entonces la solución más sencilla sería referenciar dicha .dll en tú solución de Visual Studio, la solución compleja sería cargar dinamicamente la .dll en tiempo de ejecución utilizando la técnica Reflection, con los miembros de la Class System.Reflection.Assembly, empezando por el miembro para cargar el ensamblado (System.Reflection.Aassembly.LoadFile()) y posteriórmente los miembros para localizar las funciones de dicha dll;
si por lo contrario es una .dll desarrollada en C/C++, entonces debes crear un wrapper, en esencia constaría de una Class de C# donde deberías declarar las mismas funciones que tiene la .dll y con sus mismas firmas (es decir, la misma parametización equivalente a .Net), es una tarea sencilla siempre y cuando conozcas cómo ha sido desarrollada dicha .dll, debes conocer los nombres de dichas funciones y también sus firmas, ya que debido a la naturaleza de C++, esto último es indescifrable mediante ingeniería inversa, no puedes saber a ciencia cierta si una función compilada toma un string cómo argumento, o un entero, a menos que hayas intentado pasarle ambos tipos de argumentos para salir de dudas, por suerte hay herramientas que facilitan en parte el análisis de una dll, cómo por ejemplo "Dll Export Viewer" de Nirsoft.

Saludos


« Última modificación: 6 Junio 2015, 21:06 por Eleкtro » En línea


gonzalitosk8

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: .Exe evita ejecución de una dll?
« Respuesta #2 en: 8 Junio 2015, 17:56 »

Muchas gracias por explicarme!
te comento el porque hice esta pregunta.

tengo un exe en modo trial, al no ser registrado no funciona la opción de exportar.
también tengo el mismo exe pero con la opción de exportar pero que te pide registrar para poder hacerlo.

una carpeta contiene el exe y creo yo que los dll dentro de ese exe.
la otra tiene los dll fuera del exe dentro de una carpeta.

revisando con un editor hexadecimal, vi un texto que dice "export has finished"

entonces supuse que el exe, tiene programado no ejecutar ese dll para el modo trial, y que al estar registrado ese dll se ejecute! quizás también tenga una conexion con otras dll, pero ya no se tanto!

asi que calcule que fue creado con ese propósito, iniciar el exe sin ejecutar esa dll!
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: .Exe evita ejecución de una dll?
« Respuesta #3 en: 8 Junio 2015, 18:43 »

¿Y cómo has llegado a la conclusión de que la función "exportar" se encuentra en una de esas dll, y no es algún procedimiento del código compilado en el exe?, ¿lo has analizado bien, o solo es una suposición?.

¿En que lenguaje está programada la aplicación?, ¿en C#?;
en C# (y otros lenguajes) puedes cargar dinamicamente una dll, es decir, no necesariamente se debe cargar una dll en el startup de la aplicación si el programador no quiere, siempre y cuando dicha dll no sea una dependencia "crítica" para el inicio de la app, claro está.

Ten en cuenta también, que las dll se podrían adjuntar/embedir en el exe, es decir, unir las dependencias .dll en un archivo .exe unificado, lo comento por eso de que tienes una versión sin dlls y otra con dlls, ese podría ser un motivo, o tal vez simplemente en una versión el autor no usó ninguna dll y en una actualización posterior añadió el uso de esas dll, quien sabe realmente cómo es sin poder analizar la app que comentas...

De todas formas por lo que has comentado me parece que esto no tiene que ver con la programación, sino más bien con la ingeniería inversa, ya que si no entiendo mal lo que realmente pretendes es bypassear la prohibición de la característica de exportar sin tener que registrarte,
en ese caso debes saber que en el foro no se da soporte para craquear aplicaciones comerciales, pero de todas formas puedes probar suerte a ver que opinan los moderadores del foro de Ingeniería Inversa.

Saludos!
« Última modificación: 8 Junio 2015, 19:00 por Eleкtro » En línea


gonzalitosk8

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: .Exe evita ejecución de una dll?
« Respuesta #4 en: 17 Junio 2015, 20:16 »

Muchísimas gracias por responder,  definitivamente me parece que tiene que ver con dicha dll, ya que abrí con "odbg" dicha dll y hay un contexto que parece borrar el menú de exportar(" ?MenuDelete@ifViewer@@AAEXXZ ").

ahora es cuestión de ver como puedo evitar esa acción! seguiré buscando información! saludos!
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Twitter evita que una mujer se suicide
Noticias
wolfbcn 0 1,244 Último mensaje 4 Agosto 2011, 18:44
por wolfbcn
Apple no evita el aumento del malware en Mac
Noticias
wolfbcn 1 964 Último mensaje 24 Enero 2012, 01:58
por beholdthe
Evita la instalación de adware con Unchecky
Noticias
wolfbcn 0 811 Último mensaje 6 Diciembre 2013, 21:54
por wolfbcn
El clic que evita las multas de Tráfico
Noticias
wolfbcn 0 962 Último mensaje 12 Enero 2014, 01:56
por wolfbcn
Evita los 5 errores de novato al construir un PC por piezas
Noticias
wolfbcn 0 768 Último mensaje 20 Junio 2016, 21:51
por wolfbcn
Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines