메모리 덤프의 오프셋 X에 줄 인쇄 +/- 각 면에 10줄

메모리 덤프의 오프셋 X에 줄 인쇄 +/- 각 면에 10줄

조사하고 파헤치고 있는 대용량 메모리 이미지(64GB 이상)가 있습니다. 너무 커서 메모리/vim에 로드할 수 없습니다. 관심 있는 지표를 검색할 수 있도록 오프셋이 포함된 메모리 파일에 문자열을 실행하고 파일에 저장했습니다. 출력 예:

332327467 Washington1 
332327514 Redmond1 
332327536 Microsoft Corporation1

이러한 오프셋 중 하나를 가져와 메모리의 특정 영역을 인쇄하려면 어떻게 해야 합니까? 이상적으로는 +/- 10줄입니다(메모리에 짝수 줄이 있는 경우). 내 생각엔 dd나 xxd가 하는 걸 본 것 같은데 잘 모르겠어.

편집: 궁극적으로 나의 성공적인 작업 흐름은 다음과 같이 바뀌었습니다.

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

필요한 경우 오프셋에서 빼서 약간 뒤로 이동하고, 필요한 경우 앞으로 이동하려면 count=를 변경합니다.

답변1

을 사용하려면 한 번에 읽고 쓸 수 있는 양(offset= *) 을 dd사용할 수 있습니다 . Count는 읽고 쓰는 횟수입니다. 예:skip=
bsbsskip

$ dd if=input of=output bs=1 skip=332327467 count=128

관련 정보