Substituição do utilitário pcat da TCT [duplicado]

1

Eu estou procurando um utilitário para despejar a memória de um processo em execução que eu possa examinar para seqüências de caracteres.

No passado eu usei o pcat do The Coroner's Toolkit, mas estou tendo dificuldades para encontrar uma versão que funcione no RHEL 6.4 64bit. Dado que a TCT está em seu crepúsculo, existe uma utilidade melhor para fazer isso?

Editar: estou procurando um utilitário. Eu usarei scripts para obter o que é necessário, se necessário, mas eu estava esperando por uma ferramenta autônoma que eu pudesse obter do repositório padrão que permitiria que um usuário inexperiente pegasse a memória do processo.

    
por useSticks 14.01.2014 / 23:05

1 resposta

2

Com $p o pid do processo:

while IFS='- ' read a b z; do
  dd bs=4096 skip="$((0x${a%???}))" count="$((0x${b%???}-0x${a%???}))" \
    if="/proc/$p/mem" 2> /dev/null > "$a-$b"
done < "/proc/$p/maps"

Você pode querer suspender o processo primeiro para obter um resultado consistente.

Isso despeja cada região da memória em arquivos separados que você pode usar string on.

Alguns sistemas impedem que os processos inspecionem a memória de outros processos (mesmo do mesmo usuário) por padrão (veja o documentação do kernel para mais informações).

Nesses sistemas, você terá que executar o acima como root ou desativar essa restrição (não recomendado permanentemente):

sysctl -w kernel.yama.ptrace_scope=0
    
por 14.01.2014 / 23:33

Tags