我一直在閱讀網站和谷歌搜索試圖找到一個決定性的答案,即時通訊嘗試做,但我沒有找到一個回答我所有的問題。訪問外部進程的內存
我有兩個過程。一個有一個整型變量,我想通過第二個進程進行更改。我知道如何讀/寫特定的內存位置,但我只知道如何在本地進程地址上執行它。
我不明白createremotethread。是否有可能得到最簡單,最簡單的操作進程內存不是原生程序的內存的例子?當然,假設兩個程序都在運行。
在此先感謝
編輯:我得到了來自其他來源,我的問題的一些答案。我只想了解如何寫一個可放大的內存位置,例如:
WriteProcessMemory(phandle,(void *)address,val,sizeof(val),NULL);
這似乎沒有任何效果,假設VAL是一個布爾值:
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'的指針,那麼你不需要'&'。 –
第一件事,做這個布爾結果= ReadProcessMemory,然後輸出結果,如果結果是0,那麼任何一個是矛或任何錯誤,或地址 – aah134
做到了這一點,它返回一個積極的。從內存中讀取似乎沒有錯誤當我做BOOL結果= WriteProcessMemory(phandle,(void *)地址,&val,sizeof(val),NULL)時,似乎 – ziggyyoyo