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

#Rin

Известный
Всефорумный модератор
1,214
1,036
Ребзи, возник вопрос:
Есть игра (BF4)
Я нашёл адрес функции, которую нужно занопать, но я не могу это сделать, пишет "Попытка чтения или записи в защищенную память. Это часто свидетельствует о том, что другая память повреждена." Шо с этим делать?
VirtualProtect
Ставишь доступ на запись в память, после нопания, возвращаешь старые права доступа.
64 разрядному адресу
Че?
 

nt_qwark

Участник
30
1
VirtualProtect
Ставишь доступ на запись в память, после нопания, возвращаешь старые права доступа.

Че?
Это тут не причём, проверил

0x1409B8734 Попробуй по такому адресу что то записать, хуй чё выйдет

У 64 разрядных процессов адреса памяти достигают 8 байт, вместо 4ёх

И еще вопрос: в чём хранить собственно сами оффсеты (адреса)?
c#

А блять ясно, я не полностью выставил цель платформы: x64, из за этого intptr был размером в 4, вместо 8) Можете не отвечать на мою хуйню
 
Последнее редактирование модератором:

Azller Lollison

я узбек
Друг
1,342
2,266
как получить позицию игрока по его иду? как проверить что локальный игрок в машине за рулем?
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
из массива stRemotePlayer достань объект с id как у нужного игрока а оттуда достань stRemotePlayerData а там уже fOnFootPos[3];

CPed +0x46C = [dword] Проверка игрока:
  • 0 = в воздухе/воде
  • 1 = в машине

а если именно водителя надо то свой cped сравни с cped водителя, он в CVehicle находится
 
У

Удалённый пользователь 123482

Гость
Как можно проверить отжатие клавиши в консольном приложение без getch() и без зависания во время зажатости?
 

SR_team

like pancake
BH Team
4,720
6,365
Я пробовал создавать второй поток и делать в нем цикл с проверкой на отжатие, тк пока зажата программа всеравно фризится
наоборот. Обработку клавишь оставь в основном потоке, а логику вынеси в отдельный поток
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
второй поток зацикли
 

SR_team

like pancake
BH Team
4,720
6,365
Ничего не пишется, в том числе и с клавиатуры.
C++:
#include <windows.h>
#include <iostream>
#pragma comment(lib,"User32.lib")
using namespace std;
static bool g_Active = false;

DWORD WINAPI proizv(PVOID Parametr)
{
    if (g_Active)
        cout << "1337";
    return 0;
}

void main()
{
    DWORD idThread, dwThrdParam = 1;
    HANDLE h1;
    h1 = CreateThread(NULL, 0, proizv, &dwThrdParam, 0, &idThread);

    while (true)
    {
        if (GetAsyncKeyState(81))
        {
            while (!GetAsyncKeyState(81))
            {
                g_Active = true;
            }
        }
    }
}
пиши в основном потоке. Используй синхронизацию
 

LUCHARE

Известный
Друг
545
687
Ничего не пишется, в том числе и с клавиатуры.
C++:
#include <windows.h>
#include <iostream>
#pragma comment(lib,"User32.lib")
using namespace std;
static bool g_Active = false;

DWORD WINAPI proizv(PVOID Parametr)
{
    if (g_Active)
        cout << "1337";
    return 0;
}

void main()
{
    DWORD idThread, dwThrdParam = 1;
    HANDLE h1;
    h1 = CreateThread(NULL, 0, proizv, &dwThrdParam, 0, &idThread);

    while (true)
    {
        if (GetAsyncKeyState(81))
        {
            while (!GetAsyncKeyState(81))
            {
                g_Active = true;
            }
        }
    }
}
MSDN написал(а):
If the most significant bit is set, the key is down, and if the least significant bit is set, the key was pressed after the previous call to GetAsyncKeyState.
юзай & с GetAsyncKeyState
 

madrasso

Потрачен
883
324
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Приветы, в общем недавно начал учить С++, до этого изучал ахк.

На словах не знаю, как точно объяснить, но на примере ахк, покажу пример:
C++:
#NoEnv
#Persistent
#Include samp-udf.ahk
chat := A_MyDocuments "/GTA San Andreas User Files/SAMP/chatlog.txt"
Loop,
{
    FileRead, chatlog, % chat
    if (RegExMatch(chatlog, ".*Администратор (.*)\[.*\]: (.*)", chm)) {
        nick := getUserName()
        serv := getServerName()
        FileAppend, %nick% - %serv% - %chm1% - %chm2%
    }
}


Как сделать подобное на C++ .sf? Мне говорили о хуках, но каких точно я не понял.
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
в samp.dll есть функция добавления смс в чат, она вызывается в функции добавления дебаг смс в чат, которую легко найти в телах самп команд (headmove fpslimit и тд) внедряешься туда или хукаешь и там будет текст