ive читал по сайту и по поисковому запросу, чтобы попытаться найти окончательный ответ на то, что я пытаюсь сделать, но я не нашел тот, который отвечает на все мои вопросы.доступ к памяти иностранного процесса
У меня есть два процесса. у меня есть целочисленная переменная, которую я хочу изменить вторым процессом. я знаю, как читать/писать в определенные ячейки памяти, но я знаю только, как это сделать на собственных адресах процессов.
Я не понимаю, что такое createremotethread. возможно ли получить самый чистый, самый простой пример манипулирования памятью процесса, не являющегося родным для текущей программы? при условии, что обе программы работают, конечно.
заранее спасибо
EDIT: я получил ответы на некоторые вопросы по поводу моего вопроса из других источников. я просто хочу понять, как я могу написать vairable в ячейку памяти, скажем:
WriteProcessMemory (phandle, (void *) address, val, sizeof (val), NULL);
это, кажется, не имеет никакого эффекта, предполагая, что Вэл логическое значение:
while(true){
key=getch();
if(key=='1'){
if(val)val=false;
else val=true;
WriteProcessMemory(phandle,(void*)address,&val,sizeof(val),NULL);
}
bool val2;
ReadProcessMemory(phandle, (void*)address, &val2, sizeof(val2), NULL);
cout<<val2<<endl;
}
всегда показывает 0. почему?
если 'val' является актуальной' bool' переменная, то вам нужно использовать '& val' вместо этого. Но если 'val' уже является указателем на' bool', вам не нужно '&'. –
Прежде всего, сделайте это BOOL result = ReadProcessMemory, затем выведите результат, если результат равен 0, тогда что-то не так с фандле, или адрес – aah134
сделал это, он возвращает положительный результат. ничего плохого в чтении из памяти кажется – ziggyyoyo