Onaylı Üye
C++:
#include <Windows.h>
#include <iostream>
#include <Psapi.h>
#include <vector>
using namespace std;
int main()
{
int PID;
label1:
cout << "Enter PID: ";
cin >> PID;
HANDLE hProc;
if (!OpenProcess(PROCESS_VM_READ, false, PID)) {
cout << "Error." << endl;
goto label1;
}
int val;
cout << "Enter value: ";
cin >> val;
SYSTEM_INFO si;
GetSystemInfo(&si);
MEMORY_BASIC_INFORMATION info;
DWORD p = 0;
std::vector<char> chunk;
while (p < (DWORD)si.lpMaximumApplicationAddress) {
if (VirtualQueryEx(hProc, (LPCVOID)p, &info, sizeof(info)) == sizeof(info))
{
p = (DWORD)info.BaseAddress;
SIZE_T bytesRead;
chunk.resize(info.RegionSize);
if (ReadProcessMemory(hProc, (LPCVOID)p, &chunk[0], info.RegionSize, &bytesRead))
{
for (size_t i = 0; i < (bytesRead - 4); ++i)
{
if (memcmp(&val, &chunk[i], 4) == 0)
{
printf("0x%08X\n", (DWORD)p + i);
}
}
}
}
}
while (true);
}