29 lines
1.1 KiB
C#
29 lines
1.1 KiB
C#
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");
|
|
}
|
|
}
|