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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  [C#] Ejecutar Exe Incrustado
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [C#] Ejecutar Exe Incrustado  (Leído 7,579 veces)
Xkipper

Desconectado Desconectado

Mensajes: 6


Ver Perfil
[C#] Ejecutar Exe Incrustado
« en: 1 Octubre 2011, 05:42 am »

Hola

Solo llevo unos días en esto del C# y me pareció interesante los métodos de programación.

Bueno, estoy en un mini proyecto donde tengo un Recurso (EXE) Incrustado y deseo ejecutarlo sin Escribirlo al Disco.

Hasta el momento debo escribirlo al Disco para ejecutarlo y la verdad no me molesta mucho, pero por "seguridad" me gustaría que el Exe no fuera llevado al Disco Duro.

--- Otra cosa, con lo mismo de ejecutar la Aplicación Incrustada. ---

He insertado un control Timer1 en mi proyecto (formulario) y la idea era que corriera la Aplicación y se activara el Timer1 para hacer un posterior Conteo de cuantos minutos la aplicación lleva Ejecutándose, pero me he llevado la sorpresa que al Ejecutar el EXE extraído el Timer no Corre aunque le de Start antes o después de la linea de proces.start().

Alguien me podría orientar sobre el caso ^^

Saludos


En línea

Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: [C#] Ejecutar Exe Incrustado
« Respuesta #1 en: 2 Octubre 2011, 00:41 am »

Bueno tengo varias cosas que aclararte :) la primera a través de la clase Process puedes obtener el StartTime del proceso y restado con Date.Now puede obtener el tiempo en TimeSpan que lleva corriendo el proceso desde que se inicio.

Aquí un ejemplo de como hacerlo con el proceso mismo
Código
  1.  MessageBox.Show(Date.Now.Subtract(Process.GetCurrentProcess.StartTime).ToString)

Y con respecto a lo del ejecutable hay una noticia buena y una mala :xD

La mala es que sin escribir el archivo en el disco no lo podrás correr.
La buena es que si el ejecutable está en .Net y no está ofuscado o protegido el código lo puedes cargar con Reflexion.


En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
Xkipper

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: [C#] Ejecutar Exe Incrustado
« Respuesta #2 en: 3 Octubre 2011, 06:48 am »

Oh Gracias.

Timer:
Esto lo "resolví" usando un BackgroundWorker así podía disfrutar el Timer como lo necesitaba.

Exe:
Lamentablemente intente con el método de Reflexión pero no funciono debido a que el Exe es de otro tipo y no reconoce el Ensamblador.

Necesito 2 cosas :

1.- Proteger el exe para que el usuario no lo pueda Correr sin usar la aplicación en C#

2.- Detectar programas Hook que estén corriendo en el Sistema, necesito identificar programas o script como AutoHotKeys. Para eso era Timer. Lamentablemente aun no se como detectar procesos a ese Nivel.

¿Alguien tiene una idea?

Saludos... ^^
En línea

Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: [C#] Ejecutar Exe Incrustado
« Respuesta #3 en: 3 Octubre 2011, 15:06 pm »

1.- Tienes el source del exe que no quieres que habra sin la aplicación en C#?
2.- No te recomiendo .Net para hacer esto, pero si lo quieres intentar adelante, tengo experiencias personales con .Net y Hooks traumantes :xD

Los Hooks vienen de diferentes colores, tamaños y formas, hay muchos metodos para hacer Hook, busca como funcionan algunos de estos metodos para poder detectar su presencia, siempre dejan alguna marca que se puede detectar.
« Última modificación: 3 Octubre 2011, 15:14 pm por Keyen Night » En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
Xkipper

Desconectado Desconectado

Mensajes: 6


Ver Perfil
Re: [C#] Ejecutar Exe Incrustado
« Respuesta #4 en: 3 Octubre 2011, 17:08 pm »

Keyen Night, eres el unico vivo en el Foro  :P

Bueno, no tengo el SRC del Exe porque ya viene compilado.

Sobre el uso de Hook se que hay de todas las formas.

Ahora, elegí .Net porque lo encontré mas fácil ya que no soy programador, por lo mismo se que no podría detectar esas huellas que mencionas.

Sé que AutoHotKeys ocupa una DLL propia de ellos, pero sus scripts compilados (exe) están comprimidos por UPX, no se si se puedan detectar aplicación en ejecución por el método UPX desde C#.

Si C# no es capaz de cumplir esa función, pues se podría usar otro lenguaje, compilar  un ejecutable y hacerlo correr con Timer1 para que monitoree y mate Hooks.

Saludos...
En línea

Keyen Night


Desconectado Desconectado

Mensajes: 496


Nothing


Ver Perfil
Re: [C#] Ejecutar Exe Incrustado
« Respuesta #5 en: 3 Octubre 2011, 19:43 pm »

Entonces es Hook por inyección de dll, debes tener en cuenta que Hookear es algo muy delicado, si instalas o desinstalas inadecuadamente el Hook puedes terminar con una bonita BSOD :xD o que el proceso crashee, debes usar C++ no hay otra opción :-X

Si estas buscando una dll en especifico basta con hacer tu una dll para inyectar en los procesos y descargar la dll que buscas, si estas generalizando y quieres detectar y descargar un tipo en especifico tienes que buscar como funcionan para ver como detectar ese tipo de inyección, con respecto a UPX, no hay que preocuparse porque cuando el dll esta cargado en memoria ya no está protegido. Por esto del Hook si estas dispuesto a hacerlo en C++ no tienes mucho de que preocuparte hay muchos ejemplos aqui en el foro incluso hay una clase en ASM/C++ hecha por [Zero] (Este tipo es un genio :xD) que la puedes usar en VS C++

Si no tienes el Source ni es .Net entonces no puedes hacer nada para evitar que el proceso no se habrá, a menos que estes dispuesto a hacerle un parche a el ejecutable, bastante difícil si eres principiante, si no tienes el Source pero es .Net puedes hacer un parche con .Net Reflector y el Add-Ins Reflexil, bastante fácil de hacer.
« Última modificación: 19 Febrero 2012, 23:43 pm por Keyen Night » En línea

La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
como ejecutar programa en memoria sin ejecutar el archivo « 1 2 »
Programación Visual Basic
Sai-To 13 10,927 Último mensaje 25 Mayo 2008, 18:14 pm
por Sai-To
Perfil incrustado
Diseño Gráfico
nichihack 0 2,818 Último mensaje 28 Noviembre 2011, 14:09 pm
por nichihack
Applet de Oracle incrustado
Hacking
merlyn333 1 2,581 Último mensaje 26 Junio 2012, 12:39 pm
por adastra
Crear anuncio incrustado en un video
Desarrollo Web
Jymbo1983 0 1,496 Último mensaje 30 Enero 2016, 00:54 am
por Jymbo1983
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines