답변:
다음은 Linux 메모리를 덤프하는 방법 에 대한 eHow 페이지입니다
Linux는 이러한 목적으로 '
/dev/mem
'및 '/dev/kmem
'의 두 가지 가상 장치를 제공 하지만 보안상의 이유로 많은 배포판에서 기본적으로 비활성화합니다. '/dev/mem
'는 실제 시스템 메모리에 연결되어 있으며 ' '는/dev/kmem
스왑을 포함한 전체 가상 메모리 공간에 매핑됩니다. 두 장치 모두 일반 파일로 작동하며 dd 또는 다른 파일 조작 도구와 함께 사용할 수 있습니다.
그에 ForensicsWiki 페이지로 리드 메모리 이미징 도구 와 리눅스 / 유닉스 섹션 ,
- dd Unix 시스템에서 프로그램 dd는 장치 파일 (예 : / dev / mem 및 / dev / kmem)을 사용하여 실제 메모리의 내용을 캡처하는 데 사용할 수 있습니다. 최근 Linux 커널에서는 / dev / kmem을 더 이상 사용할 수 없습니다. 최신 커널에서는 / dev / mem에 추가 제한이 있습니다. 그리고 가장 최근에는 / dev / mem을 더 이상 기본적으로 사용할 수 없습니다. 2.6 커널 시리즈에서 의사 장치 파일을 통한 메모리에 대한 직접 액세스를 줄이는 경향이있었습니다. 예를 들어 http://lwn.net/Articles/267427/ 패치와 함께 제공되는 메시지를 참조 하십시오 . Red Hat 시스템 (및 CentOS와 같은 파생 배포판)에서 크래시 드라이버를로드하여 메모리 액세스를위한 의사 장치 ( "modprobe crash")를 만들 수 있습니다.
- Second Look 이 상용 메모리 분석 제품은 Linux 시스템, 로컬 또는 원격 대상에서 DMA 또는 네트워크를 통해 메모리를 획득 할 수 있습니다. 가장 일반적으로 사용되는 Linux 배포판에서 수백 개의 커널을 위해 사전 컴파일 된 PMAD (Physical Memory Access Driver) 모듈과 함께 제공됩니다.
- Idetect (리눅스)
- fmem (Linux)
fmem은 커널 모듈이며 / dev / mem과 유사하지만 제한없이 장치 / dev / fmem을 만듭니다. 이 장치 (실제 RAM)는 dd 또는 다른 도구를 사용하여 복사 할 수 있습니다. 2.6 Linux 커널에서 작동합니다. GNU GPL 하에서.- 금붕어
금붕어는 법 집행 기관에서만 사용할 수있는 Mac OS X 라이브 포렌식 도구입니다. 주요 목적은 Firewire 연결을 통해 대상 컴퓨터의 시스템 RAM을 덤프하기 위해 사용하기 쉬운 인터페이스를 제공하는 것입니다. 그런 다음 현재 사용자 로그인 암호와 사용 가능한 열려있는 AOL Instant Messenger 대화 조각을 자동으로 추출합니다. 법 집행 기관은 다운로드 정보를 위해 goldfish.ae에 연락 할 수 있습니다.
Linux 메모리 분석을 참조하십시오 . 대부분의 Linux에서 일반적으로 사용 가능한 GDB
도 있습니다.
또한 항상 알 수없는 메모리를 덮어 쓰지 않는 것이 좋습니다. 시스템 손상을 일으킬 수 있습니다.
휘발성 은 잘 작동하는 것으로 보이며 Windows 및 Linux와 호환됩니다.
그들의 웹 사이트에서 :
휘발성은 XP, 2003 Server, Vista, Server 2008, Server 2008 R2 및 Seven을 포함한 모든 주요 32 비트 및 64 비트 Windows 버전 및 서비스 팩의 메모리 덤프를 지원합니다. 메모리 덤프가 원시 형식이든, Microsoft 크래시 덤프, 최대 절전 모드 파일 또는 가상 시스템 스냅 샷이든, Volatility는이를 사용할 수 있습니다. 또한 원시 또는 LiME 형식의 Linux 메모리 덤프를 지원하며 2.6.11-3.5.x의 32 비트 및 64 비트 Linux 커널을 분석하기위한 35 개 이상의 플러그인과 Debian, Ubuntu, OpenSuSE, Fedora, CentOS 및 맨드레이크. 10.5에서 10.8.3 Mountain Lion (32 비트 및 64 비트)의 38 가지 버전의 Mac OSX 메모리 덤프를 지원합니다. ARM 프로세서가 장착 된 Android 폰도 지원됩니다.
Second Look은 Linux에서 메모리를 덤프하는 좋은 방법입니다 ( http://secondlookforensics.com/) .
최근에 릴리스 된 커널 모듈 인 LiME도 있습니다 : http://code.google.com/p/lime-forensics/
확인 으로이 방법을 사용하여 CentOS 7.x VM의 메모리를 덤프 할 수있었습니다.
$ head /dev/mem | hexdump -C
00000000 53 ff 00 f0 53 ff 00 f0 53 ff 00 f0 53 ff 00 f0 |S...S...S...S...|
00000010 53 ff 00 f0 53 ff 00 f0 cc e9 00 f0 53 ff 00 f0 |S...S.......S...|
00000020 a5 fe 00 f0 87 e9 00 f0 53 ff 00 f0 46 e7 00 f0 |........S...F...|
00000030 46 e7 00 f0 46 e7 00 f0 57 ef 00 f0 53 ff 00 f0 |F...F...W...S...|
00000040 22 00 00 c0 4d f8 00 f0 41 f8 00 f0 fe e3 00 f0 |"...M...A.......|
00000050 39 e7 00 f0 59 f8 00 f0 2e e8 00 f0 d4 ef 00 f0 |9...Y...........|
00000060 a4 f0 00 f0 f2 e6 00 f0 6e fe 00 f0 53 ff 00 f0 |........n...S...|
00000070 ed ef 00 f0 53 ff 00 f0 c7 ef 00 f0 ed 57 00 c0 |....S........W..|
00000080 53 ff 00 f0 53 ff 00 f0 53 ff 00 f0 53 ff 00 f0 |S...S...S...S...|
*
00000100 59 ec 00 f0 3d 00 c0 9f 53 ff 00 f0 ed 69 00 c0 |Y...=...S....i..|
00000110 53 ff 00 f0 53 ff 00 f0 53 ff 00 f0 53 ff 00 f0 |S...S...S...S...|
*
00000180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
000afea0 00 00 00 00 00 00 00 00 aa aa aa 00 aa aa aa 00 |................|
000afeb0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
...
...
000b0000 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|
*
000c0000 55 aa 40 e9 62 0a 00 00 00 00 00 00 00 00 00 00 |U.@.b...........|
000c0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 49 42 |..............IB|
000c0020 4d 00 9c 80 fc 0f 75 06 e8 4f 01 e9 bc 00 80 fc |M.....u..O......|
c0000h-effffh 범위에서이 55aah가 발생하면 PNP 확장 헤더 일 가능성이 높습니다.
참조 : BIOS 부팅 사양3.3 PnP 확장 헤더가있는 장치
옵션 ROM이있는 모든 IPL 장치에는 2k 경계에서 시스템 메모리 주소 C0000h와 EFFFFh 사이에 상주하며 55AAh로 시작하는 유효한 옵션 ROM 헤더가 포함되어야합니다. 장치의 부팅은 PnP 확장 헤더가있는 경우에만 제어 할 수 있습니다. 오프셋 + 1Ah의 표준 옵션 ROM 헤더 내에 주소가있는 확장 헤더에는 장치를 구성하는 데 사용되는 중요한 정보가 포함되어 있습니다. 또한 BIOS가 장치에서 부팅하기 위해 호출 할 장치의 옵션 ROM (BCV 또는 BEV)에 코드를 가리키는 포인터도 포함되어 있습니다. PnP 확장 헤더의 구조는 부록 A를 참조하십시오. PnP 확장 헤더가있는 IPL 장치를 부팅하는 방법에는 두 가지가 있습니다. BCV 또는 BEV를 포함해야합니다.