
MemProcFS: =============================== MemProcFS é uma forma fácil e conveniente de visualizar a memória física como ficheiros num sistema de ficheiros virtual. Análise de memória fácil e trivial com um simples clique, sem necessidade de argumentos de linha de comandos complicados! Aceda ao conteúdo e artefactos da memória através de ficheiros num sistema de ficheiros virtual montado ou através de uma biblioteca de aplicação rica em funcionalidades para incluir nos seus próprios projetos! Analise ficheiros de dump de memória, <b>memória em tempo real</b> via DumpIt ou WinPMEM, <b>memória em tempo real em modo de leitura-escrita</b> a partir de máquinas virtuais ou de dispositivos de hardware [PCILeech](https://github.com/ufrisk/pcileech/) [FPGA](https://github.com/ufrisk/pcileech-fpga/)! É até possível ligar-se a um agente remoto de aquisição de memória LeechAgent através de uma ligação segura - permitindo resposta a incidentes de memória em tempo real remota - mesmo em ligações de maior latência e baixa largura de banda! Espreite para [Máquinas Virtuais com MemProcFS](https://github.com/ufrisk/MemProcFS/wiki/VM), [LiveCloudKd](https://github.com/ufrisk/LeechCore/wiki/Device_LiveCloudKd) ou [VMware](https://github.com/ufrisk/LeechCore/wiki/Device_VMWare)! Use as suas ferramentas favoritas para analisar memória - use os seus editores hex favoritos, os seus scripts python e powershell, WinDbg ou os seus desassembladores e depuradores favoritos - tudo funcionará trivialmente com o MemProcFS apenas lendo e escrevendo ficheiros! <p align="center"><img src="https://assets.kitploit.com/production/public/readmes/2830/a111e1c899f2551096ce422ed932f3525456af2bc6ffa2d5e6abac1fee1f8849.png" height="190"/><img src="https://assets.kitploit.com/production/public/readmes/2830/4ecebbb25e1d08180796de105a630a7760973a6f47f2403ef1a48644126de979.jpg" height="190"/><img src="https://assets.kitploit.com/production/public/readmes/2830/11e55ba5f11c9d1137246542e03037eb387b0d64d14314d6e775e5f80108b691.png" height="190"/><img src="https://assets.kitploit.com/production/public/readmes/2830/7b379ca3d99eb25b9c638181fa4f0d0bf4c53f8c1f0e9475b03346670eeaab42.png" height="190"/></p> Começar! ============ Veja o excelente guia rápido do [13Cubed](https://www.13cubed.com/) para começar! Veja também as minhas palestras mais antigas em conferências da Disobey e BlueHat. <p align="center"> <a href="https://youtu.be/hjWVUrf7Obk" alt="13Cubed: MemProcFS - This Changes Everything" target="_new"><img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" height="230"/></a> <a href="https://youtu.be/mca3rLsHuTA?t=952" alt="Disobey 2020 talk - Live Memory Attacks and Forensics" target="_new"><img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" height="230"/></a> <a href="https://www.youtube.com/watch?v=Da_9SV9FA34" alt="Microsoft BlueHatIL 2019 talk - Practical Uses for Hardware-assisted Memory Visualization" target="_new"><img src="https://assets.kitploit.com/production/public/readmes/placeholders/f0fc86cfe65f76d40e15aaec61704ec8220a56dc89d4be03c46f67cb31b9fa8c.svg" height="230"/></a></p> Para documentação adicional **consulte a [wiki do projeto](https://github.com/ufrisk/MemProcFS/wiki)** para informação detalhada aprofundada sobre o próprio sistema de ficheiros, a sua API e os seus módulos de plugins! Para informação adicional sobre métodos de aquisição de memória consulte o **[projeto LeechCore](https://github.com/ufrisk/LeechCore/)** ou entre no servidor Discord [PCILeech/MemProcFS](https://pcileech.com/discord)! Para começar, descarregue os [binários, módulos e ficheiros de configuração mais recentes](https://github.com/ufrisk/MemProcFS/releases/latest) e consulte o [guia](https://github.com/ufrisk/MemProcFS/wiki)! Instalação: =========== <b>Obtenha os [binários, módulos e ficheiros de configuração mais recentes](https://github.com/ufrisk/MemProcFS/releases/latest) a partir do último lançamento.</b> Em alternativa, clone o repositório e compile a partir do código-fonte. ## Windows Montar o sistema de ficheiros requer que a <b>biblioteca de sistema de ficheiros Dokany</b> esteja instalada. Descarregue e instale a versão mais recente do Dokany versão 2 em: https://github.com/dokan-dev/dokany/releases/latest Para capturar memória em tempo real (sem hardware PCILeech FPGA) descarregue o [DumpIt](https://www.magnetforensics.com/resources/magnet-dumpit-for-windows) e inicie o MemProcFS via modo DumpIt /LIVEKD. Em alternativa, obtenha o WinPMEM descarregando o [controlador WinPMEM](https://github.com/Velocidex/c-aff4/tree/master/tools/pmem/resources/winpmem) assinado mais recente e coloque-o junto ao MemProcFS - instruções detalhadas na [Wiki do LeechCore](https://github.com/ufrisk/LeechCore/wiki/Device_WinPMEM). O PCILeech FPGA requer hardware, bem como a colocação de _FTD3XXWU.dll_ junto aos binários do MemProcFS. Consulte o projeto [LeechCore](https://github.com/ufrisk/LeechCore) para instruções. ## Linux O MemProcFS deverá ser possível de executar imediatamente na maioria das distribuições Linux com FUSE instalado. Se compilar a partir do código-fonte, consulte o guia sobre [MemProcFS no Linux](https://github.com/ufrisk/MemProcFS/wiki/_Linux). ## macOS Descarregue o último lançamento do MemProcFS [aqui](https://github.com/ufrisk/MemProcFS/releases/latest). O MemProcFS, quando usado como sistema de ficheiros virtual montado, depende do **macFuse**, que requer um .kext. Descarregue e instale o macFuse [aqui](https://github.com/macfuse/macfuse/releases/latest). Se o MemProcFS for usado através das APIs C/C++/Rust suportadas, o macFuse não é necessário. Extensa API Python, Rust, Java, Go, C# e C/C++: =============================== Inclua o MemProcFS nos seus projetos de programação [C/C++](https://github.com/ufrisk/MemProcFS/wiki/API_C), [C#](https://github.com/ufrisk/MemProcFS/wiki/API_CSharp), [Java](https://github.com/ufrisk/MemProcFS/wiki/API_Java), [Go](https://github.com/TexHik620953/go-memprocfs/) (terceiros), [Python](https://github.com/ufrisk/MemProcFS/wiki/API_Python) ou [Rust](https://github.com/ufrisk/MemProcFS/wiki/API_Rust)! Tudo no MemProcFS é exposto através de uma API fácil de usar para utilização nos seus próprios projetos! A arquitetura amigável a plugins permite aos utilizadores estender facilmente o MemProcFS com plugins em C/C++/Rust/Python! Tudo no MemProcFS é exposto como APIs. Existem APIs para C/C++ `vmmdll.h`, C# [pacote nuget](https://www.nuget.org/packages/Vmmsharp/), Java, Python [pacote pip](https://pypi.org/project/memprocfs/) e Rust [crate](https://crates.io/crates/memprocfs). O próprio sistema de ficheiros é disponibilizado virtualmente através da API sem necessidade de o montar. É possível ler tanto memória virtual de processos como memória física! O exemplo abaixo mostra a leitura de 0x20 bytes a partir do endereço físico 0x1000: ``` >>> 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 ................ ``` O MemProcFS está disponível como pacote pip Python e é fácil de integrar nos seus [Jupyter Notebooks](https://github.com/ufrisk/MemProcFS/wiki/API_Python_Jupyter). Exemplos: ========= Inicie o MemProcFS a partir da linha de comandos - possivelmente usando um dos exemplos abaixo. Ou registe a extensão de ficheiro de dump de memória com o MemProcFS.exe para que o sistema de ficheiros seja automaticamente montado ao clicar duas vezes num ficheiro de dump de memória! - montar o ficheiro de dump de memória como M: predefinido <br>`memprocfs.exe -device c:\temp\win10x64-dump.raw` - montar o ficheiro de dump de memória como M: predefinido com verbosidade extra: <br>`memprocfs.exe -device c:\temp\win10x64-dump.raw -v` - montar o ficheiro de dump de memória como M: predefinido e iniciar o modo forense: <br>`memprocfs.exe -device c:\temp\win10x64-dump.raw -forensic 1` - montar o ficheiro de dump de memória como M: predefinido e iniciar o modo forense com uma análise yara: <br>`memprocfs.exe -device c:\temp\win10x64-dump.raw -forensic 1 -forensic-yara-rules c:\yara\rules\windows_malware_index.yar` - montar o ficheiro de dump de memória como /home/pi/mnt/ no Linux: <br>`./memprocfs -mount /home/pi/linux -device /dumps/win10x64-dump.raw` - montar o ficheiro de dump de memória como S: <br>`memprocfs.exe -mount s -device c:\temp\win10x64-dump.raw` - montar memória alvo em tempo real, em modo de leitura apenas, com o controlador WinPMEM: <br>`memprocfs.exe -device pmem` - montar memória alvo em tempo real, em modo de leitura/escrita, com o dispositivo de aquisição de memória PCILeech FPGA: <br>`memprocfs.exe -device fpga -memmap auto` - montar um dump de memória com os ficheiros de paginação correspondentes: <br>`memprocfs.exe -device unknown-x64-dump.raw -pagefile0 pagefile.sys -pagefile1 swapfile.sys` Comunidade PCILeech e MemProcFS: ========= Acha tudo isto um pouco esmagador? Ou apenas quer fazer uma pergunta rápida? Junte-se ao servidor da comunidade DMA PCILeech e MemProcFS no Discord! <a href="https://pcileech.com/discord"><img src="https://assets.kitploit.com/production/public/readmes/2830/dd08fab787215b19b3e40b783ad638e783a82877e2327db7ccfd42e1454d1a94/1b0a45deb2d3a6f0b2933330f855a6c788343ce3e9f4a6df439c161a52dc460a-display-v1.webp"/></a> Compilação: ========= <b>[Binários, módulos e ficheiros de configuração](https://github.com/ufrisk/MemProcFS/releases/latest) pré-compilados encontram-se no último lançamento.</b>. Os binários do MemProcFS são compilados com Visual Studio 2022 e Ubuntu x64/AARCH64. Instruções detalhadas de compilação podem ser encontradas na [Wiki](https://github.com/ufrisk/MemProcFS/wiki) na secção [Building](https://github.com/ufrisk/MemProcFS/wiki/Dev_Building). Licença: ======== O código-fonte do projeto é lançado sob: GNU Affero General Public License v3.0. Algumas dependências e plugins incluídos são lançados sob GPLv3. Alguns binários redistribuíveis da Microsoft incluídos são lançados sob licenças separadas. Licenciamento alternativo pode ser possível mediante pedido. Contribuição: ============= PCILeech, MemProcFS e LeechCore são open source mas não de contribuição aberta. PCILeech, MemProcFS e LeechCore oferecem uma arquitetura de plugins altamente flexível que permitirá contribuições sob a forma de plugins. Se desejar fazer uma contribuição, que não seja um plugin, aos projetos principais, contacte-me antes de começar a desenvolver. Ligações: ====== * Twitter: [](https://twitter.com/intent/follow?screen_name=UlfFrisk) * Discord: [](https://pcileech.com/discord) * PCILeech: https://github.com/ufrisk/pcileech * PCILeech FPGA: https://github.com/ufrisk/pcileech-fpga * LeechCore: https://github.com/ufrisk/LeechCore * MemProcFS: https://github.com/ufrisk/MemProcFS * Blog: http://blog.frizk.net Ligações - Projetos Relacionados: ========================= * [MemProcFS-Analyzer](https://github.com/LETHAL-FORENSICS/MemProcFS-Analyzer/) é uma aplicação PowerShell de terceiros usada para simplificar a utilização do MemProcFS e otimizar o seu fluxo de trabalho de análise de memória. O MemProcFS-Analyzer é mantido por [@evild3ad](https://github.com/evild3ad) na [LETHAL-FORENSICS](https://github.com/LETHAL-FORENSICS). Registo de alterações: =================== <details><summary>Lançamentos anteriores (clique para expandir):</summary> v1.0 * Lançamento inicial. v1.1-v4.9 * Várias atualizações. Consulte os lançamentos individuais para mais informação. v5.0 * Lançamento principal com novas funcionalidades para suportar tarefas de análise paralela. * Alterações significativas na API e atualizações principais. * Capacidades alargadas de análise forense e suporte a [ficheiros CSV](https://github.com/ufrisk/MemProcFS/wiki/FS_Forensic_CSV). * Suporte a plugins Linux. * Nova [API Java](https://github.com/ufrisk/MemProcFS/wiki/API_Java). v5.1 * Suporte para Windows 11 22H2. * Vistas apenas de Texto e Binário em '/misc/view/'. v5.2 * Correções de erros. * [Suporte a Máquinas Virtuais](https://github.com/ufrisk/MemProcFS/wiki/VM). * [Suporte a ARM64 Windows](https://github.com/ufrisk/MemProcFS/wiki/_ARM64). * Melhorias de desempenho do FPGA. * Informação da árvore de dispositivos em /sys/drivers. * Adições de funcionalidades Linux: memcompress e token. * Descarregamento manual de símbolos de depuração (PDBs) em sistemas offline (apenas Windows). v5.3 * Correções de erros e otimizações de desempenho. * Funções encaminhadas de PE. * Informação de versão de PE. * Modo batch Python do MemProcFS. * Suporte a plugins Python Linux. * Suporte a Hyper-V Container/Sandbox. * Suporte a Windows Hypervisor Platform (VMware e VirtualBox em Hyper-V). v5.4 * Suporte à API Rust. * Suporte a símbolos de depuração quando executado em Linux. v5.5 * [Findevil](https://github.com/ufrisk/MemProcFS/wiki/FS_FindEvil): Novas deteções baseadas em threads. O Findevil é agora apenas em modo forense. * [Exemplo de Jupyter Notebook](https://github.com/ufrisk/MemProcFS/wiki/API_Python_Jupyter) * Suporte a Yara em [modo forense](https://github.com/ufrisk/MemProcFS/wiki/FS_Forensic_Yara) e [pesquisa](https://github.com/ufrisk/MemProcFS/wiki/FS_YaraSearch). v5.6 * Correções de erros, otimizações de desempenho e atualizações menores. * Plugin [files](https://github.com/ufrisk/MemProcFS/wiki/FS_Forensic_Files) em modo forense - mostrando ficheiros com conteúdos recuperáveis. * Regras yara incorporadas para [Findevil](https://github.com/ufrisk/MemProcFS/wiki/FS_FindEvil) em modo forense da [Elastic Security](https://github.com/elastic/protections-artifacts).<br>Ative aceitando a licença Elastic 2.0 através da opção de arranque [`-license-accept-elastic-license-2.0`](https://github.com/ufrisk/MemProcFS/wiki/_CommandLine#-license-accept-elastic-license-2.0). v5.7 * Correções de erros. * Atualizações da API Rust. * Novas deteções FindEvil Yara. * Análises Yara de objetos de ficheiro (maior probabilidade de deteção de controladores vulneráveis pelo FindEvil). * Desempenho melhorado do FPGA para leituras mais pequenas. * [MemProcFS remoting](https://github.com/ufrisk/MemProcFS/wiki/_Remoting) melhorado via [LeechAgent](https://github.com/ufrisk/LeechCore/wiki/LeechAgent) remoto. Suporte remoto completo do MemProcFS sobre SMB - tcp/445. Perfeito para Resposta a Incidentes (IR) de forense de memória! v5.8 * Atualizações da API LeechCore para C/C++, C#, Rust, Python, Java. * Suporte para análise de memória ARM64 Windows. [v5.9](https://github.com/ufrisk/MemProcFS/releases/tag/v5.9) * Correções de erros. * Melhorias nos módulos: ntfs, procinfo, web. * API C#: melhorias. * API Java: suporte para java.lang.foreign (JDK21+) para acessos eficientes à memória. * Melhorias de desempenho do FPGA PCIe em Linux. * FindEvil: As regras Yara acionadas são agora mostradas. * FindEvil: Deteções AV do Windows Defender residente no sistema analisado. * API Python: nova funcionalidade (multi-read, type-read) e desempenho melhorado de scatter read. * Suporte para ficheiros de dump de memória Proxmox. [v5.10](https://github.com/ufrisk/MemProcFS/releases/tag/v5.10) * Suporte para o lançamento Windows 11 24H2. * Correções de erros. * Adicionados objetos _SECTION nomeados ao mapa VAD. * Melhorias em `-memmap auto`. * Suporte a ficheiros de hibernação. * FindEvil: Deteção UM APC. Obrigado [@thejanit0r](https://github.com/thejanit0r) pela contribuição. * [Módulo Sysinfo](https://github.com/ufrisk/MemProcFS/wiki/FS_Sys_Sysinfo) para informação de sistema fácil de ler. * [Módulo Eventlog](https://github.com/ufrisk/MemProcFS/wiki/FS_Misc_Eventlog) para acesso conveniente a ficheiros de registo de eventos. * A API de pesquisa binária permite agora até 16M termos de pesquisa (anteriormente 16). * Análise de Prefetch. [v5.11](https://github.com/ufrisk/MemProcFS/releases/tag/v5.11) * Correções de erros. * [Nova API C# Vmmsharp](https://github.com/ufrisk/MemProcFS/wiki/API_CSharp). [v5.12](https://github.com/ufrisk/MemProcFS/releases/tag/v5.12) * Correções de erros. * atualizações (FindEvil, Novas assinaturas, etc.). * Novas APIs para Objetos de Kernel, Controladores e Dispositivos. [v5.13](https://github.com/ufrisk/MemProcFS/releases/tag/v5.13) * Correções de erros. * Novo [módulo de consola](https://github.com/ufrisk/MemProcFS/wiki/FS_Process_Console) adicionado. * Melhorias na recuperação de ficheiros (tamanhos de ficheiros, informação de assinatura) para o [módulo files](https://github.com/ufrisk/MemProcFS/wiki/FS_Forensic_Files). * Funcionalidade da API de callback de memória (apenas API C/C++). * [Análise de callstack](https://github.com/ufrisk/MemProcFS/wiki/FS_Process_Threads) para callstacks de processos em modo utilizador x64. [v5.14](https://github.com/ufrisk/MemProcFS/releases/tag/v5.14) * Correções de erros. * Suporte a compilação clang em Linux. * Suporte a macOS. [v5.15](https://github.com/ufrisk/MemProcFS/releases/tag/v5.15) * Correções de erros. * Suporte a LeechAgent em Linux usando gRPC (LeechCore v2.21). * Nova deteção FindEvil: High Entropy. * [Análise de cache DNS](https://github.com/ufrisk/MemProcFS/wiki/FS_SysInfo_Network). Obrigado [@MattCore71](https://github.com/MattCore71) pela contribuição. [v5.16](https://github.com/ufrisk/MemProcFS/releases/tag/v5.16) * Correções de erros. * Suporte para Windows 11 25H2 </details> [v5.17](https://github.com/ufrisk/MemProcFS/releases/tag/v5.17) * Suporte para Windows 11 26H1. * Análise de registo melhorada. * Novas opções de atualização na API. * Novo callback de registo opcional na API. * Suporte para caracteres não-ascii em caminhos de ficheiros. [v5.18](https://github.com/ufrisk/MemProcFS/releases/tag/v5.18) * Correções de erros. * Novo módulo: Analisador do Windows Terminal (Win11+). * Novo módulo forense: analisador amcache (Win10+). * Limite superior do mapa PTE ajustado de 65536 para 131072. * Correção: As escritas de ficheiros no MemProcFS montado em WSL (drvfs) agora funcionam. [v5.19](https://github.com/ufrisk/MemProcFS/releases/tag/v5.19) * Suporte para Windows 11 26H2. * Correções de erros. * Correção: A recuperação de Heap agora funciona no Windows 11 24H2 e posteriores. * Correção: Análise de Pool e Heap melhorada. * Correção: Taxas de recuperação de memória comprimida melhoradas. * Novo módulo: /sys/eventlog (recuperação de registo de eventos do Windows). * Novo módulo: /sys/proc/cpu - utilização de CPU do processo, atual e total. * Nova função da API: VMMDLL_MemVirtualQuery. * Nova função da API: VMMDLL_WinReg_QueryNameOriginalU.