【发布时间】:2020-01-10 08:36:45
【问题描述】:
所以我决定开始进行内存编辑,以便能够为游戏制作更多工具。看到游戏已经通过使用作弊引擎和或任何其他内存编辑软件修补了网络版本的作弊,我决定尝试自己制作一个内存编辑工具,但使用 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.
}
}
}
}
【问题讨论】:
标签: c++ memory c++-cli protection