Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Linpmem — Driver de kernel Linux para aquisição de memória física, permitindo acesso de leitura a qualquer endereço físico, incluindo memória reservada e buracos de memória, com informações de CR3 e serviços de tradução de virtual para físico. | Kitploit
Ferramentas/GitHubGitHub/velocidex/linpmem
Forensia de MemóriaAnálise ForenseForensia DigitalResposta a Incidentes
GitHubvelocidex/linpmem

Linpmem

Driver de kernel Linux para aquisição de memória física, permitindo acesso de leitura a qualquer endereço físico, incluindo memória reservada e buracos de memória, com informações de CR3 e serviços de tradução de virtual para físico.

Ver Repositório
1051211há 1 anoRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Linpmem -- uma ferramenta de aquisição de memória física para Linux

alt text

Linpmem é uma ferramenta Linux x64 para leitura de memória física.

Assim como sua contraparte Windows, Winpmem, este não é um despejador de memória tradicional. O Linpmem oferece uma API para leitura de qualquer endereço físico, incluindo memória reservada e buracos de memória, mas também pode ser usado para despejo de memória normal. Além disso, o driver oferece uma variedade de modos de acesso para ler memória física, como byte, word, dword, qword e modo de acesso buffer, onde o modo de acesso buffer é apropriado na maioria dos casos padrão. Se a leitura exigir uma leitura alinhada de byte/word/dword/qword, o Linpmem fará exatamente isso.

Atualmente, os recursos do Linpmem incluem:

  1. Leitura a partir de endereço físico (modo de acesso byte, word, dword, qword ou buffer)
  2. Serviço de informação CR3 (especificar processo alvo por pid)
  3. Serviço de tradução de endereço virtual para físico

O Controle de Cache será adicionado no futuro para suporte aos modos de acesso de leitura especializados.

Tabela de resumo

  • Compilando o Driver do Kernel
  • Carregando o Driver
  • Uso
    • Código de Exemplo
    • Ferramenta CLI
    • Biblioteca
    • Ferramenta de despejo de memória
  • Biblioteca
  • Distribuições Linux Testadas
  • Lidando com Secure Boot
  • Problemas Conhecidos
  • Em Andamento
  • Trabalho Futuro
  • Agradecimentos

Compilando o driver do kernel

Pelo menos por agora, você deve compilar o driver Linpmem você mesmo. Um método para carregar um driver Linpmem pré-compilado em outros sistemas Linux está atualmente em andamento, mas ainda não está finalizado. Dito isso, compilar o driver Linpmem não é difícil, basicamente é executar 'make'.

Passo 1 - obtendo os cabeçalhos corretos

Você precisa do make e de um compilador C. (Recomendamos gcc, mas clang também deve funcionar).

Certifique-se de ter os linux-headers instalados (usando qualquer gerenciador de pacotes que sua distribuição Linux alvo tenha). O nome exato do pacote pode variar conforme sua distribuição. Uma maneira rápida (independente de distribuição) de verificar se você tem o pacote instalado:

ls -l /usr/lib/modules/`uname -r`/

É isso, você pode prosseguir para o passo 2.

Sistema estrangeiro: Atualmente, se você quiser compilar o driver para outro sistema, por exemplo, porque você quer criar um despejo de memória mas não pode compilar no alvo, você precisa baixar o pacote de cabeçalhos diretamente dos repositórios de pacotes da distribuição Linux daquele sistema. Verifique se a versão do pacote corresponde exatamente à versão do release e do kernel em execução no sistema estrangeiro. Caso o outro sistema esteja usando um kernel compilado por você, você deve obter uma cópia do diretório de build daquele kernel. Em seguida, coloque a localização de qualquer um dos diretórios na variável de ambiente KDIR.

export KDIR=caminho/para/pacote/de/cabeçalhos/extraído/ou/raiz/do/kernel

Passo 2 - make

Compilar o driver é simples, basta digitar:

make

Isso deve produzir linpmem.ko no diretório de trabalho atual.

Você pode querer verificar precompiler.h antes e escolher se compilará para release ou debug (por exemplo, com impressão de debug). Não há muitas outras configurações de pré-compilador agora.

