Tenho uma imagem de memória enorme que estou investigando e pesquisando (64 GB +). Muito grande para carregar na memória/vim. Executei strings no arquivo de memória com os deslocamentos incluídos e salvei-os em um arquivo para poder pesquisar os indicadores nos quais estou interessado. Exemplo de saída:
332327467 Washington1
332327514 Redmond1
332327536 Microsoft Corporation1
Como faço para pegar um desses deslocamentos e imprimir aquela área específica na memória? Idealmente, +/- 10 linhas dele (se houver linhas pares na memória). ACHO que já vi dd ou xxd fazer isso, mas não tenho certeza.
Editar: no final das contas, 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 retroceder um pouco, se necessário, e alterando count= para avançar, se necessário.
Responder1
Se você quiser usar dd
, você pode usar skip=
bs
quanto ler/gravar por vez, offset= bs
* skip
. Contar é quantas vezes ler/escrever.
Exemplo:
$ dd if=input of=output bs=1 skip=332327467 count=128