C++ Вопрос Краш DLL Реверс-Инжиринг

Начинающий
Статус
Оффлайн
Регистрация
5 Янв 2024
Сообщения
40
Реакции[?]
4
Поинты[?]
6K
32бит, длл
перед инструкцией которая вычитает патроны из магазина(0x00622E86) у меня появляется вызов на функцию codecave
после вызова функции стоят 2 nop, после идёт код игры (начиная с 0x00622E8F)
в x32dbg смотрел вроде всё правильно, в том числе и функция
original:
Пожалуйста, авторизуйтесь для просмотра ссылки.

modify:
Пожалуйста, авторизуйтесь для просмотра ссылки.

codecave:
Пожалуйста, авторизуйтесь для просмотра ссылки.


но после выстрела патрона игра сразу крашит, вопрос: схуяле он не работает? (даже урбаничка работает)

C++:
#include <Windows.h>

DWORD* base_address;
DWORD* offset1;
DWORD* offset2;
DWORD* offset3;
DWORD* offset4;
DWORD* offset5;
DWORD* offset6;
DWORD* ammo_count;
DWORD ret_address = 0x00622E8F;

__declspec(naked) void codecave() {
    __asm {
        pushad
    }

    base_address = (DWORD*)0x00400000;
    offset1 = (DWORD*)(*base_address + 0x608F64);
    offset2 = (DWORD*)(*offset1 + 0x60);
    offset3 = (DWORD*)(*offset2 + 0x80);
    offset4 = (DWORD*)(*offset3 + 0x4);
    offset5 = (DWORD*)(*offset4 + 0x1B8);
    offset6 = (DWORD*)(*offset5 + 0x194);
    ammo_count = (DWORD*)(*offset6 + 0x8);
    *ammo_count = 30;

    __asm {
        popad
        mov edx, dword ptr ds : [esi + 76]
        cmp dword ptr ds : [edx + 88] , 0
        jmp ret_address
    }
}


BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
    DWORD protect_address;
    unsigned char* hook_location = (unsigned char*)0x00622E88;
    if (fdwReason == DLL_PROCESS_ATTACH) {
        VirtualProtect((void*)hook_location, 7, PAGE_EXECUTE_READWRITE, &protect_address);
        *hook_location = 0xE9;
        *(DWORD*)(hook_location + 1) = (DWORD)&codecave - ((DWORD)hook_location + 5);
        *(hook_location + 5) = 0x90;
        *(hook_location + 6) = 0x90;
    }
    return true;
}
 
Пользователь
Статус
Оффлайн
Регистрация
25 Окт 2023
Сообщения
76
Реакции[?]
28
Поинты[?]
25K
32бит, длл
перед инструкцией которая вычитает патроны из магазина(0x00622E86) у меня появляется вызов на функцию codecave
после вызова функции стоят 2 nop, после идёт код игры (начиная с 0x00622E8F)
в x32dbg смотрел вроде всё правильно, в том числе и функция
original:
Пожалуйста, авторизуйтесь для просмотра ссылки.

modify:
Пожалуйста, авторизуйтесь для просмотра ссылки.

codecave:
Пожалуйста, авторизуйтесь для просмотра ссылки.


но после выстрела патрона игра сразу крашит, вопрос: схуяле он не работает? (даже урбаничка работает)

C++:
#include <Windows.h>

DWORD* base_address;
DWORD* offset1;
DWORD* offset2;
DWORD* offset3;
DWORD* offset4;
DWORD* offset5;
DWORD* offset6;
DWORD* ammo_count;
DWORD ret_address = 0x00622E8F;

__declspec(naked) void codecave() {
    __asm {
        pushad
    }

    base_address = (DWORD*)0x00400000;
    offset1 = (DWORD*)(*base_address + 0x608F64);
    offset2 = (DWORD*)(*offset1 + 0x60);
    offset3 = (DWORD*)(*offset2 + 0x80);
    offset4 = (DWORD*)(*offset3 + 0x4);
    offset5 = (DWORD*)(*offset4 + 0x1B8);
    offset6 = (DWORD*)(*offset5 + 0x194);
    ammo_count = (DWORD*)(*offset6 + 0x8);
    *ammo_count = 30;

    __asm {
        popad
        mov edx, dword ptr ds : [esi + 76]
        cmp dword ptr ds : [edx + 88] , 0
        jmp ret_address
    }
}


BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
    DWORD protect_address;
    unsigned char* hook_location = (unsigned char*)0x00622E88;
    if (fdwReason == DLL_PROCESS_ATTACH) {
        VirtualProtect((void*)hook_location, 7, PAGE_EXECUTE_READWRITE, &protect_address);
        *hook_location = 0xE9;
        *(DWORD*)(hook_location + 1) = (DWORD)&codecave - ((DWORD)hook_location + 5);
        *(hook_location + 5) = 0x90;
        *(hook_location + 6) = 0x90;
    }
    return true;
}
поиграй с аттачнутым дебаггером, и найдешь место краша
 
Начинающий
Статус
Оффлайн
Регистрация
5 Янв 2024
Сообщения
40
Реакции[?]
4
Поинты[?]
6K
сука ты нахуя геймхакинг академи читаешь
тише
поиграй с аттачнутым дебаггером, и найдешь место краша
ок
сука ты нахуя геймхакинг академи читаешь
а что предлагаешь?
 
ппоршень
Пользователь
Статус
Оффлайн
Регистрация
15 Фев 2020
Сообщения
294
Реакции[?]
46
Поинты[?]
32K
32бит, длл
перед инструкцией которая вычитает патроны из магазина(0x00622E86) у меня появляется вызов на функцию codecave
после вызова функции стоят 2 nop, после идёт код игры (начиная с 0x00622E8F)
в x32dbg смотрел вроде всё правильно, в том числе и функция
original:
Пожалуйста, авторизуйтесь для просмотра ссылки.

modify:
Пожалуйста, авторизуйтесь для просмотра ссылки.

codecave:
Пожалуйста, авторизуйтесь для просмотра ссылки.


но после выстрела патрона игра сразу крашит, вопрос: схуяле он не работает? (даже урбаничка работает)

C++:
#include <Windows.h>

DWORD* base_address;
DWORD* offset1;
DWORD* offset2;
DWORD* offset3;
DWORD* offset4;
DWORD* offset5;
DWORD* offset6;
DWORD* ammo_count;
DWORD ret_address = 0x00622E8F;

__declspec(naked) void codecave() {
    __asm {
        pushad
    }

    base_address = (DWORD*)0x00400000;
    offset1 = (DWORD*)(*base_address + 0x608F64);
    offset2 = (DWORD*)(*offset1 + 0x60);
    offset3 = (DWORD*)(*offset2 + 0x80);
    offset4 = (DWORD*)(*offset3 + 0x4);
    offset5 = (DWORD*)(*offset4 + 0x1B8);
    offset6 = (DWORD*)(*offset5 + 0x194);
    ammo_count = (DWORD*)(*offset6 + 0x8);
    *ammo_count = 30;

    __asm {
        popad
        mov edx, dword ptr ds : [esi + 76]
        cmp dword ptr ds : [edx + 88] , 0
        jmp ret_address
    }
}


BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) {
    DWORD protect_address;
    unsigned char* hook_location = (unsigned char*)0x00622E88;
    if (fdwReason == DLL_PROCESS_ATTACH) {
        VirtualProtect((void*)hook_location, 7, PAGE_EXECUTE_READWRITE, &protect_address);
        *hook_location = 0xE9;
        *(DWORD*)(hook_location + 1) = (DWORD)&codecave - ((DWORD)hook_location + 5);
        *(hook_location + 5) = 0x90;
        *(hook_location + 6) = 0x90;
    }
    return true;
}
base_address = (DWORD*)0x00400000;
ВИРТУАЛЬНАЯ ПАМЯТЬ В АХУЕ
 
Начинающий
Статус
Оффлайн
Регистрация
5 Янв 2024
Сообщения
40
Реакции[?]
4
Поинты[?]
6K
Privatny p100 DT Airlag Break LC Teleport Exploit
Read Only
Статус
Оффлайн
Регистрация
27 Янв 2021
Сообщения
951
Реакции[?]
150
Поинты[?]
74K
АХАХАХАХАХ CODECAVE АХАХАХХАХАХАХА ЧЕЛ ТЫ
 
Начинающий
Статус
Оффлайн
Регистрация
5 Янв 2024
Сообщения
40
Реакции[?]
4
Поинты[?]
6K
Чё у тебя статик бейс адресс
почему нет? игра простенькая

upd.
как меня заебал этот alliedmodders, в закладки добавляет все мои темы и ставит ебаный попкорн будто еды у меня нет, займись делами не знаю, выйди на улицу, поздравь маму с 8 марта, посмотри аниме, поешь, поразговаривай с людьми, но отъебись от меня
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
5 Янв 2024
Сообщения
40
Реакции[?]
4
Поинты[?]
6K
Эксперт
Статус
Оффлайн
Регистрация
29 Мар 2021
Сообщения
1,596
Реакции[?]
603
Поинты[?]
42K
Начинающий
Статус
Оффлайн
Регистрация
5 Янв 2024
Сообщения
40
Реакции[?]
4
Поинты[?]
6K
ппоршень
Пользователь
Статус
Оффлайн
Регистрация
15 Фев 2020
Сообщения
294
Реакции[?]
46
Поинты[?]
32K
а что должен сделать по твоему?
как меня заебал этот alliedmodders, в закладки добавляет все мои темы и ставит ебаный попкорн будто еды у меня нет, займись делами не знаю, выйди на улицу, поздравь маму с 8 марта, посмотри аниме, поешь, поразговаривай с людьми, но отъебись от меня
 
Начинающий
Статус
Оффлайн
Регистрация
5 Янв 2024
Сообщения
40
Реакции[?]
4
Поинты[?]
6K
как меня заебал этот alliedmodders, в закладки добавляет все мои темы и ставит ебаный попкорн будто еды у меня нет, займись делами не знаю, выйди на улицу, поздравь маму с 8 марта, посмотри аниме, поешь, поразговаривай с людьми, но отъебись от меня
как меня заебал этот alliedmodders, в закладки добавляет все мои темы и ставит ебаный попкорн будто еды у меня нет, займись делами не знаю, выйди на улицу, поздравь маму с 8 марта, посмотри аниме, поешь, поразговаривай с людьми, но отъебись от меня
 
Сверху Снизу