2012-05-28 60 views
0

我嘗試從我寫進程內存讀,我的代碼是:讀取進程內存

#include <stdio.h> 
void main() 
{ 
    int x,y; 
    scanf("%d",&x); 
    scanf("%d",&y); 
    x = y; 
    scanf("%d",&y); 
    printf("%d",x); 
    scanf("%d",&y); 
} 

行,我瑤池中作弊發動機ADRESS,併成功編輯等, 我搜索在谷歌至少5個小時,找到很多的代碼,不能理解他們,我的意思是。即使在進程關閉的情況下也能運行的代碼可以運行 - ' 是否有人可以幫助我構建一個典型的代碼,以便從內存中的地址中讀取值?

回答

1

你的代碼沒有做任何事情,甚至類似於你在問題文本中提到的內容,這使得這很容易混淆。

在實施virtual memorymemory protection的大多數現代操作系統中,您無法輕鬆讀取其他進程的內存。

即使你有一個過程打印出來它的其中一個變量的地址,該地址是虛擬,所以如果你的進程試圖在相同的虛擬地址來訪問內存它將訪問相同的物理內存。

3

由於平臺是Windows,請參閱WINAPI函數ReadProcessMemory()

發佈的代碼是從標準輸入讀取並寫入標準輸出,它不嘗試讀取內存。