Carregando o Driver

O módulo linpmem.ko pode ser carregado usando insmod caminho-para-linpmem.ko, e descarregado com rmmod caminho-para-linpmem.ko. (Isso carregará o driver apenas para este tempo de atividade.) Se você compilou para debug, dê uma olhada também no dmesg.

Após carregar, para se comunicar com o driver, você precisa criar o dispositivo:

mknod /dev/linpmem c 42 0

Se você não conseguir se comunicar com o driver, verifique potencialmente no log dmesg para confirmar que '42' foi de fato o major registrado:

[12827.900168] linpmem: registered chrdev with major 42

Embora normalmente o kernel tente realmente atribuir esse número.

Você pode usar chown no dispositivo para dá-lo ao seu usuário, se não quiser ter um console root aberto o tempo todo. (Ou apenas continue usando-o em um console root.)

  • Observe a saída do dmesg. Por favor, reporte erros se vir algum!
  • Aviso: se houver uma mensagem de erro no dmesg do Linpmem pedindo para reiniciar, melhor fazê-lo imediatamente.
  • Aviso: esta é uma versão inicial.

Uso

Código de Exemplo

Há um código de exemplo demonstrando e explicando (em detalhes) como interagir com o driver. A referência da API do espaço do usuário também pode ser encontrada em ./userspace_interface/linpmem_shared.h.

  1. cd demo
  2. gcc -o test test.c
  3. (sudo) ./test // <= você precisa de sudo se não usou chown no dispositivo.

Este código é importante se você quiser entender como interagir diretamente com o driver em vez de usar uma biblioteca. Também pode ser usado como um teste de função curto.

Ferramenta de Interface de Linha de Comando

Existe uma ferramenta de interface de linha de comando (opcional) básica para o Linpmem, a ferramenta CLI pmem. Ela pode ser encontrada aqui: https://github.com/vobst/linpmem-cli. Além do código fonte, há também uma ferramenta CLI pré-compilada, bem como a biblioteca estática pré-compilada e cabeçalhos que podem ser encontrados aqui (assinados). Nota: esta é uma versão preliminar, certifique-se de verificar atualizações, pois muitas adições e melhorias virão em breve.

A ferramenta CLI pmem pode ser usada para testar as várias funções do Linpmem de uma maneira (relativamente) segura e conveniente. O Linpmem também pode ser carregado por esta ferramenta em vez de usar insmod/rmmod, com algumas opções extras no futuro. Isso também tem a vantagem de que pmem cria automaticamente o dispositivo certo para você para uso imediato. É extremamente portátil e roda em qualquer sistema Linux (e, de fato, foi testado até mesmo em um Linux 2.6).

$ ./pmem -h
Cliente de linha de comando para o driver linpmem

Uso: pmem [OPÇÕES] [COMANDO]

Comandos:
  insmod  Carregar o driver linpmem
  help    Imprimir esta mensagem ou a ajuda do subcomando dado

Opções:
  -a, --address <ENDEREÇO>            Endereço para operações de leitura física
  -v, --virt-address <VIRT_ENDERECO>  Traduzir endereço no espaço de endereço do processo alvo (padrão: processo atual)
  -s, --size <TAMANHO>                Tamanho das operações de leitura de buffer
  -m, --mode <MODO>                   Modo de acesso para operações de leitura [valores possíveis: byte, word, dword, qword, buffer]
  -p, --pid <PID>                     Processo alvo para informações cr3 e traduções virtual-para-físico
      --cr3                           Consultar valor cr3 do processo alvo (padrão: processo atual)
      --verbose                       Exibir saída de debug
  -h, --help                          Imprimir ajuda (veja mais com '--help')
  -V, --version                       Imprimir versão

Se você quiser compilar a ferramenta cli você mesmo, mude para seu diretório e siga as instruções no Readme (cli) para compilá-la. Caso contrário, basta baixar o programa pré-construído, ele deve funcionar em qualquer Linux. Para carregar o driver do kernel com a ferramenta cli:

Baixar ferramenta