예제 #1
0
        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);
        }
예제 #2
0
 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;
     }
 }
예제 #3
0
파일: Host.cs 프로젝트: smx-smx/reko
        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);
            }
        }
예제 #4
0
파일: Host.cs 프로젝트: gh0std4ncer/reko
 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;
     }
 }