enet-validator/tools/GetTable.cs

29 lines
1.1 KiB
C#
Raw Normal View History

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");
}
}