https://github.com/MISTERGONWIK/efc/blob/master/sampBase.hppМожно, пожалуйста, пример, как через dll написать что-нибудь в чат?
https://github.com/MISTERGONWIK/efc/blob/master/sampBase.hppМожно, пожалуйста, пример, как через dll написать что-нибудь в чат?
потому что хуйню написал. читаешь вектор из свой программы, а потом в ReadProcessMemory пытаешься запихать этот вектор вместо адресаКак правильно сделать? А то не дает CVector в LPCVOID преобразовать.C++:CVector vecSpeed = *(CVector*)((pPed) + 0x44); ReadProcessMemory(pHandle, (LPCVOID)vecSpeed, &vecSpeed, 4, 0);
потому что хуйню написал. читаешь вектор из свой программы, а потом в ReadProcessMemory пытаешься запихать этот вектор вместо адреса
DWORD vPos = (DWORD)((pPed) + 0x14);
ReadProcessMemory(pHandle, (LPCVOID)vPos, &vPos, 4, 0);
конечно не правильно. загугли "ReadProcessMemory example c++"как мне его прочитать? что бы потом с ним мат. действия выполнять
Это получается тоже неправильно ?C++:DWORD vPos = (DWORD)((pPed) + 0x14); ReadProcessMemory(pHandle, (LPCVOID)vPos, &vPos, 4, 0);
конечно не правильно. загугли "ReadProcessMemory example c++"
CVector vecSpeed;// = *(CVector*)((pPed)+0x44);
ReadProcessMemory(pHandle, (LPCVOID)((pPed)+0x44), &vecSpeed, 4, 0);
Я то как раз понимаю. И размер 12 байт у CVector, а не 4.ты понимаешь что это EXE приложение?
То что ты сказал, что vPos тоже не правильно , оно правильно 100%
Вот можно сказать в чем трабл и был. Размер не знал что изменять надо ) . БлагодарюЯ то как раз понимаю. И размер 12 байт у CVector, а не 4.
OpenProcessКак адресс игры получить?
char Hostname() {
ReadProcessMemory(pHandle, (LPVOID)(SAMPDLLBASE + 0x21A0F8), (LPVOID)&Out, sizeof(Out), NULL);
char ServerString[128];
ReadProcessMemory(pHandle, (LPVOID)(Out+ 0x121), &ServerString, 128, NULL);
cout << ServerString << endl;
return ServerString[128];
}
printf("%s",Hostname());
Вызвано исключение по адресу 0x6D6D2E47 (ucrtbase.dll) в API.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFFFFFFD8.
Если для этого исключения имеется обработчик, выполнение программы может быть продолжено безопасно.
хочу сделать это функцией
std::string Hostname() {
ReadProcessMemory(pHandle, (LPVOID)(SAMPDLLBASE + 0x21A0F8), (LPVOID)&Out, sizeof(Out), NULL);
char ServerString[128];
ReadProcessMemory(pHandle, (LPVOID)(Out+ 0x121), &ServerString, 128, NULL);
cout << ServerString << endl;
return ServerString;
}
c.str() не обязателен оказался, пока решил оставить через указатель. Не знаю конечно как лучше , но все равно спасибо!Вывод: cout << Hostname() << std::endl;C++:std::string Hostname() { ReadProcessMemory(pHandle, (LPVOID)(SAMPDLLBASE + 0x21A0F8), (LPVOID)&Out, sizeof(Out), NULL); char ServerString[128]; ReadProcessMemory(pHandle, (LPVOID)(Out+ 0x121), &ServerString, 128, NULL); cout << ServerString << endl; return ServerString; }
Либое, если хочешь через printf, то printf(Hostname().c_str());
указатель возвращай