
MemProcFS
MemProcFS는 물리 메모리를 가상 파일 시스템의 파일로 간편하게 확인할 수 있는 방법입니다.
복잡한 명령줄 인수 없이도 쉽게 클릭 몇 번으로 메모리 분석이 가능합니다! 마운트된 가상 파일 시스템의 파일을 통해 또는 자체 프로젝트에 포함할 수 있는 기능이 풍부한 애플리케이션 라이브러리를 통해 메모리 내용과 아티팩트에 접근하세요!
메모리 덤프 파일, DumpIt 또는 WinPMEM을 통한 라이브 메모리, 가상 머신 또는 PCILeech FPGA 하드웨어 장치로부터의 읽기-쓰기 모드 라이브 메모리를 분석하세요!
보안 연결을 통해 원격 LeechAgent 메모리 수집 에이전트에 연결하는 것도 가능합니다 - 높은 지연 시간과 낮은 대역폭의 연결에서도 원격 라이브 메모리 사고 대응이 가능합니다! MemProcFS를 사용한 가상 머신, LiveCloudKd 또는 VMware를 살펴보세요!
좋아하는 도구로 메모리를 분석하세요 - 좋아하는 헥스 에디터, 파이썬 및 파워셸 스크립트, WinDbg 또는 좋아하는 디스어셈블러와 디버거 - 모두 MemProcFS와 함께 파일을 읽고 쓰는 것만으로 간단하게 작동합니다!




13Cubed의 훌륭한 빠른 워크스루를 확인하여 시작하세요! 또한 Disobey와 BlueHat에서의 이전 컨퍼런스 발표도 확인해 보세요.
추가 문서는 파일 시스템 자체, API 및 플러그인 모듈에 대한 심층적인 상세 정보를 제공하는 **프로젝트 위키**를 확인하세요! 메모리 수집 방법에 대한 추가 정보는 **LeechCore 프로젝트**를 확인하거나 PCILeech/MemProcFS Discord 서버에 참여하세요!
시작하려면 최신 바이너리, 모듈 및 구성 파일을 다운로드하고 가이드를 확인하세요!
최신 릴리스에서 최신 바이너리, 모듈 및 구성 파일을 받으세요. 또는 저장소를 복제하여 소스에서 빌드할 수 있습니다.
파일 시스템을 마운트하려면 Dokany 파일 시스템 라이브러리가 설치되어 있어야 합니다. https://github.com/dokan-dev/dokany/releases/latest 에서 Dokany 버전 2의 최신 버전을 다운로드하여 설치하세요.
(PCILeech FPGA 하드웨어 없이) 라이브 메모리를 캡처하려면 DumpIt을 다운로드하고 DumpIt /LIVEKD 모드로 MemProcFS를 시작하세요. 또는 가장 최근에 서명된 WinPMEM 드라이버를 다운로드하여 MemProcFS 옆에 배치하여 WinPMEM을 받으세요 - 자세한 지침은 LeechCore Wiki에 있습니다.
PCILeech FPGA는 하드웨어와 함께 _FTD3XXWU.dll_을 MemProcFS 바이너리 옆에 배치해야 합니다. 지침은 LeechCore 프로젝트를 확인하세요.
MemProcFS는 FUSE가 설치된 대부분의 Linux 배포판에서 별도 설정 없이 실행할 수 있습니다. 소스에서 빌드하는 경우 Linux에서의 MemProcFS 가이드를 확인하세요.
여기에서 최신 MemProcFS 릴리스를 다운로드하세요. 마운트된 가상 파일 시스템으로 사용될 때 MemProcFS는 .kext가 필요한 macFuse에 의존합니다. 여기에서 macFuse를 다운로드하여 설치하세요. 지원되는 C/C++/Rust API를 통해 MemProcFS를 사용하는 경우 macFuse는 필요하지 않습니다.
C/C++, C#, Java, Go (서드파티), Python 또는 Rust 프로그래밍 프로젝트에 MemProcFS를 포함하세요! MemProcFS의 모든 것은 자체 프로젝트에서 사용할 수 있는 사용하기 쉬운 API를 통해 노출됩니다! 플러그인 친화적인 아키텍처를 통해 사용자는 C/C++/Rust/Python 플러그인으로 MemProcFS를 쉽게 확장할 수 있습니다!
MemProcFS의 모든 것은 API로 노출됩니다. API는 C/C++ vmmdll.h, C# nuget 패키지, Java, Python pip 패키지 및 Rust crate로 제공됩니다. 파일 시스템 자체는 마운트할 필요 없이 API를 통해 가상으로 사용할 수 있습니다. 가상 프로세스 메모리와 물리 메모리 모두를 읽을 수 있습니다! 아래 예제는 물리 주소 0x1000에서 0x20 바이트를 읽는 것을 보여줍니다:
>>> import memprocfs
>>> vmm = memprocfs.Vmm(['-device', 'c:/temp/win10_memdump.raw'])
>>> print(vmm.hex( vmm.memory.read(0x1000, 0x20) ))
0000 e9 4d 06 00 01 00 00 00 01 00 00 00 3f 00 18 10 .M..........?...
0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
MemProcFS는 Python pip 패키지로 제공되며 Jupyter Notebooks에 쉽게 통합할 수 있습니다.
명령줄에서 MemProcFS를 시작하세요 - 아래 예제 중 하나를 사용할 수 있습니다.
또는 MemProcFS.exe에 메모리 덤프 파일 확장자를 등록하여 메모리 덤프 파일을 두 번 클릭하면 파일 시스템이 자동으로 마운트되도록 하세요!
memprocfs.exe -device c:\temp\win10x64-dump.rawmemprocfs.exe -device c:\temp\win10x64-dump.raw -vmemprocfs.exe -device c:\temp\win10x64-dump.raw -forensic 1memprocfs.exe -device c:\temp\win10x64-dump.raw -forensic 1 -forensic-yara-rules c:\yara\rules\windows_malware_index.yar./memprocfs -mount /home/pi/linux -device /dumps/win10x64-dump.rawmemprocfs.exe -mount s -device c:\temp\win10x64-dump.rawmemprocfs.exe -device pmemmemprocfs.exe -device fpga -memmap automemprocfs.exe -device unknown-x64-dump.raw -pagefile0 pagefile.sys -pagefile1 swapfile.sys이 모든 것이 조금 부담스러우신가요? 아니면 간단한 질문을 하고 싶으신가요? Discord의 PCILeech 및 MemProcFS DMA 커뮤니티 서버에 참여하세요!
미리 빌드된 바이너리, 모듈 및 구성 파일은 최신 릴리스에서 찾을 수 있습니다.. MemProcFS 바이너리는 Visual Studio 2022와 Ubuntu x64/AARCH64로 빌드됩니다.
자세한 빌드 지침은 Wiki의 Building 섹션에서 찾을 수 있습니다.
프로젝트 소스 코드는 GNU Affero General Public License v3.0에 따라 릴리스됩니다. 일부 번들 종속성 및 플러그인은 GPLv3에 따라 릴리스됩니다. 일부 번들 Microsoft 재배포 가능 바이너리는 별도의 라이선스에 따라 릴리스됩니다. 요청 시 대체 라이선스가 가능할 수 있습니다.
PCILeech, MemProcFS 및 LeechCore는 오픈 소스이지만 오픈 기여는 아닙니다. PCILeech, MemProcFS 및 LeechCore는 플러그인 형태의 기여를 허용하는 매우 유연한 플러그인 아키텍처를 제공합니다. 플러그인 이외의 핵심 프로젝트에 기여하고 싶으시다면 개발을 시작하기 전에 저에게 연락해 주세요.