VirtualAllocEx возвращет 0
От: Time Россия  
Дата: 18.06.04 06:44
Оценка:
Цель: опредлить участок памяти процесса и записать туды значение.
Что сделано:
в в переменную 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.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.