Ejemplo n.º 1
0
		/// <summary>
		/// Constructor
		/// </summary>
		/// <param name="imageStreamCreator">The PE stream creator</param>
		/// <param name="imageLayout">Image layout</param>
		/// <param name="verify">Verify PE file data</param>
		public PEImage(IImageStreamCreator imageStreamCreator, ImageLayout imageLayout, bool verify) {
			try {
				this.imageStreamCreator = imageStreamCreator;
				this.peType = ConvertImageLayout(imageLayout);
				ResetReader();
				this.peInfo = new PEInfo(imageStream, verify);
				Initialize();
			}
			catch {
				Dispose();
				throw;
			}
		}
Ejemplo n.º 2
0
		/// <inheritdoc/>
		public void Dispose() {
			IDisposable id;
			if (win32Resources.IsValueInitialized && (id = win32Resources.Value) != null)
				id.Dispose();
			if ((id = imageStream) != null)
				id.Dispose();
			if ((id = imageStreamCreator) != null)
				id.Dispose();
			win32Resources.Value = null;
			imageStream = null;
			imageStreamCreator = null;
			peType = null;
			peInfo = null;
		}
Ejemplo n.º 3
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="imageStreamCreator">The PE stream creator</param>
 /// <param name="imageLayout">Image layout</param>
 /// <param name="verify">Verify PE file data</param>
 public PEImage(IImageStreamCreator imageStreamCreator, ImageLayout imageLayout, bool verify)
 {
     try {
         this.imageStreamCreator = imageStreamCreator;
         this.peType = ConvertImageLayout(imageLayout);
         ResetReader();
         this.peInfo = new PEInfo(imageStream, verify);
         Initialize();
     }
     catch {
         Dispose();
         throw;
     }
 }
Ejemplo n.º 4
0
 /// <inheritdoc/>
 public void Dispose()
 {
     if (win32Resources.IsValueInitialized && win32Resources.Value != null)
     {
         win32Resources.Value.Dispose();
     }
     if (imageStream != null)
     {
         imageStream.Dispose();
     }
     if (imageStreamCreator != null)
     {
         imageStreamCreator.Dispose();
     }
     win32Resources.Value = null;
     imageStream          = null;
     imageStreamCreator   = null;
     peType = null;
     peInfo = null;
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Creates a stream that can access all data starting from <paramref name="offset"/>
 /// </summary>
 /// <param name="self">this</param>
 /// <param name="offset">Offset within the original data</param>
 /// <returns>A new stream</returns>
 public static IImageStream Create(this IImageStreamCreator self, FileOffset offset)
 {
     return(self.Create(offset, long.MaxValue));
 }
Ejemplo n.º 6
0
		/// <inheritdoc/>
		public void Dispose() {
			IDisposable id;
			if (win32Resources.IsValueInitialized && (id = win32Resources.Value) != null)
				id.Dispose();
			if ((id = imageStream) != null)
				id.Dispose();
			if ((id = imageStreamCreator) != null)
				id.Dispose();
			win32Resources.Value = null;
			imageStream = null;
			imageStreamCreator = null;
			peType = null;
			peInfo = null;
		}
Ejemplo n.º 7
0
		/// <inheritdoc/>
		public void Dispose() {
			if (win32Resources.IsValueInitialized && win32Resources.Value != null)
				win32Resources.Value.Dispose();
			if (imageStream != null)
				imageStream.Dispose();
			if (imageStreamCreator != null)
				imageStreamCreator.Dispose();
			win32Resources.Value = null;
			imageStream = null;
			imageStreamCreator = null;
			peType = null;
			peInfo = null;
		}