private void Given_Image(uint addr, params byte[] bytes) { mem = new MemoryArea(Address.Ptr32(addr), bytes); imageMap = new SegmentMap( mem.BaseAddress, new ImageSegment(".text", mem, AccessMode.ReadExecute)); host.Setup(h => h.SegmentMap).Returns(imageMap); var meminfo = new MEMORY_BASIC_INFORMATION { BaseAddress = mem.BaseAddress.ToLinear(), RegionSize = (uint)mem.Length, AllocationBase = mem.BaseAddress.ToLinear() }; host.Setup(h => h.TE_GetMemoryInfo( It.IsAny <ulong>(), out meminfo)).Returns(true); }
public virtual bool TE_GetMemoryInfo(Address addr, out MEMORY_BASIC_INFORMATION MemInfo) { SegmentMap map = loader.ImageMap; if (map.TryFindSegment(addr, out ImageSegment segment)) { MemInfo = new MEMORY_BASIC_INFORMATION { AllocationBase = segment.Address.ToLinear(), BaseAddress = segment.Address, RegionSize = segment.Size, }; return true; } else { MemInfo = null; return false; } }
public virtual bool TE_GetMemoryInfo(ulong addr, out MEMORY_BASIC_INFORMATION MemInfo) { SegmentMap map = loader.ImageMap; ImageSegment segment; if (map.TryFindSegment(Address.Ptr32((uint)addr), out segment)) { MemInfo = new MEMORY_BASIC_INFORMATION { AllocationBase = segment.Address.ToLinear(), BaseAddress = segment.Address.ToLinear(), RegionSize = segment.Size, }; return(true); } else { MemInfo = null; return(false); } }
public virtual bool TE_GetMemoryInfo(ulong addr, out MEMORY_BASIC_INFORMATION MemInfo) { ImageMap map = loader.ImageMap; ImageMapSegment segment; if (map.TryFindSegment(Address.Ptr32((uint)addr), out segment)) { MemInfo = new MEMORY_BASIC_INFORMATION { AllocationBase = segment.Address.ToLinear(), BaseAddress = segment.Address.ToLinear(), RegionSize = segment.Size, }; return true; } else { MemInfo = null; return false; } }