Вопрос CE в C++ помощь

Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2019
Сообщения
111
Реакции[?]
3
Поинты[?]
0
Добрый день, нужна глобальная подсказка. она поможет не только мне и еще 20-30% хакерам которые этого не знают (как и я)
есть готовый код на CE(Cheat Engine) и его нужно зделать в C++
есть метод у меня! но по некой причине (хз почему) игру крашит.

нужно CE сделать в C++ что б не крашило
мой метод для других функций не крашит в С++

а если делаю гуд мод в C++ так же то крашит....

а в СЕ запускаю то работает......



делаю по такому методу.


C++:
            if (bskill)
            {

                memtools::Patch((BYTE*)(moduleBase + 0x29CCC1C), (BYTE*)"\xEB\x45", 2);// âêëþ÷åíî
            }
            else {

                memtools::Patch((BYTE*)(moduleBase + 0x29CCC1C), (BYTE*)"\x72\x45", 2);// âêëþ÷åíî
              

            }



C:
[ENABLE]
aobscanmodule(aogodmode,UserAssembly.dll,48 8B 02 48 8D 4C 24 30 48 8B)
alloc(ngodmode,$1000,aogodmode)
alloc(aophp,$8)
label(rgodmode)
label(resgodmode)
ngodmode:
mov [aophp],rdx
resgodmode:
readmem(aogodmode,8)
jmp rgodmode
aogodmode:
jmp ngodmode
nop 3
rgodmode:
registersymbol(aogodmode resgodmode aophp)
aobscanmodule(aopinvis,UserAssembly.dll,C3 B0 01 48 8B 7C 24 30 48 8B 5C 24 38 48 83 C4 20 5E C3 32)
alloc(npinvis,$1000,aopinvis)
label(rpinvis)
label(respinvis)
npinvis:
cmp [aophp],rbx
mov al,01
jne @f
xor al,al
mov rdi,[rsp+30]
mov rbx,[rsp+38]
jmp rpinvis
respinvis:
readmem(aopinvis+01,7)
jmp rpinvis
aopinvis+01:
jmp npinvis
nop 2
rpinvis:
registersymbol(aopinvis respinvis)
[DISABLE]
aogodmode:
readmem(resgodmode,8)
aopinvis+01:
readmem(respinvis,7)
unregistersymbol(*)
dealloc(*)
 
Начинающий
Статус
Оффлайн
Регистрация
10 Фев 2019
Сообщения
111
Реакции[?]
3
Поинты[?]
0
есть еще 2 метода
C++:
void memtools::Patch(BYTE* dst, BYTE* src, unsigned int size)
{
    DWORD oldprotect;
    VirtualProtect( dst, size, PAGE_EXECUTE_READWRITE, &oldprotect);

    memcpy(dst, src, size);

    VirtualProtect( dst, size, oldprotect, &oldprotect);
}

void memtools::Nop(BYTE* dst, unsigned int size)
{
    DWORD oldprotect;
    VirtualProtect(dst, size, PAGE_EXECUTE_READWRITE, &oldprotect);

    memset(dst, 0x90, size);

    VirtualProtect(dst, size, oldprotect, &oldprotect);
}


может как то из их ?
 
Олдфаг
Статус
Оффлайн
Регистрация
4 Янв 2020
Сообщения
2,996
Реакции[?]
1,275
Поинты[?]
5K
есть еще 2 метода
C++:
void memtools::Patch(BYTE* dst, BYTE* src, unsigned int size)
{
    DWORD oldprotect;
    VirtualProtect( dst, size, PAGE_EXECUTE_READWRITE, &oldprotect);

    memcpy(dst, src, size);

    VirtualProtect( dst, size, oldprotect, &oldprotect);
}

void memtools::Nop(BYTE* dst, unsigned int size)
{
    DWORD oldprotect;
    VirtualProtect(dst, size, PAGE_EXECUTE_READWRITE, &oldprotect);

    memset(dst, 0x90, size);

    VirtualProtect(dst, size, oldprotect, &oldprotect);
}


может как то из их ?
А может просто найти смещения и базовые адреса и написать на винапи функциях?
 
Пользователь
Статус
Оффлайн
Регистрация
21 Окт 2019
Сообщения
82
Реакции[?]
41
Поинты[?]
13K
Я как бы знаю способ как сделать , что бы это было как в се ну почти, но только это уродство. юзайте minhook/ другой хук, можете свой сделать ,а тут на скрине ,я сделал так
S11123-01180136.jpg
лучше так не делать xD.
 
Сверху Снизу