Beispiel #1
0
 public LIST_ENTRY(DataProviderBase dataProvider, ulong vAddress)
 {
     try
     {
         AddressBase addressSpace = dataProvider.ActiveAddressSpace;
         _virtualAddress  = vAddress;
         _physicalAddress = addressSpace.vtop(vAddress, dataProvider.IsLive);
         _x64             = addressSpace.Is64;
         if (_x64)
         {
             var checkFirst = dataProvider.ReadUInt64(_virtualAddress);
             if (checkFirst == null)
             {
                 throw new ArgumentException("Invalid Address");
             }
             _blink     = (ulong)checkFirst;
             checkFirst = dataProvider.ReadUInt64(_virtualAddress + 8);
             if (checkFirst == null)
             {
                 throw new ArgumentException("Invalid Address");
             }
             _flink = (ulong)checkFirst;
         }
         else
         {
             var checkFirst = dataProvider.ReadUInt32(_virtualAddress);
             if (checkFirst == null)
             {
                 throw new ArgumentException("Invalid Address");
             }
             _blink     = (ulong)checkFirst;
             checkFirst = dataProvider.ReadUInt32(_virtualAddress + 4);
             if (checkFirst == null)
             {
                 throw new ArgumentException("Invalid Address");
             }
             _flink = (ulong)checkFirst;
         }
     }
     catch (Exception ex)
     {
         throw new ArgumentException("Error: " + ex.Message);
     }
 }