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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  cambiar de nombre a un proceso
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: cambiar de nombre a un proceso  (Leído 1,559 veces)
snowspring

Desconectado Desconectado

Mensajes: 12


Ver Perfil
cambiar de nombre a un proceso
« en: 4 Diciembre 2018, 19:47 pm »

Hola buenas, estaba haciendo un pequeño programa en C en el cual a partir de un proceso padre creo un proceso hijo y muestro por pantalla el PID del padre y del hijo, además de eso quería que al ejecutarlo en segundo plano al hacer un ps el nombre del proceso hijo cambie de "padre" a "hijo". He leido que con un execl cambiando el argumento argv[0] por "hijo" debería de funcionar pero no me funciona.
Os adjunto aquí el código.
Muchas gracias!

Código
  1. #include <signal.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <unistd.h>
  5. #include <string.h>
  6.  
  7.  
  8. int main(int argc, char *argv[]){
  9.        //printf("%s\n", argv[0]);
  10. if(strcmp(argv[0],"hijo")==0){
  11. malo();
  12.  
  13. }else{
  14. switch(fork()){
  15. case -1:
  16. perror("padre"); exit(1);
  17. case 0:
  18. printf("%d: Soy el hijo\n", getpid());
  19. break;
  20. default:
  21. printf("%d: Soy el padre\n", getpid());
  22.  
  23.  
  24. }
  25. execl(argv[0],"hijo", NULL);
  26. //printf("%s", argv[0]);
  27.  
  28. }
  29. pause();
  30. //sleep(30);
  31.  
  32. }


« Última modificación: 4 Diciembre 2018, 19:57 pm por snowspring » En línea

AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.705


🏴 Libertad!!!!!


Ver Perfil WWW
Re: cambiar de nombre a un proceso
« Respuesta #1 en: 4 Diciembre 2018, 20:11 pm »

He leido que con un execl cambiando el argumento argv[0] por "hijo" debería de funcionar pero no me funciona.


Código
  1. int execl(const char *path, const char *arg, ...);

Código:
The const char *arg and subsequent ellipses in the execl(), execlp(), and execle() functions can be thought of as arg0, arg1, ..., argn. 

Eso solo modifica los parametros que procesa el programa llamado mediante execl. normalemnte el argv[0] es el nombre del programa, pero eso solo cambia la forma en la que el programa se ve asi mismo, para el sistema operativo el proceso va seguir teniendo el nombre original.

Si quieres cambiar el nombre del proceso listado en el PS, tienes que "rootkitear" tu sistema operativo y controlar la forma en la que el PS actual afectandi directamente la informacion  que PS esta leyendo actualmente.


Saludos





En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cambiar el nombre del proceso en tiempo de ejecución
Programación Visual Basic
comotucorreo 0 1,705 Último mensaje 4 Marzo 2006, 20:38 pm
por comotucorreo
Cambiar el nombre de un proceso.
Software
777Rubenix777 1 5,512 Último mensaje 18 Mayo 2010, 15:24 pm
por Saberuneko
Wordpress, cambiar el nombre en las paginas! envez de p=?123 el nombre
Desarrollo Web
XXXXXX 7 10,342 Último mensaje 22 Noviembre 2010, 20:03 pm
por XXXXXX
cambiar nombre del proceso
Ingeniería Inversa
arabik 0 2,020 Último mensaje 25 Junio 2012, 19:32 pm
por arabik
Obtener el nombre de Proceso de un Programa
.NET (C#, VB.NET, ASP)
**Aincrad** 2 2,994 Último mensaje 20 Diciembre 2017, 13:54 pm
por **Aincrad**
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines