Necesito parchear un trozo de codigo de la memoria del kernel de linux (android).
Por el momento estoy con esto: (corriendo como root)
Esto me está generando algún kernel panic o algo, porque me reinicia el teléfono... Lo extraño es que, antes de reiniciar, la pantalla queda con "ABIERTO" y no en "POSICIONADO"... Sin embargo:
Devuelve correctamente los bytecodes que necesito parchear.. O sea, la posición de memoria es la correcta...
Con kmem, es exactamente igual...
Vi muchos ejemplos en google y son parecidos a este... Pero, por supuesto, ami no me funciona...
Quería consultar, si alguien conoce del asunto y que me pueda dar una mano...
Gracias y Salu2
Por el momento estoy con esto: (corriendo como root)
Código (cpp) [Seleccionar]
int fp = syscall(SYS_open,"/dev/mem",O_RDWR|O_SYNC,0);
printf("ABIERTO\n");
syscall(SYS_lseek,fp,0x70000000,SEEK_SET);
syscall(SYS_lseek,fp,0x10000000,SEEK_CUR);
syscall(SYS_lseek,fp,inet_bind-0xC0000000+0x80C00000-0x80000000+0xB0,SEEK_CUR);
printf("POSICIONADO\n");
((unsigned int *)&path)[0] = 0xE3A00001;
((unsigned int *)&path)[1] = 0;
syscall(SYS_write,fp,path,8);
printf("PARCHEADO\n");
Esto me está generando algún kernel panic o algo, porque me reinicia el teléfono... Lo extraño es que, antes de reiniciar, la pantalla queda con "ABIERTO" y no en "POSICIONADO"... Sin embargo:
Código (cpp) [Seleccionar]
int fp = syscall(SYS_open,"/dev/mem",O_RDWR|O_SYNC,0);
printf("ABIERTO\n");
syscall(SYS_lseek,fp,0x70000000,SEEK_SET);
syscall(SYS_lseek,fp,0x10000000,SEEK_CUR);
syscall(SYS_lseek,fp,inet_bind-0xC0000000+0x80C00000-0x80000000+0xB0,SEEK_CUR);
printf("POSICIONADO\n");
syscall(SYS_read,fp,path,8);
printf("LEIDO 0x%08X 0x%08X\n",((unsigned int *)&path)[0],((unsigned int *)&path)[1]);
Devuelve correctamente los bytecodes que necesito parchear.. O sea, la posición de memoria es la correcta...
Con kmem, es exactamente igual...
Vi muchos ejemplos en google y son parecidos a este... Pero, por supuesto, ami no me funciona...
Quería consultar, si alguien conoce del asunto y que me pueda dar una mano...
Gracias y Salu2