Re: Incluir una huella en módulo del kernel

2012-04-06 Por tema Juan Antonio
El 05/04/12 19:06, Camaleón escribió:
 El Thu, 05 Apr 2012 13:43:44 -0300, Gonzalo Rivero escribió:
 
 El jue, 05-04-2012 a las 16:32 +, Camaleón escribió:
 El Thu, 05 Apr 2012 16:52:12 +0200, Juan Antonio escribió:
 
 (...)
 
 Por último, lo que te comentaba antes era que tu misma añadieses al
 parche un printk, que es un como un printf de libc de toda la vida,

 http://www.kernel-labs.org/?q=printk

 en la función init_module(), que es la que se llama cuando cargas el
 módulo.

 Huys, no entiendo ni jota. Voy a ver si logro sacar algo útil del
 objdump que me parece más asequible :-)

 esto entendí yo: en algún lugar del módulo hay una init_module() (man 2
 init_module), en ese tal lugar podés agregar algo como:
 printk(KERN_WARNING Hola mundo!\n);
 
 ¿Del archivo main.c que tengo que modificar? 
 
 No, no aparece ninguna llamada a la función init_module, un grep me 
 devuelve esa cadena (init_module) en un archivo *.o, binario.
 
 ¿Dónde tendría que poner el printk? :-?
 
 y recompilarlo. Entonces, al cargarse, el módulo debería mostrarte en
 dmesg (o similares) un: Hola mundo!

 Y esa sería tu huella para saber que tenés el módulo modificado
 
 Ya lo pillo... y la idea es buena pero no sé cómo llevarla a la práctica.
 
 Saludos,
 


perdona camaleon, lo de init_module parece que ha cambiado, asi lo
recordaba yo del 2.4

Busca en el código la llamada a module_init(). Como parámetro lleva el
numbre de una función y ahora esa función es el punto de entrada del
código del módulo.

Por ejemplo de bsr.c

[ código ]

static int __init bsr_init(void)   --- *
{
struct device_node *np;
dev_t bsr_dev;

[ mas código ]

}

[ mas código aun ]

module_init(bsr_init);   - * Esta
module_exit(bsr_exit);


Y dentro de la función escribes el printk que te ha dicho Gonzalo.

Lo siento, un saludo.

-- 
Tanto en los deportes como en todo lo demás, soy un experto. Pero para
mantener viva mi inteligencia natural y fuera de serie, tengo que comer
mucho


-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4f7ea1cf.3020...@limbo.deathwing.net



Re: Incluir una huella en módulo del kernel

2012-04-06 Por tema Camaleón
El Thu, 05 Apr 2012 14:57:16 -0300, Gonzalo Rivero escribió:

 El jue, 05-04-2012 a las 17:06 +, Camaleón escribió:

(...)

  Y esa sería tu huella para saber que tenés el módulo modificado
 
 Ya lo pillo... y la idea es buena pero no sé cómo llevarla a la
 práctica.
 
 jejeje yo tampoco :P
 (lo mas parecido que conozco a C son cosas inspiradas por su sintaxis,
 como perl o php)
 
 ¿fijate si aquí encontrás algo interesante?
 http://tldp.org/LDP/lkmpg/2.6/html/lkmpg.html#AEN119

El ejemplo es perfecto como guía-burros, gracias :-)

El problema es que en este caso no se trata de un archivo único *.c que 
genera un módulo .ko, la cosa es más complicadilla...

Gracias a todos por los comentarios y las ideas, os explico un poco de 
qué va la cosa.

El módulo que se genera es el del adaptador wifi (brcmsmac.ko) y el 
parche que estoy aplicando es este:

http://bugs.debian.org/cgi-bin/bugreport.cgi?msg=10;filename=brcm80211-smac-fix-endless-retry-of-A-MPDU-transmiss.patch;att=1;bug=664767

