C ++ Запись в процесс с защищенной памятью - PullRequest
0 голосов
/ 17 февраля 2019

Поэтому я решил заняться редактированием памяти, чтобы иметь возможность создавать больше инструментов для игры.Видя, что игра исправила веб-версию чита с помощью чит-движка или любого другого программного обеспечения для редактирования памяти, я решил попытаться создать инструмент для редактирования памяти самостоятельно, но с использованием NoxPlayer, эмулятора Android, посколькуЯ не сталкивался с этим типом проблемы прежде, чем сам чит-движок с редактированием памяти на Nox, так как память, скорее всего, защищена.Но с некоторыми изменениями настроек в чит-движке я смог редактировать память внутри игры на эмуляторе.

Дело в том, что с моим приложением C ++ оно может считывать память с захваченных адресов, ноон не может записывать память по адресам.

Поэтому мне было интересно, если кто-нибудь может помочь мне найти решение, позволяющее передать защищенную память в эмуляторе, чтобы иметь возможность изменять значения?

(Также предоставлю часть моего текущего кода ниже, хотя там это может и не понадобиться).

private: System::Void backgroundWorker3_DoWork(System::Object^  sender, System::ComponentModel::DoWorkEventArgs^  e) {
        button1->Text = "Stop Spoofing";
        string ac;
        MarshalString(sid->Text, ac); // made a function to convert system string to std string
        stringstream stream(ac);
        stream >> value; // setting value to write to memory
        HANDLE handle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, processID);
        while (true)
        {
            if (backgroundWorker3->CancellationPending == true)
            {
                e->Cancel = true;
                break;
            }
            else
            {
                if (DoesTxtExist())
                {
                    for (int i(0); i < address.size(); ++i)
                    {
                        WriteProcessMemory(handle, (LPVOID)address[i], &value, sizeof(value), 0);
                        ReadProcessMemory(handle, (PBYTE*)address[i], &readTest, sizeof(int), 0);
                    }
                    label1->Text = L"Spoofing ID: "+readTest.ToString()+" "+value.ToString();
                    // was doing something like this to check if the values changed, but of course they didn't.
                }
            }
        }
    }

1 Ответ

0 голосов
/ 17 февраля 2019

Используйте VirtualProtectEx(), чтобы изменить защиту памяти для записи до попыток записи.Открытие дескриптора с помощью PROCESS_ALL_ACCESS не делает автоматически доступной для записи всю память процесса.

...