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
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Crear proceso en C con Codeblocks que no muera al matar al proceso padre
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Crear proceso en C con Codeblocks que no muera al matar al proceso padre  (Leído 4,345 veces)
DrKillador

Desconectado Desconectado

Mensajes: 56



Ver Perfil
Crear proceso en C con Codeblocks que no muera al matar al proceso padre
« en: 2 Julio 2013, 20:20 pm »

Hola foreros!

Estoy practicando la creacion de hebras y procesos en C, con Codeblocks en Windows. De momento he hecho una aplicacion que abre la calculadora desde una hebra. Funciona perfecta.

Código
  1. //exec es una funcion que ejecutará el programa pasado como argumento, en las pruebas estoy utilizando calc.exe
  2. DWORD WINAPI b(LPVOID lpParam)
  3. {
  4.    exec(lpParam);
  5.    return 0;
  6. }
  7.  
  8. void a(char *lpParam)
  9. {
  10.    int dth1;
  11.    HANDLE hth1;
  12.  
  13.    hth1=CreateThread(NULL, 0, b(lpParam), &dth1, 0, NULL);
  14.    if(hth1==NULL)
  15.        ExitProcess(dth1);
  16. }

Mi duda ahora es la siguiente, cuando cierro la aplicacion se me cierra tambien la calculadora. Entiendo que es el comportamiento correcto, porque una hebra no deja de ser un hilo que depende del proceso padre. ¿Pero como deberia abrir la calculadora para que cuando muera el padre no muera el hijo? ¿No me valdria con crear una hebra no? ¿Deberia ser un proceso con CreateProcess?

Graxxxxx


En línea

Python <3 Python
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Crear proceso en C con Codeblocks que no muera al matar al proceso padre
« Respuesta #1 en: 2 Julio 2013, 21:10 pm »

Exacto, tendría que ser un proceso nuevo  ;)

Los hilos (hebras) dependen del proceso padre.


En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
DrKillador

Desconectado Desconectado

Mensajes: 56



Ver Perfil
Re: Crear proceso en C con Codeblocks que no muera al matar al proceso padre
« Respuesta #2 en: 3 Julio 2013, 17:34 pm »

Entiendo la teoría, pero a la hora de implementarlo tengo una duda existencial.

Con CreateThread yo podia pasarle como argumento una función que quería que me ejecutase "en paralelo" (en el caso anterior: b(lpParam)).

Pero con CreateProcess, solo puedo pasarle como argumento un exe, es decir, un programa ¿no?

Código
  1. CreateProcess(0,argument,0,0,TRUE,0,NULL,NULL,&si,&pi);

Graxxx men
En línea

Python <3 Python
amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Crear proceso en C con Codeblocks que no muera al matar al proceso padre
« Respuesta #3 en: 3 Julio 2013, 17:47 pm »

CreateProcess lanza un nuevo programa desde cero, el nombre se indica en el primer campo y los argumentos en el segundo campo.

Los exe pueden recibir argumentos, no sé si has visto una declaración main de este estilo:

Código
  1. int main(int argc,char** argv)

argc es el número de argumentos y argv son los distintos argumentos  ;)
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
aguml


Desconectado Desconectado

Mensajes: 378



Ver Perfil
Re: Crear proceso en C con Codeblocks que no muera al matar al proceso padre
« Respuesta #4 en: 15 Julio 2013, 12:07 pm »

¿Habeis probado con esto?
http://www.cplusplus.com/reference/thread/thread/detach/
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Crear proceso en C con Codeblocks que no muera al matar al proceso padre
« Respuesta #5 en: 15 Julio 2013, 12:55 pm »

Detach no sirve para eso  :silbar:

Cuando finaliza el programa, se cierra igualmente.
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
DrKillador

Desconectado Desconectado

Mensajes: 56



Ver Perfil
Re: Crear proceso en C con Codeblocks que no muera al matar al proceso padre
« Respuesta #6 en: 15 Julio 2013, 13:39 pm »

Gracias men, entonces no me queda otra que pasar el código de la funcion que queria ejecutar en un nuevo proceso a un nuevo exe, para poder lanzarlo de manera independiente

saludosss
En línea

Python <3 Python
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Matar un proceso con un bat
Scripting
Meta 2 8,906 Último mensaje 7 Agosto 2007, 23:20 pm
por Siuto
Matar proceso en VB6 « 1 2 »
Programación Visual Basic
& eDu & 11 13,295 Último mensaje 28 Junio 2008, 00:14 am
por astaroth_15
Matar proceso vbs
Scripting
Isótopo 5 11,459 Último mensaje 31 Diciembre 2008, 04:02 am
por Novlucker
Matar proceso segun su uso de cpu o memoria ram Window 7
.NET (C#, VB.NET, ASP)
eleze 5 4,535 Último mensaje 7 Enero 2018, 03:26 am
por Serapis
Detectar Proceso Padre (VB.net)
.NET (C#, VB.NET, ASP)
**Aincrad** 6 2,993 Último mensaje 17 Marzo 2019, 20:56 pm
por **Aincrad**
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines