Вопрос Шема итерация

Начинающий
Статус
Оффлайн
Регистрация
30 Мар 2020
Сообщения
324
Реакции[?]
24
Поинты[?]
12K
Крч пробую сейчас проитерировать поля у класса и не могу понять



Ведь MembersCount в данном случае это 0x528? Или 0x2C?

В моей итерации доходит до 100-го элемента и крашится( ну ошибка выскакивает точнее Access violation reading location 0xFFFFFFFFFFFFFFFF. )

На 101-м елементе крашится


C++:
0 ) Field m_CBodyComponent Offset 0x30
1 ) Field m_NetworkTransmitComponent Offset 0x38
2 ) Field m_nLastThinkTick Offset 0x2f8
3 ) Field m_pGameSceneNode Offset 0x300
4 ) Field m_pRenderComponent Offset 0x308
5 ) Field m_pCollision Offset 0x310
6 ) Field m_iMaxHealth Offset 0x318
7 ) Field m_iHealth Offset 0x31c

.....
.....


96 ) Field m_nResetEventsParity Offset 0x6c
97 ) Field m_hLastAnimEventSequence Offset 0x104
98 ) Field m_ClientSideAnimationListHandle Offset 0x108
100 ) Field °»aшы Offset 0xf6dc2a8c
 
Последнее редактирование:
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
779
Реакции[?]
331
Поинты[?]
63K
1681088403662.png
0x52 там мемберкаунт(0x528 это сайз класса, 0xC это количество статик мемберов)
C++:
    //maybe outdated
    void* self_ptr{};
    const char* class_name{};
    const char* module_name{};
    std::uint32_t sizeof_class{};
    std::uint16_t members_count{};
    std::uint16_t static_members_count{};
    std::uint16_t metadata_count{};
    std::uint8_t unk_4{};
    std::uint8_t parents_count{};
    std::uint16_t unk_5{};
    std::uint16_t unk_6{};
    MemberNode* members_node_mem{};
    StaticMemberNode* static_members_node_mem{};
    ParentNode* parents_node_mem{};
    void* unk_7{};
    MetaPropertyNode* meta_properties_mem{};
    CSchemaSystemTypeScope* scope{};
    CSchemaType_DeclaredClass* declared_class{};
    SchemaClassFlags_t class_flags{};
 
Начинающий
Статус
Оффлайн
Регистрация
30 Мар 2020
Сообщения
324
Реакции[?]
24
Поинты[?]
12K
Получается вот так


C++:
class FieldDescription
{
public:
    char *FieldName; //0x0000
    CSchemaType_Ptr* ptr; //0x0008
    uint32_t offset; //0x0010
    uint32_t unk; //0x0014
    char *unkptr; //0x0018
}; //Size: 0x020

class CSchemaClassInfo
{
public:
    uint64_t selfptr; //0x0000
    char *ClassName; //0x0008
    char *ModuleName; //0x0010
    uint32_t ClassSize; //0x0018
    uint16_t MembersCount; //0x001C
    uint16_t StaticMembersCount; //0x001E
    uint16_t MetaData; //0x0020
    uint16_t N00000A71; //0x0022
    uint16_t N00000A6E; //0x0024
    uint16_t N00000A74; //0x0026
    FieldDescription *FieldDescription; //0x0028
};
(если кому-то вдруг надо знать то m_iHealth = 0x31C / m_iMaxHealth = 0x318 )
 
Сверху Снизу