El parche está aplicado y el módulo parcheado cargado pero sigo teniendo 
el mismo problema con el driver (aparece una traza de error en el 
registro) por eso quería asegurarme de que lo había aplicado bien, de ahí 
mi interés en poder marcarlo de alguna forma.

Pero ese archivo que modifico (ampdu.c¹ para el kernel 3.2 y el main.c 
y un par más para el kernel 3.3) es demasiado enrevesado como para meter 
una funcioncilla printk() por ahí, así sin más, sencillamente no sé 
ande ponerla.

Pero bueno, estoy viendo en otros bugzillas² (Fedora) que hay más gente  
en la misma situación tras haber aplicado el parche, lo cual me da a 
entender que no se ha corregido del todo y que el parche aún tiene 
agujeros. 

Como ya he abierto dos informes de fallo (uno en Debian y otro en el kernel) 
pues voy a esperar a ver si mandan algún otro parche para probar.

¹http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git;a=blob;f=drivers/net/wireless/brcm80211/brcmsmac/ampdu.c;h=95b5902bc4b3a3241f68cde20434b8592ba71ebc;hb=HEAD
²https://bugzilla.redhat.com/show_bug.cgi?id=787649

Saludos,

-- 
Camaleón


-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/jlmf13$j6g$1...@dough.gmane.org



Re: Incluir una huella en módulo del kernel

2012-04-06 Por tema Angel Claudio Alvarez
El vie, 06-04-2012 a las 09:57 +0200, Juan Antonio escribió:
 El 05/04/12 19:06, Camaleón escribió:
  El Thu, 05 Apr 2012 13:43:44 -0300, Gonzalo Rivero escribió:
  
  El jue, 05-04-2012 a las 16:32 +, Camaleón escribió:
  El Thu, 05 Apr 2012 16:52:12 +0200, Juan Antonio escribió:
  
  (...)
  
  Por último, lo que te comentaba antes era que tu misma añadieses al
  parche un printk, que es un como un printf de libc de toda la vida,
 
  http://www.kernel-labs.org/?q=printk
 
  en la función init_module(), que es la que se llama cuando cargas el
  módulo.
 
  Huys, no entiendo ni jota. Voy a ver si logro sacar algo útil del
  objdump que me parece más asequible :-)
 
  esto entendí yo: en algún lugar del módulo hay una init_module() (man 2
  init_module), en ese tal lugar podés agregar algo como:
  printk(KERN_WARNING Hola mundo!\n);
  
  ¿Del archivo main.c que tengo que modificar? 
  
  No, no aparece ninguna llamada a la función init_module, un grep me 
  devuelve esa cadena (init_module) en un archivo *.o, binario.
  
  ¿Dónde tendría que poner el printk? :-?
  
  y recompilarlo. Entonces, al cargarse, el módulo debería mostrarte en
  dmesg (o similares) un: Hola mundo!
 
  Y esa sería tu huella para saber que tenés el módulo modificado
  
  Ya lo pillo... y la idea es buena pero no sé cómo llevarla a la práctica.
  
Y por que no comparas el amodulo anterio con el nuevo generado, si son
iguales no se aplico el parche

Podes compara los fuentes con diff o los binarios con rdiff

  Saludos,
  
 
 
 perdona camaleon, lo de init_module parece que ha cambiado, asi lo
 recordaba yo del 2.4
 
 Busca en el código la llamada a module_init(). Como parámetro lleva el
 numbre de una función y ahora esa función es el punto de entrada del
 código del módulo.
 
 Por ejemplo de bsr.c
 
 [ código ]
 
 static int __init bsr_init(void)   --- *
 {
 struct device_node *np;
 dev_t bsr_dev;
 
 [ mas código ]
 
 }
 
 [ mas código aun ]
 
 module_init(bsr_init);   - * Esta
 module_exit(bsr_exit);
 
 
 Y dentro de la función escribes el printk que te ha dicho Gonzalo.
 
 Lo siento, un saludo.
 
 -- 
 Tanto en los deportes como en todo lo demás, soy un experto. Pero para
 mantener viva mi inteligencia natural y fuera de serie, tengo que comer
 mucho
 
 



-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: 
http://lists.debian.org/1333752643.2526.1.ca...@gabita2.angel-alvarez.com.ar



Incluir una huella en módulo del kernel

2012-04-05 Por tema Camaleón
Hola,

¿Sería posible incluir una huella (o marca) en el código fuente de un 
módulo del kernel que permita determinar que un parche que se haya 
aplicado a ese módulo se haya aplicado correctamente una vez compilado?

Saludos,

-- 
Camaleón


-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/jlk7sb$mrm$1...@dough.gmane.org



Re: Incluir una huella en módulo del kernel

2012-04-05 Por tema Juan Antonio
El 05/04/12 15:48, Camaleón escribió:
 Hola,
 
 ¿Sería posible incluir una huella (o marca) en el código fuente de un 
 módulo del kernel que permita determinar que un parche que se haya 
 aplicado a ese módulo se haya aplicado correctamente una vez compilado?
 
 Saludos,
 

pues nada mejor que un printk en el init_module() ¿No?

Un saludo.

-- 
Tanto en los deportes como en todo lo demás, soy un experto. Pero para
mantener viva mi inteligencia natural y fuera de serie, tengo que comer
mucho


-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4f7da68d.5070...@limbo.deathwing.net



Re: Incluir una huella en módulo del kernel

2012-04-05 Por tema Camaleón
El Thu, 05 Apr 2012 16:05:01 +0200, Juan Antonio escribió:

 El 05/04/12 15:48, Camaleón escribió:
 Hola,
 
 ¿Sería posible incluir una huella (o marca) en el código fuente de un
 módulo del kernel que permita determinar que un parche que se haya
 aplicado a ese módulo se haya aplicado correctamente una vez compilado?
 
 
 
 pues nada mejor que un printk en el init_module() ¿No?

¿Lo cualo? :-)

¿Algún ejemplillo práctico o páginilla para consultar qué es lo que hace 
y cómo hacerlo, please? Porque no me cosco de eso del printk ni del 
init_module().

Saludos,

-- 
Camaleón


-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/jlk9e5$mrm$1...@dough.gmane.org



Re: Incluir una huella en módulo del kernel

2012-04-05 Por tema Juan Antonio
El 05/04/12 16:15, Camaleón escribió:
 El Thu, 05 Apr 2012 16:05:01 +0200, Juan Antonio escribió:
 
 El 05/04/12 15:48, Camaleón escribió:
 Hola,

 ¿Sería posible incluir una huella (o marca) en el código fuente de un
 módulo del kernel que permita determinar que un parche que se haya
 aplicado a ese módulo se haya aplicado correctamente una vez compilado?



 pues nada mejor que un printk en el init_module() ¿No?
 
 ¿Lo cualo? :-)
 
 ¿Algún ejemplillo práctico o páginilla para consultar qué es lo que hace 
 y cómo hacerlo, please? Porque no me cosco de eso del printk ni del 
 init_module().
 
 Saludos,
 

perdona, pero no estoy seguro de haber entendido bien lo que quieres
hacer ¿estas escribiendo un parche para un módulo y lo que quieres saber
es si tu código se ha compilado correctamente no?

Si es asi, parchea init_module, que se llama cuando haces insmod, y con
printk escribe un mensaje a la consola que se mostrará cuando lo
cargues, para tener la certeza de que tu código esta ahí.

Si no es asi, lo siento, pero no he entendido lo que pretendes.

Un saludo.

-- 
Tanto en los deportes como en todo lo demás, soy un experto. Pero para
mantener viva mi inteligencia natural y fuera de serie, tengo que comer
mucho


-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4f7dab9b.6070...@limbo.deathwing.net



Re: Incluir una huella en módulo del kernel

2012-04-05 Por tema Camaleón
El Thu, 05 Apr 2012 16:26:35 +0200, Juan Antonio escribió:

 El 05/04/12 16:15, Camaleón escribió:
 El Thu, 05 Apr 2012 16:05:01 +0200, Juan Antonio escribió:
 
 El 05/04/12 15:48, Camaleón escribió:
 Hola,

 ¿Sería posible incluir una huella (o marca) en el código fuente de
 un módulo del kernel que permita determinar que un parche que se haya
 aplicado a ese módulo se haya aplicado correctamente una vez
 compilado?



 pues nada mejor que un printk en el init_module() ¿No?
 
 ¿Lo cualo? :-)
 
 ¿Algún ejemplillo práctico o páginilla para consultar qué es lo que
 hace y cómo hacerlo, please? Porque no me cosco de eso del printk ni
 del init_module().
 
 
 
 perdona, pero no estoy seguro de haber entendido bien lo que quieres
 hacer ¿estas escribiendo un parche para un módulo y lo que quieres saber
 es si tu código se ha compilado correctamente no?

Sasto. 

Bueno, el parche lo ha escrito alguien que sabe de parches (y de C), 
claro, yo sólo hago de conejillo de indias y quiero saber si el código 
que se ha cambiado/añadido al código fuente de los archivos (*.c, *.h) se 
ha incluido correctamente en el módulo tras compilarlo, vamos, si he 
aplicado el parche como dios manda.

 Si es asi, parchea init_module, que se llama cuando haces insmod, y con
 printk escribe un mensaje a la consola que se mostrará cuando lo
 cargues, para tener la certeza de que tu código esta ahí.

Mmmm, mm... sigo sin enterarme. ¿Algún guía-burros que pueda seguir 
con instrucciones sencillitas de tipo primero haz esto, luego haz esto 
otro, después ejecuta esto y por último edita esto otro?

 Si no es asi, lo siento, pero no he entendido lo que pretendes.

No, no... es eso mismo.

Saludos,

-- 
Camaleón


-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/jlkb0m$mrm$1...@dough.gmane.org



Re: Incluir una huella en módulo del kernel

2012-04-05 Por tema Juan Antonio
El 05/04/12 16:42, Camaleón escribió:
 El Thu, 05 Apr 2012 16:26:35 +0200, Juan Antonio escribió:
 
 El 05/04/12 16:15, Camaleón escribió:
 El Thu, 05 Apr 2012 16:05:01 +0200, Juan Antonio escribió:

 El 05/04/12 15:48, Camaleón escribió:
 Hola,

 ¿Sería posible incluir una huella (o marca) en el código fuente de
 un módulo del kernel que permita determinar que un parche que se haya
 aplicado a ese módulo se haya aplicado correctamente una vez
 compilado?



 pues nada mejor que un printk en el init_module() ¿No?

 ¿Lo cualo? :-)

 ¿Algún ejemplillo práctico o páginilla para consultar qué es lo que
 hace y cómo hacerlo, please? Porque no me cosco de eso del printk ni
 del init_module().



 perdona, pero no estoy seguro de haber entendido bien lo que quieres
 hacer ¿estas escribiendo un parche para un módulo y lo que quieres saber
 es si tu código se ha compilado correctamente no?
 
 Sasto. 
 
 Bueno, el parche lo ha escrito alguien que sabe de parches (y de C), 
 claro, yo sólo hago de conejillo de indias y quiero saber si el código 
 que se ha cambiado/añadido al código fuente de los archivos (*.c, *.h) se 
 ha incluido correctamente en el módulo tras compilarlo, vamos, si he 
 aplicado el parche como dios manda.
 
 Si es asi, parchea init_module, que se llama cuando haces insmod, y con
 printk escribe un mensaje a la consola que se mostrará cuando lo
 cargues, para tener la certeza de que tu código esta ahí.
 
 Mmmm, mm... sigo sin enterarme. ¿Algún guía-burros que pueda seguir 
 con instrucciones sencillitas de tipo primero haz esto, luego haz esto 
 otro, después ejecuta esto y por último edita esto otro?
 
 Si no es asi, lo siento, pero no he entendido lo que pretendes.
 
 No, no... es eso mismo.
 
 Saludos,
 

bueno, pues a ver, si cuando haces el patch no te da error, ni cuando
compilas el kernel tampoco, quiere decir que debe haberse parcheado y
compilado correctamente.

En todo caso, si el código de tu amigo declara alguna función o
variable, es posible que puedas cerciorarte con objdump,

objdump -t modulo.ko

debería listar la tabla de símbolos del objeto, si aparece la función
declarada en tu código, voila!

Por último, lo que te comentaba antes era que tu misma añadieses al
parche un printk, que es un como un printf de libc de toda la vida,

http://www.kernel-labs.org/?q=printk

en la función init_module(), que es la que se llama cuando cargas el módulo.

Un saludo.

-- 
Tanto en los deportes como en todo lo demás, soy un experto. Pero para
mantener viva mi inteligencia natural y fuera de serie, tengo que comer
mucho


-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4f7db19c@limbo.deathwing.net



Re: Incluir una huella en módulo del kernel

2012-04-05 Por tema Camaleón
El Thu, 05 Apr 2012 16:52:12 +0200, Juan Antonio escribió:

 El 05/04/12 16:42, Camaleón escribió:

(...)

 Si es asi, parchea init_module, que se llama cuando haces insmod, y
 con printk escribe un mensaje a la consola que se mostrará cuando lo
 cargues, para tener la certeza de que tu código esta ahí.
 
 Mmmm, mm... sigo sin enterarme. ¿Algún guía-burros que pueda seguir
 con instrucciones sencillitas de tipo primero haz esto, luego haz esto
 otro, después ejecuta esto y por último edita esto otro?
 
 Si no es asi, lo siento, pero no he entendido lo que pretendes.
 
 No, no... es eso mismo.
 
 Saludos,
 
 
 bueno, pues a ver, si cuando haces el patch no te da error, ni cuando
 compilas el kernel tampoco, quiere decir que debe haberse parcheado y
 compilado correctamente.

Ya, eso es lo que pienso yo también pero se supone que el parche debe 
corregir una traza (error) que se produce en el kernel y no lo hace, 
quiero asegurarme de que no he metido la pata al aplicar el parche y 
después al cargar el módulo.
 
 En todo caso, si el código de tu amigo declara alguna función o
 variable, es posible que puedas cerciorarte con objdump,
 
 objdump -t modulo.ko
 
 debería listar la tabla de símbolos del objeto, si aparece la función
 declarada en tu código, voila!

Esto saca un montón de datos pero creo que no sirve para ver si una línea 
se ha añadido o se ha modificado porque filtrando con grep no me saca 
nada, ni el código original ni el que debería aparecer tras aplicar el 
parche.

 Por último, lo que te comentaba antes era que tu misma añadieses al
 parche un printk, que es un como un printf de libc de toda la vida,
 
 http://www.kernel-labs.org/?q=printk
 
 en la función init_module(), que es la que se llama cuando cargas el
 módulo.

Huys, no entiendo ni jota. Voy a ver si logro sacar algo útil del 
objdump que me parece más asequible :-)

Saludos,

-- 
Camaleón


-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/jlkhf4$mrm$1...@dough.gmane.org



Re: Incluir una huella en módulo del kernel

2012-04-05 Por tema Gonzalo Rivero
El jue, 05-04-2012 a las 16:32 +, Camaleón escribió: 
 El Thu, 05 Apr 2012 16:52:12 +0200, Juan Antonio escribió:
 
  El 05/04/12 16:42, Camaleón escribió:
 
 (...)
 
  Si es asi, parchea init_module, que se llama cuando haces insmod, y
  con printk escribe un mensaje a la consola que se mostrará cuando lo
  cargues, para tener la certeza de que tu código esta ahí.
  
  Mmmm, mm... sigo sin enterarme. ¿Algún guía-burros que pueda seguir
  con instrucciones sencillitas de tipo primero haz esto, luego haz esto
  otro, después ejecuta esto y por último edita esto otro?
  
  Si no es asi, lo siento, pero no he entendido lo que pretendes.
  
  No, no... es eso mismo.
  
  Saludos,
  
  
  bueno, pues a ver, si cuando haces el patch no te da error, ni cuando
  compilas el kernel tampoco, quiere decir que debe haberse parcheado y
  compilado correctamente.
 
 Ya, eso es lo que pienso yo también pero se supone que el parche debe 
 corregir una traza (error) que se produce en el kernel y no lo hace, 
 quiero asegurarme de que no he metido la pata al aplicar el parche y 
 después al cargar el módulo.
  
  En todo caso, si el código de tu amigo declara alguna función o
  variable, es posible que puedas cerciorarte con objdump,
  
  objdump -t modulo.ko
  
  debería listar la tabla de símbolos del objeto, si aparece la función
  declarada en tu código, voila!
 
 Esto saca un montón de datos pero creo que no sirve para ver si una línea 
 se ha añadido o se ha modificado porque filtrando con grep no me saca 
 nada, ni el código original ni el que debería aparecer tras aplicar el 
 parche.
 
  Por último, lo que te comentaba antes era que tu misma añadieses al
  parche un printk, que es un como un printf de libc de toda la vida,
  
  http://www.kernel-labs.org/?q=printk
  
  en la función init_module(), que es la que se llama cuando cargas el
  módulo.
 
 Huys, no entiendo ni jota. Voy a ver si logro sacar algo útil del 
 objdump que me parece más asequible :-)
 
esto entendí yo: en algún lugar del módulo hay una init_module() (man 2
init_module), en ese tal lugar podés agregar algo como:
printk(KERN_WARNING Hola mundo!\n);

y recompilarlo. Entonces, al cargarse, el módulo debería mostrarte en
dmesg (o similares) un: Hola mundo!

Y esa sería tu huella para saber que tenés el módulo modificado 


-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/1333644224.2176.11.ca...@gonzalo.casa



Re: Incluir una huella en módulo del kernel

2012-04-05 Por tema Camaleón
El Thu, 05 Apr 2012 13:43:44 -0300, Gonzalo Rivero escribió:

 El jue, 05-04-2012 a las 16:32 +, Camaleón escribió:
 El Thu, 05 Apr 2012 16:52:12 +0200, Juan Antonio escribió:

(...)

  Por último, lo que te comentaba antes era que tu misma añadieses al
  parche un printk, que es un como un printf de libc de toda la vida,
  
  http://www.kernel-labs.org/?q=printk
  
  en la función init_module(), que es la que se llama cuando cargas el
  módulo.
 
 Huys, no entiendo ni jota. Voy a ver si logro sacar algo útil del
 objdump que me parece más asequible :-)
 
 esto entendí yo: en algún lugar del módulo hay una init_module() (man 2
 init_module), en ese tal lugar podés agregar algo como:
 printk(KERN_WARNING Hola mundo!\n);

¿Del archivo main.c que tengo que modificar? 

No, no aparece ninguna llamada a la función init_module, un grep me 
devuelve esa cadena (init_module) en un archivo *.o, binario.

¿Dónde tendría que poner el printk? :-?

 y recompilarlo. Entonces, al cargarse, el módulo debería mostrarte en
 dmesg (o similares) un: Hola mundo!
 
 Y esa sería tu huella para saber que tenés el módulo modificado

Ya lo pillo... y la idea es buena pero no sé cómo llevarla a la práctica.

Saludos,

-- 
Camaleón


-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/jlkjf1$mrm$1...@dough.gmane.org



Re: Incluir una huella en módulo del kernel

2012-04-05 Por tema Gonzalo Rivero
El jue, 05-04-2012 a las 17:06 +, Camaleón escribió: 
 El Thu, 05 Apr 2012 13:43:44 -0300, Gonzalo Rivero escribió:
 
  El jue, 05-04-2012 a las 16:32 +, Camaleón escribió:
  El Thu, 05 Apr 2012 16:52:12 +0200, Juan Antonio escribió:
 
 (...)
 
   Por último, lo que te comentaba antes era que tu misma añadieses al
   parche un printk, que es un como un printf de libc de toda la vida,
   
   http://www.kernel-labs.org/?q=printk
   
   en la función init_module(), que es la que se llama cuando cargas el
   módulo.
  
  Huys, no entiendo ni jota. Voy a ver si logro sacar algo útil del
  objdump que me parece más asequible :-)
  
  esto entendí yo: en algún lugar del módulo hay una init_module() (man 2
  init_module), en ese tal lugar podés agregar algo como:
  printk(KERN_WARNING Hola mundo!\n);
 
 ¿Del archivo main.c que tengo que modificar? 
 
 No, no aparece ninguna llamada a la función init_module, un grep me 
 devuelve esa cadena (init_module) en un archivo *.o, binario.
 
 ¿Dónde tendría que poner el printk? :-?
 
  y recompilarlo. Entonces, al cargarse, el módulo debería mostrarte en
  dmesg (o similares) un: Hola mundo!
  
  Y esa sería tu huella para saber que tenés el módulo modificado
 
 Ya lo pillo... y la idea es buena pero no sé cómo llevarla a la práctica.
 
jejeje yo tampoco :P
(lo mas parecido que conozco a C son cosas inspiradas por su sintaxis,
como perl o php)

¿fijate si aquí encontrás algo interesante?
http://tldp.org/LDP/lkmpg/2.6/html/lkmpg.html#AEN119

 Saludos,
 





-- 
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/1333648636.2176.17.ca...@gonzalo.casa



Re: Incluir una huella en módulo del kernel

2012-04-05 Por tema carlopmart

On 04/05/2012 07:06 PM, Camaleón wrote:

El Thu, 05 Apr 2012 13:43:44 -0300, Gonzalo Rivero escribió:


El jue, 05-04-2012 a las 16:32 +, Camaleón escribió:

El Thu, 05 Apr 2012 16:52:12 +0200, Juan Antonio escribió:


(...)


Por último, lo que te comentaba antes era que tu misma añadieses al
parche un printk, que es un como un printf de libc de toda la vida,

http://www.kernel-labs.org/?q=printk

en la función init_module(), que es la que se llama cuando cargas el
módulo.


Huys, no entiendo ni jota. Voy a ver si logro sacar algo útil del
objdump que me parece más asequible :-)


esto entendí yo: en algún lugar del módulo hay una init_module() (man 2
init_module), en ese tal lugar podés agregar algo como:
printk(KERN_WARNING Hola mundo!\n);


¿Del archivo main.c que tengo que modificar?

No, no aparece ninguna llamada a la función init_module, un grep me
devuelve esa cadena (init_module) en un archivo *.o, binario.

¿Dónde tendría que poner el printk? :-?


y recompilarlo. Entonces, al cargarse, el módulo debería mostrarte en
dmesg (o similares) un: Hola mundo!

Y esa sería tu huella para saber que tenés el módulo modificado


Ya lo pillo... y la idea es buena pero no sé cómo llevarla a la práctica.

Saludos,



Si no recuerdo mal, es por ejemplo lo que hace vmware en la carga de sus 
módulos.


Mira la parte opensource que han liberado que ahí alomejor ves ejemplos:

http://sourceforge.net/projects/open-vm-tools/files/open-vm-tools/

saludos.

--
CL Martinez
carlopmart {at} gmail {d0t} com


--
To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/4f7de0e1.1050...@gmail.com