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


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Pregunta sobre señales y semaforos en: 28 Agosto 2010, 05:44 am
Hola, tengo dudas sobre unos problemas, a ver si me las pueden aclarar. En este problema el proceso padre crea 3 hijos. Los 2 primeros hijos envian las señales sigusr1 y sigusr2 al padre respectivamente.

int main(int argc, char* argv[])
{
for (i=0;i<3;i++) { //tres veces

if(padre==1){ //sólo el padre replica

childpid = fork();

if (childpid == 0){
sleep(3);

/* Hijos */
if(i==0) //primer hijo envia señal SIGUSR1
kill(getppid(), SIGUSR2) == 1);

if(i==1) //segundo hijo envia señal SIGUSR2
kill(getppid(), SIGUSR2);

if(i==2)
printf("hijo3");
padre=0; //break; //los hijos ya no entran en el bucle otra vez
}// fin hijos

else { /* Padre */
if (signal(SIGUSR1, manejador_sigusr1)== SIG_ERR ||
signal(SIGUSR2, manejador_sigusr2)== SIG_ERR){
perror("Manejador no asignado");
exit(EXIT_FAILURE);
}
printf("padre: i=%d\n",i);
while (childpid != wait (&status))
if ((childpid == 1) && (errno != EINTR));
padre=1;

return 0;
}

Las cosas que no entiendo las he señalado en negrita. ¿para que necesita hacer un sleep(3)? Lo he visto en muchos problemas y no se para que sirve, se que durme el proceso durante 3 segundos, ¿pero para que quiere dormirlo? No lo entiendo.
Tampoco entiendo lo de

Código:
while (childpid != wait (&status))
if ((childpid == 1) && (errno != EINTR));

En otros problemas similares pones esto:

Código:
waitreturn = wait (&status);
while ( (waitreturn !=-1) || (waitreturn == -1 && errno == EINTR))
waitreturn = wait (&status);

¿por que no pone solamente wait(NULL)? Que espere a todos los hijos y ya esta, no entiendo todo ese codigo. wait(&status) devuelve el codigo del hijo y ahora lo compara con ¿-1? ¿wait devuelve -1 si da error? Aun asi no entiendo la comparacion.
Por ultimo no entiendo eso de if(padre==1)... para mi que sobra.

Bueno, para terminar una breve pregunta sobre semaforos.

Código:
libre=Semaph_create("libre",1);
libre=Semaph_create("ocupado",0);

//proceso 1
while(1){

down(libre);
down(excmut);
almacenar_elemento();
up(excmut);
up(ocupado);}

//proceso 2

while(1){

down(ocupado);
down(excmut);
almacenar_elemento();
up(excmut);
up(libre);}
¿tiene sentido aqui utilizar el semaforo excmut de exclusion mutua? Yo lo veo necesario si por ejemplo el semaforo libre estuviera inicializado a 10 y no a 1... y es que no veo ningun caso en el que 2 procesos puedan ejecutarse la sección critica a la vez... otra cosa es que se produzca una interrupcion o algo en la sección critica, pero eso no tiene nada que ver con definir un semaforo excmut...

Bueno, ojala me podais resolver algunas dudas, muchas gracias y hasta mañana.
2  Seguridad Informática / Nivel Web / Inyeccion SQL, ¿es vulnerable esta web? en: 28 Agosto 2009, 03:35 am
Resulta que estaba escaneando una web con el acunetix y me salto esta supuesta vulnerablidad SQL en esta variable:

****/?op=Leyes&idBoletin=111-222-1933email@address.tst

El servidor me da el siguiente mensaje de error:

No se ha podido realizar la consulta: select * from leyes where id_publiOficial = 111-222-1933email@address.tst order by fecha desc; Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@address.tst order by fecha desc' at line 1

De hay solo saco que hay una tabla llamada leyes y una columna llamada oficina.

Y ahora intento sacar las datos usando lo tipico, el having 1=1-- primero, dejando la url asi:

****/?op=Leyes&idBoletin=111-222-1933email@address.tst'having 1=1--

Dandome el mismo mensaje de error pero añadiendo lo del having:

No se ha podido realizar la consulta: select * from leyes where id_publiOficial = 111-222-1933email@address.tst'having 1=1-- order by fecha desc; Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@address.tst order by fecha desc' at line 1

Luego lo puse asi: ****/?op='having 1=1--

Y no me salio ningun mensaje de error...

Tambien probe con 2 comillas, con otras instrucciones, ¿es este sitio vulnerable? ¿Tengo que meter el having de otra manera?

Da mensajes de error, pero no te deja meter las comillas para hacer la inyeccion, las toma como un caracter mas me parece.

Gracias
3  Foros Generales / Sugerencias y dudas sobre el Foro / Porke m borrar 2 post en: 30 Mayo 2006, 17:50 pm
A ver los admin porke m borran estos dos post, Duda sobre defacer webs (1) y (2), joder ya dije k m daba un error en la base de datos y k no podia ponerlo todo junto... Despues de todo el trabajo para escribirlo lo borrais, podrias aberlo puesto en un post solo xk yo no puedo... :-(
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines