Como depurar um módulo de kernel inserido?

5

Eu gostaria de depurar um módulo do kernel carregado para o qual não tenho o código-fonte; Eu suspeito que seja um vírus. Existe uma maneira de alimentá-lo no GDB para análise?

    
por user3539 10.01.2011 / 11:06

2 respostas

5

De uma perspectiva de depuração, o kernel é um "processo" especial, distinto dos processos de espaço do usuário, que se comunicam com o kernel através de uma espécie de mecanismo rpc (syscalls) ou memória mapeada.

Eu não acho que você possa ver a estrutura de dados do kernel simplesmente inspecionando algum processo de usuário aleatório.

Outro problema é que todo processo de espaço do usuário (incluindo o depurador) precisa do kernel para rodar e se comunicar com os usuários; Eu não acho que você pode simplesmente parar o kernel e acreditar que o depurador continuará a rodar.

Então você precisa rodar o GDB em uma segunda máquina, e isso é o que é chamado de depuração do kernel.
Por favor, consulte ( link , Documentação / sh / kgdb) para mais detalhes.

    
por 10.01.2011 / 11:51
0

As outras opções, além do KGDB, estariam depurando o kernel usando o QEMU e o GDB. Ao contrário do KGDB, a combinação QEMU-GDB requer apenas uma única máquina.

    
por 15.01.2013 / 13:04