Сейчас на форуме: _MBK_, asfa (+5 невидимых)

 eXeL@B —› Вопросы новичков —› Write/ReadProcessMemory
Посл.ответ Сообщение

Ранг: 4.7 (гость)
Активность: 0=0
Статус: Участник

Создано: 24 апреля 2009 11:11 · Поправил: sterk
· Личное сообщение · #1

Я наверное нуб и опозорился, но в чем проблема?
Как получить доступ на чтение/запись в чужой процесс?
Code:
  1. int _tmain(int argc, _TCHAR* argv[])
  2. {
  3.          DWORD adr = 0x01005004;
  4.          DWORD err = 0;
  5.          char buff[50];
  6.          int i = 0;
  7.          HANDLE nhpr = 0;
  8.          DWORD pID = GetProcID("winmine.exe");
  9.          SetLastError(0);
  10.          HANDLE hpr = OpenProcess(PROCESS_VM_READ||PROCESS_VM_OPERATION||PROCESS_VM_WRITE,fa lse,pID);// != 0
  11.          err = GetLastError();// 0
  12.          bool f = VirtualProtectEx(hpr, (LPVOID)adr,30,PAGE_EXECUTE_READWRITE,NULL); // f = false
  13.          err = GetLastError(); // ERROR_NOACCESS
  14.          ReadProcessMemory(hpr, (LPVOID)adr,(LPVOID)buff,10,(SIZE_T*)&i);
  15.          err = GetLastError();// ERROR_ACCESS_DENIED
  16.          return 0;
  17. }





Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 24 апреля 2009 12:13
· Личное сообщение · #2

HANDLE hpr = OpenProcess(PROCESS_VM_READ|PROCESS_VM_OPERATION|PROCESS_VM_WRITE,fals e,pID)

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes





Ранг: 340.0 (мудрец), 22thx
Активность: 0.120
Статус: Участник
THETA

Создано: 24 апреля 2009 12:19
· Личное сообщение · #3

sterk
Попробуй открыть процесс с полным доступом, то есть с атрибутом
HANDLE hpr = OpenProcess(PROCESS_ALL_ACCESS,false,pID)

-----
Программист SkyNet




Ранг: 17.3 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 24 апреля 2009 13:22
· Личное сообщение · #4

Может быть нужны Debug привилегии?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 24 апреля 2009 17:32 · Поправил: Archer
· Личное сообщение · #5

А может быть нужно просто почитать МСДН. И отличать логическое ИЛИ от побитового.
lpflOldProtect [out]
A pointer to a variable that receives the previous access protection of the first page in the specified region of pages. If this parameter is NULL or does not point to a valid variable, the function fails.




Ранг: 107.5 (ветеран)
Активность: 0.150
Статус: Участник

Создано: 24 апреля 2009 19:25
· Личное сообщение · #6

FrenFolio пишет:
sterk
Попробуй открыть процесс с полным доступом, то есть с атрибутом
HANDLE hpr = OpenProcess(PROCESS_ALL_ACCESS,false,pID)


В данном случае это имеет смысл все равно используются большинство привелегий.

|| вместо |, как Арчи верно подметил, это жесть. Кстати я в начале вообще + юзал (хотя это вполне логично). тоесть код типа:

Code:
  1. MessageBox(0, 'text', 'caption', MB_OKCANCEL + MB_ICONINFORMATION)


-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74



 eXeL@B —› Вопросы новичков —› Write/ReadProcessMemory
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати