バイナリダンプの部分だけ作ってみた。賢いロジックじゃないけど。
色の変え方はよく分からん。

using System;
using System.IO;
using System.Text;

class BinaryDump {

  public static void Main(string[] args) {
    if (args.Length == 0) {
      return;
    }

    using (Stream s = File.OpenRead(args[0])) {
      byte[] buf = new byte[16];
      int read = 0;
      int index = 0;

      while ((read = s.Read(buf, 0, buf.Length)) > 0) {
        // バイトのインデックス表示
        Console.Write("{0:X8}", index);
        index += 16;

        Console.Write(" ");