void changeDoubles(double fromDouble, double toDouble, vector<int> addresses) {
double changeVal = toDouble;
for (int x = 0; x < addresses.size(); x++) {
double getVal;
int g2g = ReadProcessMemory(phandle,(void*)addresses[x],&getVal,8,0);
if (g2g != 0) {
if (getVal == fromDouble) {
cout << "Changed: " << hex << addresses[x] << endl;
WriteProcessMemory(phandle,(void*)addresses[x],&changeVal,sizeof(changeVal),0);
}
}
}
}
if (WriteProcessMemory(phandle,(void*)addresses[x],&changeVal,sizeof(changeVal),0))
{
cout << "Write: " << hex << addresses[x] << " OK" << endl;
}
else
{
cout << "Write: " << hex << addresses[x] << " ERROR" << endl;
}
phandle = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ | PROCESS_TERMINATE, false, pid);
HANDLE pH = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_WRITE,false,targetPID);
#include <Windows.h>
#include <iostream>
using namespace std;
int main()
{
cout << "test" << endl;
HANDLE pH = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_WRITE,false,4728);
if (pH)
{
cout <<"OpenProcess() OK!" << endl;
int newHealth = 420;
if (WriteProcessMemory(pH,(void*)0x0014A000,&newHealth,4,0))
{
cout <<"WPM() OK" << endl;
}
else
{
cout <<"WPM() FAIL" << endl;
}
}
else
{
cout <<"OpenProcess() Failed :(" << endl;
}
system("pause");
}

HANDLE pH = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ,false,targetPID);
double sResult;
for (int xy = 0; xy < searchResults[curResult].size(); xy++) {
if (ReadProcessMemory(phandle,(void*)search_results[cur_result][xy],&sResult,8,0) != 0) {
if (sResult==double_val) {
if (WriteProcessMemory(phandle,(void*)searchResults[curResult][xy],&double_ans,8,0)) {
//Don't do anything here
} else {
cout << GetLastError() << endl;
}
}
}
}

phandle = OpenProcess(PAGE_EXECUTE_READWRITE | PAGE_READWRITE | PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ, false, pid);
dows/19725/MEMORY_BASIC_INFORMATION mBI; VirtualQueryEx(pHandle, (void*)0x11223344, &mBI, sizeof(MEMORY_BASIC_INFORMATION)); if ((mBI.State == MEM_COMMIT) && (mBI.Type == MEM_PRIVATE) && (mBI.Protect == PAGE_READWRITE)) // we care about .protect // if (not_writable) // VirtualProtectEx(make_it_writable) // // perform write // // if changed .protect, change it back to original value
MEMORY_BASIC_INFORMATION mBI;
DWORD OLDPROTECT;
double sResult;
for (int xy = 0; xy < search_results[cur_result].size(); xy++) {
if (ReadProcessMemory(phandle,(void*)search_results[cur_result][xy],&sResult,8,0) != 0) {
if (sResult==double_val) {
VirtualQueryEx(phandle, (void*)search_results[cur_result][xy], &mBI, sizeof(MEMORY_BASIC_INFORMATION));
//if ((mBI.State == MEM_COMMIT) && (mBI.Type == MEM_PRIVATE) && (mBI.Protect == PAGE_READWRITE)) {
bool isWritable=(mBI.Protect == PAGE_READWRITE || mBI.Protect == PAGE_WRITECOPY || mBI.Protect == PAGE_EXECUTE_READWRITE || mBI.Protect == PAGE_EXECUTE_WRITECOPY);
if (!isWritable) {
VirtualProtectEx(phandle,(void*)search_results[cur_result][xy],8,PAGE_READWRITE,&OLDPROTECT);
cout << "Wasn't writable, is now!" << endl;
} else {
cout << "Was writable!" << endl;
}
WriteProcessMemory(phandle,(void*)search_results[cur_result][xy],&double_ans,8,0);
if (!isWritable) {
VirtualProtectEx(phandle,(void*)search_results[cur_result][xy],8,OLDPROTECT,&OLDPROTECT);
}
//}
}
}
}
phandle = OpenProcess(PROCESS_VM_OPERATION | PROCESS_VM_WRITE | PROCESS_VM_READ, false, pid);