PDA

View Full Version : محتویات حافظه



amir_civil
دوشنبه 14 بهمن 1387, 10:01 صبح
سلام دوستان
وقتی ما یه ادرس از حافظه رو داریم مثلا 0005CA7E چه جوری میتونیم محتویاتش رو پیدا کنیم؟
با readprocess هم کار نکرد و برگشتش مقدار صفر بود
ممنون

amir_civil
سه شنبه 15 بهمن 1387, 00:32 صبح
دوستان کسی اطلاعاتی در این زمینه نمیتونه به من بده؟

...StacK...
سه شنبه 15 بهمن 1387, 00:48 صبح
تا فردا صبر کن دارم رو یه الگوریتمی کار میکنم -فردا نتیجشو میزارم اینجا

Nima_NF
چهارشنبه 23 بهمن 1387, 00:29 صبح
در ویندوز شما می توانید از ReadProcessMemory استفاده کنید، فقط باید پروسه با حق دسترسی PROCESS_VM_READ باز شود. با استفاده از GetWindowThreadProcessId می توانید ID پروسه اجرا شده را به دست بیاورید. اگر آدرس را دارید در پارامتر دوم ReadProcessMemory وارد کنید. (در لینوکس هم مانند این تابع می توانید از ptrace استفاده کنید)
در مثال زیر بافر را 1000 بایت در نظر گرفتم.




#include <windows.h>

int _tmain(int argc, _TCHAR* argv[])
{

HANDLE ProcH;
DWORD PID;
char buffer[1000];

GetWindowThreadProcessId(FindWindow(NULL, (LPCTSTR)L"YourAPPTitle"), &PID);
ProcH = OpenProcess(PROCESS_VM_READ, false, PID);
ReadProcessMemory(ProcH, (void*)0x0012FF58, &buffer, sizeof(buffer), NULL);
CloseHandle(ProcH);

return 0;
}

amir_civil
دوشنبه 17 فروردین 1388, 20:41 عصر
با سلام ذوباره
خدمت اقا نیما , ایا چنین کاری رو با اشاره گرها هم میشه انجام داد؟ یا توسط رجیسترها؟