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
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Evitar ejecucion de programa.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Evitar ejecucion de programa.  (Leído 5,766 veces)
Gorky


Desconectado Desconectado

Mensajes: 770



Ver Perfil WWW
Evitar ejecucion de programa.
« en: 24 Mayo 2006, 17:36 pm »

Buenas foreros. Me preguntaba si seria posible evitar que un programa se ejecute. Pero no mirar cada cierto tiempo si dicho programa esta en ejecucion y matarlo. Sino algo asi como interceptar que se va a ejecutar y evitarlo. Dudo mucho que se pueda hacer o al menos en VB. Si alguien tiene una idea al respecto por favor compartidla.


En línea

Krnl64

Desconectado Desconectado

Mensajes: 169


Exception 0x00005


Ver Perfil
Re: Evitar ejecucion de programa.
« Respuesta #1 en: 25 Mayo 2006, 01:12 am »

Si se puede. Puedes buscar  la clase de la ventana abierta y despues enviarle un mensaje WM_SYSCOMMAND y SC_CLOSE.

De esta manera, no cierras el proceso sino que impides la ejecucion de esa clase.

Un ejemplo

Código:

''Coded by Krnl64
'' Conserva esta cabecera por favor

Const gcClassnameMSIExplorer = "IEFrame" '' clase del Internet Explorer

Const SC_CLOSE = &HF060&
Const WM_SYSCOMMAND = &H112
Dim cerrar&

cerrar = FindWindow(gcClassnameMSIExplorer, vbNullString)

if cerrar <> NULL then

Call SendMessage(cerrar, WM_SYSCOMMAND, SC_CLOSE, ByVal 0&)

end if


Espero haberte servido de ayuda.

Salu2





En línea

Eternal Idol
Kernel coder
Colaborador
***
Desconectado Desconectado

Mensajes: 5.958


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: Evitar ejecucion de programa.
« Respuesta #2 en: 25 Mayo 2006, 08:11 am »

Buenas foreros. Me preguntaba si seria posible evitar que un programa se ejecute. Pero no mirar cada cierto tiempo si dicho programa esta en ejecucion y matarlo. Sino algo asi como interceptar que se va a ejecutar y evitarlo. Dudo mucho que se pueda hacer o al menos en VB. Si alguien tiene una idea al respecto por favor compartidla.

Podes hacerlo en modo Usuario: tenes que inyectar codigo en todos los procesos e interceptar la funcion de creacion (CreateProcess).
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
Gorky


Desconectado Desconectado

Mensajes: 770



Ver Perfil WWW
Re: Evitar ejecucion de programa.
« Respuesta #3 en: 25 Mayo 2006, 13:52 pm »

Muchas gracias. Pues es algo que creia que no se podia hacer.

Krnl64 no estoy muy familiarizado con las clases. Las he oido nombrar en muchas ocasiones pero no se exactamente lo que son. Por lo poco que se puedo intuir que es algo como una libreria: un mismo elemento comun que usan varios programas. Y si mi intuicion es correcta, si impides la ejecucion de una clase no se cerraran tambien el resto de procesos que dependan de ella?
Tal vez haya hecho una mala conclusion pero espero que me saques de la duda.

Eternal Idol creo que es mas ortodoxa la opcion de Krnl64.
En línea

Krnl64

Desconectado Desconectado

Mensajes: 169


Exception 0x00005


Ver Perfil
Re: Evitar ejecucion de programa.
« Respuesta #4 en: 25 Mayo 2006, 15:38 pm »

Gorky, mira es sencillo.

Evidentemente, si restringes el uso de una clase, todas las aplicaciones que la usen no funcionarán o funcionarán parcialmente.

Una clase es como un módulo .BAS solo que tiiene extension .CLS

La diferencia entre ambas es que el módulo .BAS contiene funciones,  procedimientos y contstantes que tu aplicación puede usar.

Mientras que el modulo de clase .CLS  estan todos los procedimientos, funciones, métodos y propiedades que ese objeto posee.

El S.O. las contiene en alguna DLL pero no se en cual.

Un ejemplo para que lo entiendas.

Ya has estado trabajando con clases.

Cuando añades 1 form nuevo al proyecto,  tienes disponibles las propiedades Name, Caption, Appearance, etc

Y tambien los métodos Show, Hide, Move, Refresh, etc

Estas propiedades y métodos estan almacenados en una clase llamada ThunderRT6Main.

Si creas 1 aplicacion con 1 form y 1 commandbutton para salir de ella, al ver las clases que usa el proyecto, te saldran
las clases ThunderRT6Main y ThunderRT6Commandbutton.

VB nos permite desarrollar clases propias con eventos, métodos, propiedades, etc o mejorar las existentes

Espero haberte ayudado

Salu2









En línea

Gorky


Desconectado Desconectado

Mensajes: 770



Ver Perfil WWW
Re: Evitar ejecucion de programa.
« Respuesta #5 en: 25 Mayo 2006, 16:34 pm »

Perfecto Krnl64. Muchas gracias por la aclaracion. Ahora unas preguntas:

1.- Como puedo ver las clases que usa un programa ya compilado?

2.- Una vez que tenga la lista de clases que usa, deberia elegir una que, o bien haya sido diseñada por los creadores de ese software para que no la use nadie mas, o bien una que use poco comun. Me equivoco?

3.- Si restrinjo el uso de una clase, el proceso que quiero que no arranque y todos los que esten haciendo uso de ella, que les ocurre? Se cierran sin mas? Dan un mensaje de error?
En línea

Pseudoroot


Desconectado Desconectado

Mensajes: 839



Ver Perfil
Re: Evitar ejecucion de programa.
« Respuesta #6 en: 25 Mayo 2006, 21:54 pm »

creo que tambien se podria hacer, con una especie de dll hook
En línea

Krnl64

Desconectado Desconectado

Mensajes: 169


Exception 0x00005


Ver Perfil
Re: Evitar ejecucion de programa.
« Respuesta #7 en: 26 Mayo 2006, 00:19 am »

Si restringes el uso de una clase,  al abrirse el proceso ve que la clase no esta permitida y se cierra normal, sin dar error.

Aunque tambien se puede hacer que de error con una API.

Para ver las clases,  el programa tiene que estar en ejecución y tienes que verlas 1 programa especial.

Se llama Spy++ y monitoriza todos los elementos que hay corriendo permitiendo mandarle mensajes LPARAM y WPARAM. Esta utilidad la trae VB edicion Enterprise, (no estoy seguro que la traiga otras versiones. Yo tengo la Enter

Tambien puedes buscar las clases por internet, pero yo lo hago de la forma que te dije antes, debido a que segun la versión del Software (el programa instalado) algunas cambian de clase y porque asi, se las que necesito.

Las clases de Windows y otras aplicaciones, no se pueden modificar. Solo en el caso de inyeccion (creo) y solo se modifican en memoria y en tiempo de ejecucion.

La clase y Subclases de una aplicación, es como un identificador´"físico" que el S.O. utiliza para saber que esta ahi, aparte de gestionar los eventos, métodos, funciones, etc

Lee 1 poco del tema, y animate a hacer clases propias.

Tras conocer clases te podras meter en Herencia y Polimorfismo.

Salu2


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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