|
|
@ -29,7 +29,7 @@ namespace AnimeSoftware.Offsets |
|
|
|
} |
|
|
|
} |
|
|
|
return hashtable; |
|
|
|
return hashtable; |
|
|
|
} |
|
|
|
} |
|
|
|
public unsafe static Hashtable DumpTable(RecvTable* table) |
|
|
|
public unsafe static Hashtable DumpTable(RecvTable* table, int offset = 0) |
|
|
|
{ |
|
|
|
{ |
|
|
|
Hashtable hashtable = new Hashtable(); |
|
|
|
Hashtable hashtable = new Hashtable(); |
|
|
|
for (int i = 0; i < table->GetPropsCount(); i++) |
|
|
|
for (int i = 0; i < table->GetPropsCount(); i++) |
|
|
@ -42,11 +42,11 @@ namespace AnimeSoftware.Offsets |
|
|
|
continue; |
|
|
|
continue; |
|
|
|
|
|
|
|
|
|
|
|
if (!hashtable.ContainsKey( prop->GetName())) |
|
|
|
if (!hashtable.ContainsKey( prop->GetName())) |
|
|
|
hashtable.Add(prop->GetName(), prop->GetOffset()); |
|
|
|
hashtable.Add(prop->GetName(), prop->GetOffset() + offset); |
|
|
|
|
|
|
|
|
|
|
|
if (prop->GetDataTable() != null) |
|
|
|
if (prop->GetDataTable() != null) |
|
|
|
{ |
|
|
|
{ |
|
|
|
foreach (DictionaryEntry entry in DumpTable(prop->GetDataTable())) |
|
|
|
foreach (DictionaryEntry entry in DumpTable(prop->GetDataTable(), prop->GetOffset() + offset)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (!hashtable.ContainsKey(entry.Key)) |
|
|
|
if (!hashtable.ContainsKey(entry.Key)) |
|
|
|
hashtable.Add(entry.Key, entry.Value); |
|
|
|
hashtable.Add(entry.Key, entry.Value); |
|
|
@ -58,45 +58,45 @@ namespace AnimeSoftware.Offsets |
|
|
|
|
|
|
|
|
|
|
|
#region Debug |
|
|
|
#region Debug |
|
|
|
|
|
|
|
|
|
|
|
public unsafe static void DumpTable(RecvTable* table, int depth) |
|
|
|
//public unsafe static void DumpTable(RecvTable* table, int depth) |
|
|
|
{ |
|
|
|
//{ |
|
|
|
for (int i = 0; i < table->GetPropsCount(); i++) |
|
|
|
// for (int i = 0; i < table->GetPropsCount(); i++) |
|
|
|
{ |
|
|
|
// { |
|
|
|
RecvProp* prop = (RecvProp*)((IntPtr)table->GetRecvProps() + i * sizeof(RecvProp)); |
|
|
|
// RecvProp* prop = (RecvProp*)((IntPtr)table->GetRecvProps() + i * sizeof(RecvProp)); |
|
|
|
|
|
|
|
// |
|
|
|
try |
|
|
|
// try |
|
|
|
{ |
|
|
|
// { |
|
|
|
if (prop == null) |
|
|
|
// if (prop == null) |
|
|
|
continue; |
|
|
|
// continue; |
|
|
|
if (prop->GetName().Contains("baseclass") || prop->GetName().StartsWith("0") || prop->GetName().StartsWith("1") || prop->GetName().StartsWith("2")) |
|
|
|
// if (prop->GetName().Contains("baseclass") || prop->GetName().StartsWith("0") || prop->GetName().StartsWith("1") || prop->GetName().StartsWith("2")) |
|
|
|
continue; |
|
|
|
// continue; |
|
|
|
|
|
|
|
// |
|
|
|
Console.WriteLine(new string(' ', depth * 2) + prop->GetName() + " 0x" + prop->GetOffset().ToString("X")); |
|
|
|
// Console.WriteLine(new string(' ', depth * 2) + prop->GetName() + " 0x" + prop->GetOffset().ToString("X")); |
|
|
|
|
|
|
|
// |
|
|
|
if (prop->GetDataTable() != null) |
|
|
|
// if (prop->GetDataTable() != null) |
|
|
|
{ |
|
|
|
// { |
|
|
|
DumpTable(prop->GetDataTable(), depth + 1); |
|
|
|
// DumpTable(prop->GetDataTable(), depth + 1); |
|
|
|
} |
|
|
|
// } |
|
|
|
} |
|
|
|
// } |
|
|
|
catch (Exception ex) |
|
|
|
// catch (Exception ex) |
|
|
|
{ |
|
|
|
// { |
|
|
|
|
|
|
|
// |
|
|
|
Console.WriteLine(((IntPtr)prop).ToString("X")); |
|
|
|
// Console.WriteLine(((IntPtr)prop).ToString("X")); |
|
|
|
Console.WriteLine(ex.ToString()); |
|
|
|
// Console.WriteLine(ex.ToString()); |
|
|
|
} |
|
|
|
// } |
|
|
|
|
|
|
|
// |
|
|
|
} |
|
|
|
// } |
|
|
|
} |
|
|
|
//} |
|
|
|
public unsafe static void DebugFullDump() |
|
|
|
//public unsafe static void DebugFullDump() |
|
|
|
{ |
|
|
|
//{ |
|
|
|
for (ClientClass* i = (ClientClass*)(Memory.Client + signatures.dwGetAllClasses); i != null; i = i->Next()) |
|
|
|
// for (ClientClass* i = (ClientClass*)(Memory.Client + signatures.dwGetAllClasses); i != null; i = i->Next()) |
|
|
|
{ |
|
|
|
// { |
|
|
|
Console.WriteLine(i->GetName()); |
|
|
|
// Console.WriteLine(i->GetName()); |
|
|
|
Console.WriteLine("__" + i->GetRecvTable()->GetName()); |
|
|
|
// Console.WriteLine("__" + i->GetRecvTable()->GetName()); |
|
|
|
DumpTable(i->GetRecvTable(), 2); |
|
|
|
// DumpTable(i->GetRecvTable(), 2); |
|
|
|
|
|
|
|
// |
|
|
|
} |
|
|
|
// } |
|
|
|
} |
|
|
|
//} |
|
|
|
|
|
|
|
|
|
|
|
#endregion |
|
|
|
#endregion |
|
|
|
} |
|
|
|
} |
|
|
|