50 lines
1.1 KiB
C#
50 lines
1.1 KiB
C#
//
|
|
// 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.IO;
|
|
|
|
namespace MonoFN.Cecil.PE
|
|
{
|
|
internal 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--;
|
|
int position = Position;
|
|
Advance(((position + align) & ~align) - position);
|
|
}
|
|
|
|
public DataDirectory ReadDataDirectory()
|
|
{
|
|
return new(ReadUInt32(), ReadUInt32());
|
|
}
|
|
}
|
|
} |