Начинающий
Начинающий
- Статус
- Оффлайн
- Регистрация
- 1 Ноя 2019
- Сообщения
- 3
- Реакции
- 0
Сразу прошу понять и простить, я только панда которая пытается разобраться.
Смотрел исходники читов, видел в них такую штуку, что вытаскивают интерфейс SchemaSystem_001 из schemasystem.dll, после чего способны вытащить некоторые смехы классов, к примеру C_BaseEntity из client.dll.
Есть у меня вот такой вот класс Interfaces, который хранит как раз в себе интерфесы (я не стал остальные прикладывать)
Есть у меня вот такой Schema.h который по моей логике вытаскивает схемы
Всё покрывал выводами в консоль, чтобы понимать на каком моменте всё умирает.
Запускаю - всё работает супер, но есть одно но.
Консоль пишет что-то вот такое
А дальше всё ломается.
Япредполагаю что всё ломается на моменте, когда я пытаюсь преобразовать мой Test1 в ClassDescription, но немного не понимаю что не так и как мне узнать что не так.
Буду очень признателень если кто-то меня вразумит и наставит на путь правильный
Смотрел исходники читов, видел в них такую штуку, что вытаскивают интерфейс SchemaSystem_001 из schemasystem.dll, после чего способны вытащить некоторые смехы классов, к примеру C_BaseEntity из client.dll.
Есть у меня вот такой вот класс Interfaces, который хранит как раз в себе интерфесы (я не стал остальные прикладывать)
C++:
#define ui unsigned long long
namespace Interfaces {
inline uintptr_t Schema = NULL;
typedef void* (*oCreateInterface)(const char*, int);
oCreateInterface pCreateInterface;
ui CreateInterface(const char* szModule, const char* szInterface) {
pCreateInterface = (oCreateInterface)GetProcAddress(GetModuleHandleA(szModule), "CreateInterface");
return (ui)pCreateInterface(szInterface, 0);
}
inline void InitInterfaces() {
Schema = CreateInterface("schemasystem.dll", "SchemaSystem_001");
}
}
Есть у меня вот такой Schema.h который по моей логике вытаскивает схемы
C++:
namespace Schema {
inline std::unordered_map<std::string, std::unordered_map<std::string, uintptr_t>> Netvars;
struct ClassDescription;
struct SchemaParent {
ui idk;
ClassDescription* parent;
};
struct ClassDescription {
ui idk;//0
ui classname;//8
ui modulename;//10
int sizeofclass;//18
short memberstoiterate;//1c
char pad[6];//20
ui MemberInfo;//28
ui idk2;//30
SchemaParent* parent;//38
};
struct SchemaTypeDescription {
ui idk;
ui name;
ui idk2;
};
struct MemberDescription {
ui name;
SchemaTypeDescription* schematypeptr;
int offset;
int idk;
ui idk2;
};
void SchemaDumpToMap(const char* _module, const char* _class) {
typedef uintptr_t(__fastcall* GetScopeFn)(uintptr_t schemasys, const char* _mod);
std::cout << "Shema: " << Interfaces::Schema << "\n";
ui Scope = ((ui(__fastcall*)(ui schemasys, const char* _mod, char** idk))
([I](ui[/I])(point+0x68)))(Interfaces::Schema, _module, NULL);
if (!Scope) { std::cout<<"No such scope!\n"; return; }
std::cout << "Scope "<< Scope<<"\n";
ui result = 0;
ui Test1 = ((ui(__fastcall*)(ui scope,ui [I]a2, const char[/I] _class))
([I](ui[/I])([I](ui[/I])(Scope)+0x10)))(Scope,&result, _class);
if (!Test1) { std::cout << "No such class "<<(ui)_class<<"\n"; return; }
std::cout << "Result: " << result << "\n";
std::cout << "ClassResult: " << Test1 << " ClassResultPointer: " << Test1 << "\n";
ClassDescription* a = (ClassDescription*)Test1;
label_1: {}
std::string className = (cc)a->classname;
std::cout << "Class name: " << className << "\n";
for (uintptr_t i = 0; i < a->memberstoiterate; i++) {
MemberDescription* z = (MemberDescription*)(a->MemberInfo + i * 0x20);
Netvars[className][(cc)z->name] = z->offset;
}
if (a->parent) { a = a->parent->parent; goto label_1; }
}
Всё покрывал выводами в консоль, чтобы понимать на каком моменте всё умирает.
Запускаю - всё работает супер, но есть одно но.
Консоль пишет что-то вот такое

А дальше всё ломается.
Япредполагаю что всё ломается на моменте, когда я пытаюсь преобразовать мой Test1 в ClassDescription, но немного не понимаю что не так и как мне узнать что не так.
Буду очень признателень если кто-то меня вразумит и наставит на путь правильный