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

Pakulichev

Software Developer & System Administrator
Друг
1,789
2,133
Последнее редактирование:

Pakulichev

Software Developer & System Administrator
Друг
1,789
2,133
@mrdiimax
Всё работает, нужно было от имени администратора запустить. Исходный код ниже.
main.cpp:
#include <iostream>
#include <Windows.h>

int main()
{
    HWND hGTAWindow = FindWindow(NULL, L"GTA:SA:MP");
    DWORD pId;
    GetWindowThreadProcessId(hGTAWindow, &pId);
    HANDLE hGTA = OpenProcess(PROCESS_VM_READ, TRUE, pId);
    DWORD plPtr;
    float plHealth;
    while (true)
    {
        ReadProcessMemory(hGTA, (LPCVOID)0xB6F5F0, &plPtr, sizeof plPtr, NULL);
        ReadProcessMemory(hGTA, (LPCVOID)(plPtr + 0x540), &plHealth, sizeof plHealth, NULL);
        std::cout << "plHealth " << plHealth << std::endl;
        Sleep(1000);
    }
    CloseHandle(hGTA);
    return 0;
}
 
  • Нравится
Реакции: mrdiimax

Ranto

Участник
45
1
43347

Выдаёт такую ошибку при инжекте, как пофиксить?
 

Gafask

Участник
137
13
Как правильно считать char из адреса памяти а точнее как правильно записать текст из памяти в формате текста . Типа там вроде нужно *char [сюда количество символов +1] XZ = Тут уже адрес и тд . Типа сначала объявить char XZ ; или char [3 ]XZ; - это вроде не так , float и тд вроде легко а тут чот не как .
 

Cake_

Известный
Проверенный
263
313
Кто-нибудь знает, как вызвать SCM функцию по опкоду?
Если я правильно тебя понял то тебе нужен сам адрес вызова нужной функции ( опкода ) Ниже пример вызова текста-подсказки
C++:
#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0
void AddMessageJumpQ(char *text, unsigned int time, unsigned short flag, bool bPreviousBrief)
{
    ((void(__cdecl *)(char *, unsigned int, unsigned short, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
}
Если юзаешь сф апи то там есть callOpcode()
 

Gafask

Участник
137
13
Как пример считывания текста из адреса памяти игры. Который в cheat engine находишь. Там просто как я понял надо указывать размер ну количество символов.
 
Последнее редактирование:

_=Gigant=_

Известный
134
191

Musaigen

abobusnik
Проверенный
1,583
1,302
Как проверить установлен ли уже на адрес памяти хук через функции HookInstall, HookInstallCall?
 

ALF

Известный
Проверенный
320
537
Как проверить установлен ли уже на адрес памяти хук через функции HookInstall, HookInstallCall?
сразу говорю, вариант не лучший и я не советую это использовать, но в большинстве простых ситуаций этого достаточно
C++:
// 0xE8 - call
// 0xE9 - jmp
if (*reinterpret_cast<BYTE *>(address) == 0xE9)
{
// do something
}
 

Gafask

Участник
137
13
Как выполнить проверку(if) с char ?
if (XZ == "DA PRIVET")
просто либо я не так проверяю либо не правильно считываю адрес из памяти .