Open zhaoqin opened 9 years ago
We also want to prevent a tool's mappings from conflicting. We want to put Umbra logic at 3 control points: DR placement (on Linux at least, by default today we can reload DR at inject time), priv lib placement, and app mmap placement.
We were hoping that this could help ensure umbra's assumption of nothing being mapped in the 0x7fff'ff4-0x7fff'ff8 gap.
Umbra is the module to maintain the shadow memory mapping for application memory. Currently, Umbra does not track the memory allocation but wait for the client calling shadow memory creation routines to create shadow memory. Umbra should be able to proactively track the allocation and manage the shadow memory accordingly. The challenges to the proactively tracking is that there are not only
mmap
andNtAllocateVirtualMemory
that allocates memory from the OS, there are other system calls. One option is to useDrMalloc
(xref #824).