You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
985 B
55 lines
985 B
3 years ago
|
//
|
||
|
// Author:
|
||
|
// Jb Evain (jbevain@gmail.com)
|
||
|
//
|
||
|
// Copyright (c) 2008 - 2015 Jb Evain
|
||
|
// Copyright (c) 2008 - 2011 Novell, Inc.
|
||
|
//
|
||
|
// Licensed under the MIT/X11 license.
|
||
|
//
|
||
|
|
||
|
using System;
|
||
|
using System.IO;
|
||
|
|
||
|
namespace ILRuntime.Mono.Cecil.PE {
|
||
|
|
||
|
class BinaryStreamReader : BinaryReader {
|
||
|
|
||
|
public int Position {
|
||
|
get { return (int) BaseStream.Position; }
|
||
|
set { BaseStream.Position = value; }
|
||
|
}
|
||
|
|
||
|
public int Length {
|
||
|
get { return (int) BaseStream.Length; }
|
||
|
}
|
||
|
|
||
|
public BinaryStreamReader (Stream stream)
|
||
|
: base (stream)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
public void Advance (int bytes)
|
||
|
{
|
||
|
BaseStream.Seek (bytes, SeekOrigin.Current);
|
||
|
}
|
||
|
|
||
|
public void MoveTo (uint position)
|
||
|
{
|
||
|
BaseStream.Seek (position, SeekOrigin.Begin);
|
||
|
}
|
||
|
|
||
|
public void Align (int align)
|
||
|
{
|
||
|
align--;
|
||
|
var position = Position;
|
||
|
Advance (((position + align) & ~align) - position);
|
||
|
}
|
||
|
|
||
|
public DataDirectory ReadDataDirectory ()
|
||
|
{
|
||
|
return new DataDirectory (ReadUInt32 (), ReadUInt32 ());
|
||
|
}
|
||
|
}
|
||
|
}
|