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
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.