Другое С/С++ Вопрос - Ответ

MeG@LaDo[N] ^_^

Известный
280
316
  • Нравится
Реакции: ARMOR

мистер вселенная

Известный
22
4
1667228841088.png

во дела
1667228849371.png
 

Musaigen

abobusnik
Проверенный
1,585
1,309
Посмотреть вложение 175463
Вот адрес смещения, если я правильно понял.
Посмотреть вложение 175464
я делаю так и по итогу у меня вот че за хуйня
Посмотреть вложение 175465
Посмотреть вложение 175466
Замени адрес где строка используется, чтобы такого не было.
 

x301

Новичок
11
5
C++:
Utils::Memory::MemoryFill(PatchAddressFirst, 0x90, 6, true); // Off Vehicles Check
Utils::Memory::MemoryFill(PatchAddressSecond, 0x90, 6, true); // Off Vehicles Check

Помогите исправить ошибку: имя, за которым следует выражение "::", должно определять класс или пространство имен
 
Последнее редактирование:
  • Эм
Реакции: Z3roKwq

MeG@LaDo[N] ^_^

Известный
280
316
C++:
Utils::Memory::MemoryFill(PatchAddressFirst, 0x90, 6, true); // Off Vehicles Check
Utils::Memory::MemoryFill(PatchAddressSecond, 0x90, 6, true); // Off Vehicles Check

Помогите исправить ошибку: имя, за которым следует выражение "::", должно определять класс или пространство имен
изучи основы плюсов бро
 
  • Нравится
Реакции: Ltall

ARMOR

kjor32 is legend
Модератор
4,847
6,100
Пытаюсь хукнуть диалоги на чистых плюсах.
Возник попрос как записывать такое значение из стека при его вытаскивании:
1667237470845.png

типо
C++:
mov eax, [esp + -0x0C]
mov eax, [esp + -0x08]
Или как?
 
  • Нравится
Реакции: MeG@LaDo[N] ^_^

RTD

Нестандартное звание
Модератор
391
414
Пытаюсь хукнуть диалоги на чистых плюсах.
Возник попрос как записывать такое значение из стека при его вытаскивании:
Посмотреть вложение 175525
типо
C++:
mov eax, [esp + -0x0C]
mov eax, [esp + -0x08]
Или как?
Чистые плюсы это в твоем понимании обмазаться асемблером? Напиши прототип и не еби мозги
 
  • Вау
Реакции: #Northn и Z3roKwq

ARMOR

kjor32 is legend
Модератор
4,847
6,100
Чистые плюсы это в твоем понимании обмазаться асемблером? Напиши прототип и не еби мозги
Я делаю jmp хук по гайду кинча
Только ставлю прототип и асемблер от диалогов.

Код:
C++:
void dialogHook(void* pDialog, uint16_t wID, uint8_t iStyle, const char* szCaption, const char* szText, const char* szButton1, const char* szButton2, BOOL bSend) {
    AddMessageJumpQ("~r~Hello from blast.hk", 5000, 0, false);
}

void __declspec(naked) HOOK_Raw_Dialog(void) {
    static void* pDialog;
    static int wId;
    static int iStyle;
    static const char* szCaption;
    static const char* szText;
    static const char* szButton1;
    static const char* szButton2;
    static BOOL bSend;
    __asm {
        // Вытаскиваем все аргументы со стека
        mov eax, [esp + -0x0C]
        mov wId, eax
        mov eax, [esp + -0x08]
        mov iStyle, eax
        mov eax, [esp + 0x04]
        mov szCaption, eax
        mov eax, [esp + 0x08]
        mov szText, eax
        mov eax, [esp + 0x0C]
        mov szButton1, eax
        mov eax, [esp + 0x10]
        mov szButton2, eax
        mov eax, [esp + 0x1C]
        mov bSend, eax
        pushad // Сохраняем все регистры
    }

    dialogHook(pDialog, wId, iStyle, szCaption, szText, szButton1, szButton2, bSend);

    __asm {
        popad // вытаскиваем сохраненные регистры
        // Прыгаем в трамплин для продолжения исполнения. Если не нужно продолжать исполнение - нужно поставить опкод ret
        jmp pOriginalFunction
    }
}
 

RTD

Нестандартное звание
Модератор
391
414
Я делаю jmp хук по гайду кинча
Только ставлю прототип и асемблер от диалогов.

Код:
C++:
void dialogHook(void* pDialog, uint16_t wID, uint8_t iStyle, const char* szCaption, const char* szText, const char* szButton1, const char* szButton2, BOOL bSend) {
    AddMessageJumpQ("~r~Hello from blast.hk", 5000, 0, false);
}

void __declspec(naked) HOOK_Raw_Dialog(void) {
    static void* pDialog;
    static int wId;
    static int iStyle;
    static const char* szCaption;
    static const char* szText;
    static const char* szButton1;
    static const char* szButton2;
    static BOOL bSend;
    __asm {
        // Вытаскиваем все аргументы со стека
        mov eax, [esp + -0x0C]
        mov wId, eax
        mov eax, [esp + -0x08]
        mov iStyle, eax
        mov eax, [esp + 0x04]
        mov szCaption, eax
        mov eax, [esp + 0x08]
        mov szText, eax
        mov eax, [esp + 0x0C]
        mov szButton1, eax
        mov eax, [esp + 0x10]
        mov szButton2, eax
        mov eax, [esp + 0x1C]
        mov bSend, eax
        pushad // Сохраняем все регистры
    }

    dialogHook(pDialog, wId, iStyle, szCaption, szText, szButton1, szButton2, bSend);

    __asm {
        popad // вытаскиваем сохраненные регистры
        // Прыгаем в трамплин для продолжения исполнения. Если не нужно продолжать исполнение - нужно поставить опкод ret
        jmp pOriginalFunction
    }
}
msvc компиль?
C++:
void __fastcall dialogHook(void* pDialog, void* fastcallshit, uint16_t wID, uint8_t iStyle, const char* szCaption, const char* szText, const char* szButton1, const char* szButton2, BOOL bSend) {
    AddMessageJumpQ("~r~Hello from blast.hk", 5000, 0, false);
    reinterpret_cast<decltype(dialogHook)*>(pOriginalFunction)(pDialog, fastcallshit, wID, iStyle, "Kek", szText, szButton1, szButton2, bSend); //decltype потому что мне лень писать...
}
 
  • Вау
Реакции: #Northn