Skip to content

Instantly share code, notes, and snippets.

@stevemk14ebr
Created September 24, 2020 14:59
Show Gist options
  • Save stevemk14ebr/ed62107544f5942be9816652ab773392 to your computer and use it in GitHub Desktop.
Save stevemk14ebr/ed62107544f5942be9816652ab773392 to your computer and use it in GitHub Desktop.
RTTI Class layout + Reclass.Net save
// Created with ReClass.NET 1.2 by KN4CK3R
class VFunc_Min8 // this is found at first virtual function - sizeof(void*)
{
public:
class RTTICompleteObjectLocator *m_RTTICompleteObjectLocator; //0x0000
}; //Size: 0x0004
class RTTICompleteObjectLocator
{
public:
uint32_t Signature; //0x0000
uint32_t Offset; //0x0004
uint32_t cdOffset; //0x0008
uint32_t TypeDescriptorOffset; //0x000C These are offsets from base
uint32_t ClassDescriptorOffset; //0x0010 To RTTIClassHierarchyDescriptor
uint32_t ObjectBaseOffset; //0x0014
}; //Size: 0x0018
class RTTIClassHierarchyDescriptor
{
public:
uint32_t m_Signature; //0x0000
uint32_t m_Attributes; //0x0004
uint32_t m_NumBaseClasses; //0x0008
uint32_t m_BaseClassArrayOffset; //0x000C Offset to BaseClassArray
}; //Size: 0x0010
class BaseClassArray
{
public:
uint32_t m_classArray[5]; //0x0000
}; //Size: 0x0014
class RTTIBaseClassDescriptor
{
public:
uint32_t m_TypeDescriptorOffset; //0x0000
uint32_t m_ContainedBases; //0x0004
uint32_t m_Attributes; //0x0008
}; //Size: 0x000C
class DisplacementContainer
{
public:
uint32_t m_mdisp; //0x0000
uint32_t m_pdisp; //0x0004
uint32_t m_vdisp; //0x0008
}; //Size: 0x000C
class TypeDescriptor
{
public:
int64_t m_VTable; //0x0000
int64_t m_Data; //0x0008
char m_Name[8]; //0x0010
}; //Size: 0x0018
<?xml version="1.0" ?>
<ReClass>
<!--reclass 2014-->
<TypeDef tdHex="char" tdInt32="__int32" tdInt16="__int16" tdInt8="__int8" tdDWORD="DWORD" tdWORD="WORD" tdBYTE="BYTE" tdVec2="D3DXVECTOR2" tdVec3="D3DXVECTOR3" tdQuat="D3DXVECTOR4" tdMatrix="D3DXMATRIX" />
<Header Text="" />
<Footer Text="" />
<Notes Text="" />
<Class Name="VFunc_Min8" Type="28" Comment="" Offset="1073029616" strOffset="13FF521F0" Code="">
<Node Name="m_RTTICompleteObjectLocator" Type="8" Size="8" bHidden="0" Comment="" Pointer="RTTICompleteObjectLocator" />
</Class>
<Class Name="RTTICompleteObjectLocator" Type="28" Comment="" Offset="1073741824" strOffset="140000000" Code="">
<Node Name="Signature" Type="15" Size="4" bHidden="0" Comment="" />
<Node Name="Offset" Type="15" Size="4" bHidden="0" Comment="" />
<Node Name="cdOffset" Type="15" Size="4" bHidden="0" Comment="" />
<Node Name="TypeDescriptorOffset" Type="15" Size="4" bHidden="0" Comment="These are offsets from base" />
<Node Name="ClassDescriptorOffset" Type="15" Size="4" bHidden="0" Comment="To RTTIClassHierarchyDescriptor" />
<Node Name="ObjectBaseOffset" Type="15" Size="4" bHidden="0" Comment="" />
</Class>
<Class Name="RTTIClassHierarchyDescriptor" Type="28" Comment="" Offset="91165" strOffset="1641D" Code="">
<Node Name="m_Signature" Type="15" Size="4" bHidden="0" Comment="" />
<Node Name="m_Attributes" Type="15" Size="4" bHidden="0" Comment="" />
<Node Name="m_NumBaseClasses" Type="15" Size="4" bHidden="0" Comment="" />
<Node Name="m_BaseClassArrayOffset" Type="15" Size="4" bHidden="0" Comment="Offset to BaseClassArray" />
</Class>
<Class Name="BaseClassArray" Type="28" Comment="" Offset="1072112488" strOffset="13FE72368" Code="">
<Node Name="m_Class1" Type="15" Size="4" bHidden="0" Comment="" />
<Node Name="m_Class2" Type="15" Size="4" bHidden="0" Comment="" />
<Node Name="m_Class3" Type="15" Size="4" bHidden="0" Comment="...Etc" />
</Class>
<Class Name="RTTIBaseClassDescriptor" Type="28" Comment="" Offset="1072112560" strOffset="13FE723B0" Code="">
<Node Name="m_TypeDescriptorOffset" Type="15" Size="4" bHidden="0" Comment="" />
<Node Name="m_ContainedBases" Type="15" Size="4" bHidden="0" Comment="" />
<Node Name="m_DisplacementContainer" Type="1" Size="12" bHidden="0" Comment="" Instance="DisplacementContainer" />
<Node Name="m_Attributes" Type="15" Size="4" bHidden="0" Comment="" />
</Class>
<Class Name="DisplacementContainer" Type="28" Comment="" Offset="1073741824" strOffset="140000000" Code="">
<Node Name="m_mdisp" Type="15" Size="4" bHidden="0" Comment="" />
<Node Name="m_pdisp" Type="15" Size="4" bHidden="0" Comment="" />
<Node Name="m_vdisp" Type="15" Size="4" bHidden="0" Comment="" />
</Class>
<Class Name="TypeDescriptor" Type="28" Comment="" Offset="1072115832" strOffset="13FE73078" Code="">
<Node Name="m_VTable" Type="9" Size="8" bHidden="0" Comment="" />
<Node Name="m_Data" Type="9" Size="8" bHidden="0" Comment="" />
<Node Name="m_Name" Type="18" Size="8" bHidden="0" Comment="" />
</Class>
</ReClass>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment