Цель: опредлить участок памяти процесса и записать туды значение.
Что сделано:
в в переменную DWORD записан дескриптор процесса. Далее
DWORD dwProcessID;
dwProcessID = atoi(m_csID);
int iBaseAddr = 0x10000000;
int str = 19483;
// Пробовал вместо iBaseAddr писать NULL - безрезультатно
MemAdr = VirtualAllocEx(HANDLE(dwProcessID),&iBaseAddr,64,MEM_COMMIT,PAGE_EXECUTE_READWRITE); //Получаю 0!
SIZE_T num = 0;
int f =0;
if (!WriteProcessMemory(HANDLE(dwProcessID),MemAdr,&str,sizeof(str),&num))
{
DWORD te = GetLastError();//Возвращает ошибку: неверный дескриптор
int d = 0;
d++;
}
Помогите, пожалуйста. Запарился уже.
И еще, если Вас не затруднит, объясните поля у VirtualAllocEx а точнее LPVOID lpAddress, SIZE_T dwSize. В msdn я почитал
но не понял в каком случае и сколько туда передавать?
С уважением, Time.