Comments (3)
Hi,
This was quite a few questions on one. And I'm glad you noticed one of the main features of MemProcFS - i.e. real live memory analysis.
First off processes works with virtual memory addresses which are mostly translated into physical memory addresses - which may be scattered all around the place. Virtual addresses are sometimes also translated into compressed virtual memory or locations in a page file - so it's not always it's translated into physical memory. PCILeech works with physical memory pretty much so I'd recommend using MemProcFS for virtual memory analysis.
As for the VAD map it roughly translated into this:
{'va': 8791740059648, # base virtual address of segment - i.e. 8791740059648 == 0x7FEFC8B1000
'size': 24576, # size of virtual memory segment i.e. 24576 == 0x6000 == 6 pages
'pages' : 6, # size of virtual memory segment in pages
'pages-sw' : 0, # number of non physical memory pages - i.e. paged memory inside segement
'wow64': False, # 32-bit memory in a 32-bit process on a 64-bit system
'tag':'', # some description about what it is, such as file, image (dll) or ...
'flags-pte: 4, # page table entry flags as defined in intel cpu manual
'flags' : '-r-x' # page table entry flags human readable i.e. s = supervisor (kernel); r = readable; w = writable; x = executable
}
If you wish to translate a virtual memory address into a physical call VmmPy_MemVirt2Phys - or just read memory using VmmPy_MemReadScatter / VmmPy_MemRead.
It's not currently possible to dump all virtual process memory of a live system in an easy way; or... your options are:
-
dump all physical memory = slow
-
dump memory segments programatically using MemRead functions
-
dump mmeory by copying files in /pid//vmemd using either standard tools on a mounted file systems or call APIs for file system access - i.e. VmmPy_Initialize_Plugins / VmmPy_VfsList / VmmPy_VfsRead (or do yara analysis on them straight out. Please check python examples for how to.
-
(not supported on live memory yet) I also have support for minidump generation - i.e. dump all process memory to a single file as specified by the microsoft mindump format (i.e. what comes when you dump process memory in task manager). Tools like windbg and mimikatatz and other tools are able to consume this memory. it's not available yet on live memory though; but if you mount a memory dump file. If interesting I may look into generating this for live memory too (but it's a bit tricky since live memory changes very often).
hope this answers some questions :)
from memprocfs.
Thank you very much for your answer. I am conducting the experiment according to what you said.Under your guidance, I found an interesting folder in memprofs.\ Vmemd files are memory images of all programs?What does the 0x0000000000500000-HEAP-08. vvmem file stand for?
from memprocfs.
it's a memory segment starting at address 0x500000 which is a heap. It's the 8th heap enumerated in that specific process.
from memprocfs.
Related Issues (20)
- Process with kernel memory in Rust HOT 8
- VMMDLL_Map_GetPool Fail HOT 3
- Why is memory reading not supported for Linux operating systems now? HOT 1
- In the VMMDLL_MAP_VADENTRY object, the fTeb, fStack, fHeap fields are incorrectly populated from the VMMDLL_Map_GetVadW call. HOT 4
- Vmmsharp constants HOT 4
- U HOT 10
- Release Retention HOT 5
- Lsass minidump and pypykatz module on Linux HOT 8
- mount live win10 raw memory dump file HOT 9
- set_config failing with the config ID OPT_REFRESH_FREQ_MEDIUM HOT 5
- sometimes read pool address fail HOT 5
- Hiccup/Lag every X seconds HOT 3
- Timeline csv files created with extra non-valid column data HOT 2
- Vmmsharp AOT Warning HOT 3
- input pid for mem_read in vmmrust HOT 3
- unable to connect to FPGA device on live system HOT 8
- FAIL: VMMDLL_Initiazlize HOT 5
- How to get the sys module address through python? HOT 3
- Minidump not being generated HOT 10
- libpdbcrust.so and vmmyara.so
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from memprocfs.