나는 이 도구를 사용하여 fmem
메모리 덤프 dd 파일을 만듭니다. 좋은 결과.
그런데 이 이미지에 어떻게 액세스할 수 있나요? 시도해봤는데 mount
파일 시스템을 지정해야 한다고 뜹니다. 그러나 주어진 가능성 중 어느 것도 작동하지 않습니다(ext4, vfat 등).
답변1
fmem
는메모리 스냅샷 도구. RAM 내용의 이미지를 생성합니다.
이는 법의학이나 낮은 수준의 디버깅에 유용할 수 있지만 파일 시스템 이미지가 아니므로 어떤 방법으로도 마운트할 수 없습니다.
답변2
직접 시도해 보니 이 파일은 원시 데이터 덤프/메모리 스냅샷에 지나지 않았습니다. 따라서 16진수 편집기나 이와 유사한 것 hexdump
또는 적절한 포렌식 분석 도구를 사용하여 확인할 수 있습니다 .
다운로드 및 컴파일
여기에서 최신 버전을 찾았습니다 fmem
.
압축을 푼 후에는 다음과 같이 컴파일할 수 있습니다.
$ make
rm -f *.o *.ko *.mod.c Module.symvers Module.markers modules.order \.*.o.cmd \.*.ko.cmd \.*.o.d
rm -rf \.tmp_versions
make -C /lib/modules/`uname -r`/build SUBDIRS=`pwd` modules
make[1]: Entering directory `/usr/src/kernels/3.14.4-100.fc19.x86_64'
CC [M] /home/saml/Downloads/fmem/fmem_1.6-0/lkm.o
LD [M] /home/saml/Downloads/fmem/fmem_1.6-0/fmem.o
Building modules, stage 2.
MODPOST 1 modules
CC /home/saml/Downloads/fmem/fmem_1.6-0/fmem.mod.o
LD [M] /home/saml/Downloads/fmem/fmem_1.6-0/fmem.ko
make[1]: Leaving directory `/usr/src/kernels/3.14.4-100.fc19.x86_64'
fmem
커널 모듈을 로드하려면 run.sh
아카이브를 사용하여 포함된 스크립트를 실행할 수 있습니다.
$ sudo ./run.sh
Module: insmod fmem.ko a1=0xffffffff81090ca0 : OK
Device: /dev/fmem
----Memory areas: -----
reg01: base=0x000000000 ( 0MB), size= 2048MB, count=1: write-back
reg02: base=0x080000000 ( 2048MB), size= 1024MB, count=1: write-back
reg03: base=0x100000000 ( 4096MB), size= 4096MB, count=1: write-back
reg04: base=0x200000000 ( 8192MB), size= 1024MB, count=1: write-back
reg05: base=0x23c000000 ( 9152MB), size= 64MB, count=1: uncachable
reg06: base=0x0bc000000 ( 3008MB), size= 64MB, count=1: uncachable
-----------------------
!!! Don't forget add "count=" to dd !!!
그런 다음 ~10MB의 데이터를 파일로 수집할 수 있습니다 tst.dd
.
$ sudo dd if=/dev/fmem of=tst.dd bs=1MB count=10
10+0 records in
10+0 records out
10000000 bytes (10 MB) copied, 0.0541226 s, 185 MB/s
생성된 파일 확인
이 파일에 일반적인 도구를 사용하면 원시 바이너리 데이터 외에는 아무것도 포함되어 있지 않다는 것을 알 수 있습니다.
문서
$ file tst.dd
tst.dd: data
디스크 드라이브
$ fdisk -l tst.dd
Disk tst.dd: 9 MB, 9999872 bytes, 19531 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
16진수 덤프
$ hexdump -C tst.dd | head -10
00000000 53 ff 00 f0 53 ff 00 f0 c3 e2 00 f0 53 ff 00 f0 |S...S.......S...|
00000010 53 ff 00 f0 54 ff 00 f0 c9 a3 00 f0 53 ff 00 f0 |S...T.......S...|
00000020 a5 fe 00 f0 87 e9 00 f0 9f 11 00 f0 9f 11 00 f0 |................|
00000030 9f 11 00 f0 9f 11 00 f0 57 ef 00 f0 49 f5 00 f0 |........W...I...|
00000040 14 00 00 c0 4d f8 00 f0 41 f8 00 f0 9f c7 71 e1 |....M...A.....q.|
00000050 39 e7 00 f0 59 f8 00 f0 99 66 71 e1 d2 ef 00 f0 |9...Y....fq.....|
00000060 57 ff 00 f0 f2 e6 00 f0 6e fe 00 f0 53 ff 00 f0 |W.......n...S...|
00000070 53 ff 00 f0 a4 f0 00 f0 c7 ef 00 f0 01 9b 00 c0 |S...............|
00000080 9f 11 00 f0 9f 11 00 f0 9f 11 00 f0 9f 11 00 f0 |................|
2fs 조정
$ tune2fs -l tst.dd
tune2fs 1.42.7 (21-Jan-2013)
tune2fs: Bad magic number in super-block while trying to open tst.dd
Couldn't find valid filesystem superblock.
산
$ sudo mount -o loop -t auto tst.dd /mnt/
mount: /dev/loop0 is write-protected, mounting read-only
mount: wrong fs type, bad option, bad superblock on /dev/loop0,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so.
정보
[332140.394396] fmem init_module 449: init
[332140.394401] fmem find_symbols 439: set guess_page_is_ram: ffffffff81090ca0
[333010.390836] loop: module loaded
메모리를 덤프할 수 있는 도구 범주에 대해 자세히 알아보려면 fmem
참조 섹션의 리소스 목록을 확인하세요.
그렇다면 fmem의 덤프 파일로 무엇을 할 수 있나요?
생성에 대해 논의하는 기사를 찾았습니다.그리고이 파일을 분석하십시오. 다음 제목의 기사에 나와 있습니다.단서 따르기: 메모리 분석 - 관리 네트워킹 및 보안 매거진. 기사에서는 2가지 도구를 언급했습니다.악귀&휘발성 물질.
발췌
악귀
Python 스크립트 Draugr은 Linux에서 가장 초기의 메모리 분석 도구 중 하나입니다. Draugr 스크립트를 사용하면 사용자는 의사 장치를 통해 실행 중인 시스템의 메모리를 직접 조사할 수 있습니다
/dev/mem
. 그러나 Draugr은 파일에서 사용 가능한 메모리 덤프도 분석합니다. Draugr의 단점은 기능이 프로세스 나열 및 특정 메모리 영역 추출로 제한된다는 것입니다. Draugr의 개발은 2009년에 중단되었습니다.휘발성 물질
또 다른 메모리 분석 도구는 Volatilitux입니다. Volatilitux는 오랫동안 Linux와 동등한 도구로 여겨져 왔습니다.Windows 시스템에서 사용하기 위한 변동성 도구. 이제 변동성 분석 프레임워크에는 Linux 지원이 내장되어 있으며 이에 대해서는 이 기사의 뒷부분에서 다루겠습니다. Volatility는 사용 가능한 Linux RAM 분석 도구 중에서 가장 광범위한 기능을 가지고 있지만 Volatilitux에는 두 가지 중요한 기능이 부족하다는 점에 주목할 필요가 있습니다.
...
...
Draugr의 알려진 기능 외에도 Volatilitux를 사용하면 프로세스의 열린 파일을 보고 추출할 수도 있습니다. 2011년 12월의 새 버전에는 64비트 지원이 추가되었습니다.
노트:윈도우 도구,휘발성fmem
파일 출력을 분석하는 데에도 사용할 수 있습니다 !