Imprime linha no deslocamento X no despejo de memória +/- 10 linhas de cada lado

2

Eu tenho uma imagem de memória enorme que estou investigando e pesquisando (64gb +). Demasiado grande para carregar na memória / vim. Eu corri strings no arquivo de memória com os deslocamentos incluídos e salvei-o em um arquivo para que eu possa procurar os indicadores nos quais estou interessado. Exemplo de saída:

332327467 Washington1 
332327514 Redmond1 
332327536 Microsoft Corporation1

Como eu pego um desses deslocamentos e imprimo essa área específica na memória? Idealmente +/- 10 linhas a partir dele (se houver linhas pares na memória). Eu acho que vi dd ou xxd fazer isso, mas não tenho certeza.

Editar: finalmente, meu fluxo de trabalho bem-sucedido se transformou em:

strings --radix=d mem.dump >> mem.asc
strings --radix=d -el mem.dump >> mem.uni
grep "blah" mem.asc *or* mem.uni
*grab offset from beginning of line*
dd if=mem.dump  bs=1 skip=*offset here* count=100 | xxd

Subtraindo do deslocamento para voltar um pouco, se necessário, e alterando count = para avançar, se necessário.

    
por Thisisstackoverflow 02.11.2016 / 22:18

1 resposta

2

Se você quiser usar dd , poderá usar skip= e bs é quanto ler / gravar de cada vez, deslocamento = bs * skip . Contagem é quantas vezes para ler / escrever.
Exemplo:

$ dd if=input of=output bs=1 skip=332327467 count=128
    
por 02.11.2016 / 22:30