Нет, LocalStore имеет значение NULL, потому что оно не инициализировано. Я предполагаю, что вы пытаетесь перехватить поле в LocalStore через функцию Update вне класса LocalStore.
Чтобы исправить ваш хук, инициализируйте LocalStore перед подключением поля.
недействительным *LocalStore; // ОБЪЯВЛЕНИЕ ГЛОБАЛЬНОЙ ПЕРЕМЕННОЙ
void (*old_update)(void *instance);
недействительное обновление (недействительное * экземпляр) {
if (instance != NULL) // ПРОВЕРЯЕМ, ЕСЛИ ЭКЗЕМПЛЯР НЕ NULL
{
LocalStore = *(void **) ((uint64_t)экземпляр + (LOCALSTORE OFFSET)); // ИНИЦИАЛИЗАЦИЯ LOCALSTORE
если (LocalStore == NULL) вернуть; //УДАЛЯЕМ БЕСПОЛЕЗНЫЕ ВЕЩИ
// ЗДЕСЬ ВЫ МОЖЕТЕ ПРИСОЕДИНИТЬСЯ К ПОЛЕ
*(int *) ((uint64_t) LocalStore + 0x3C) = 999;
LOGD("ПОЛЕ ПОДКЛЮЧЕНО");
}
old_update (экземпляр);
}
[/ЦИТИРОВАТЬ]
No, LocalStore is NULL because it's not initialized. I suppose that you're trying to hook field in LocalStore through Update function outside the LocalStore class.
To fix your hook initialize LocalStore before hooking the field
void *LocalStore; //DECLARING A GLOBAL VARIABLE
void (*old_update)(void *instance);
void update(void *instance) {
if (instance != NULL) //CHECK IF INSTANCE IS NOT NULL
{
LocalStore = *(void **) ((uint64_t)instance + (LOCALSTORE OFFSET)); //INITIAZLIZING LOCALSTORE
if (LocalStore == NULL) return; //REMOVE USELESS THINGS
//THIS IS WHERE YOU CAN HOOK THE FIELD
*(int *) ((uint64_t) LocalStore + 0x3C) = 999;
LOGD("FIELD HOOKED");
}
old_update(instance);
}
No, LocalStore is NULL because it's not initialized. I suppose that you're trying to hook field in LocalStore through Update function outside the LocalStore class.
To fix your hook initialize LocalStore before hooking the field
void *LocalStore; //DECLARING A GLOBAL VARIABLE
void (*old_update)(void *instance);
void update(void *instance) {
if (instance != NULL) //CHECK IF INSTANCE IS NOT NULL
{
LocalStore = *(void **) ((uint64_t)instance + (LOCALSTORE OFFSET)); //INITIAZLIZING LOCALSTORE
if (LocalStore == NULL) return; //REMOVE USELESS THINGS
//THIS IS WHERE YOU CAN HOOK THE FIELD
*(int *) ((uint64_t) LocalStore + 0x3C) = 999;
LOGD("FIELD HOOKED");
}
old_update(instance);
}
Please look, did I do it right?
No, LocalStore is NULL because it's not initialized. I suppose that you're trying to hook field in LocalStore through Update function outside the LocalStore class.
To fix your hook initialize LocalStore before hooking the field
void *LocalStore; //DECLARING A GLOBAL VARIABLE
void (*old_update)(void *instance);
void update(void *instance) {
if (instance != NULL) //CHECK IF INSTANCE IS NOT NULL
{
LocalStore = *(void **) ((uint64_t)instance + (LOCALSTORE OFFSET)); //INITIAZLIZING LOCALSTORE
if (LocalStore == NULL) return; //REMOVE USELESS THINGS
//THIS IS WHERE YOU CAN HOOK THE FIELD
*(int *) ((uint64_t) LocalStore + 0x3C) = 999;
LOGD("FIELD HOOKED");
}
old_update(instance);
}
void *LocalStore;
void (*old_update)(void *instance);
void update(void *instance) {
if (instance != NULL)
{
LocalStore = *(void **) ((uint64_t)instance + (0x3C));
if (LocalStore == NULL) return;
*(int *) ((uint64_t) LocalStore + 0x3C) = 999;
LOGD("FIELD HOOKED");
}
old_update(instance);
}
Please look, did I do it right?
No, LocalStore is NULL because it's not initialized. I suppose that you're trying to hook field in LocalStore through Update function outside the LocalStore class.
To fix your hook initialize LocalStore before hooking the field
void *LocalStore; //DECLARING A GLOBAL VARIABLE
void (*old_update)(void *instance);
void update(void *instance) {
if (instance != NULL) //CHECK IF INSTANCE IS NOT NULL
{
LocalStore = *(void **) ((uint64_t)instance + (LOCALSTORE OFFSET)); //INITIAZLIZING LOCALSTORE
if (LocalStore == NULL) return; //REMOVE USELESS THINGS
//THIS IS WHERE YOU CAN HOOK THE FIELD
*(int *) ((uint64_t) LocalStore + 0x3C) = 999;
LOGD("FIELD HOOKED");
}
old_update(instance);
}
void *LocalStore;
void (*old_update)(void *instance);
void update(void *instance) {
if (instance != NULL)
{
LocalStore = *(void **) ((uint64_t)instance + (0x3C));
if (LocalStore == NULL) return;
*(int *) ((uint64_t) LocalStore + 0x3C) = 999;
LOGD("FIELD HOOKED");
}
old_update(instance);
}
Please look, did I do it right?