See the question and my original answer on StackOverflow

There is a ByteViewer Control directly available in the .NET Framework. Here is how you can use it in a sample Winforms C# application (note: you need to reference the System.Design assembly):

public Form1()
{
    InitializeComponent();
    ...
    ByteViewer bv = new ByteViewer();
    bv.SetFile(@"c:\windows\notepad.exe"); // or SetBytes
    Controls.Add(bv);
}

And here is how it looks like:

enter image description here