using System; using System.Linq; using Mono.Cecil; class GetTable { static void Main(string[] args) { string dll = args[0]; string fname = args[1]; // e.g. 0A8F2B10... var asm = AssemblyDefinition.ReadAssembly(dll); foreach (var mod in asm.Modules) { foreach (var t in mod.Types) { if (!t.FullName.Contains("PrivateImplementationDetails")) continue; foreach (var f in t.Fields) { if (f.Name != fname) continue; byte[] iv = f.InitialValue; Console.WriteLine("field " + f.Name + " len=" + iv.Length); for (int i = 0; i + 4 <= iv.Length; i += 4) { uint v = BitConverter.ToUInt32(iv, i); Console.WriteLine(" [{0,2}] = 0x{1:x8}", i / 4, v); } Console.WriteLine("hex: " + BitConverter.ToString(iv).Replace("-", "")); return; } } } Console.WriteLine("NOT FOUND"); } }