Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Защита проги от Read/WriteProcessMemory


v0id ©   (2002-06-27 19:24:00) 

Если кто-то хочет прочитать/записать значение в память процесса, он должен получить хендл процесса, вызовом функции OpenProcess.

HANDLE OpenProcess(

DWORD dwDesiredAccess, // access flag
BOOL bInheritHandle, // handle inheritance flag
DWORD dwProcessId // process identifier
);


Можно ли как-нибудь сделать так, чтобы флагов PROCESS_VM_READ и PROCESS_VM_WRITE не было??? Т.е. чтобы крекер не мог читать и/или изменять мою память (моей проги)??


paul_shmakov   (2002-06-29 04:01:00) [1]

2 v0id:
Как тогда сделать этот глобальный перехватчик?? У меня есть код на C++, но как его в Delphi ...

еще раз повторюсь: как перехватывать здесь уже много раз обсуждалось. и совсем недавно.


v0id   (2002-06-28 18:19:00) [2]

послать дискуссию на первое место :0


Digitman   (2002-06-28 15:03:00) [3]

отслеживание перехвата (читай - запись/чтение в интересующем АП по интересующему адресу) доступно только на уровне ядра


v0id   (2002-06-28 14:26:00) [4]

Раз нельзя поменять параметр dwDesiredAccess, зачем он вообще сделан?

Как тогда сделать этот глобальный перехватчик?? У меня есть код на C++, но как его в Delphi ...


SPeller   (2002-06-28 13:43:00) [5]

Тогда надо отслеживать ещё и установку перехватчика на свой перехватчик. :)


Игорь Шевченко   (2002-06-28 11:59:00) [6]

paul_shmakov © (28.06.02 11:40)

На всякий перехватчик найдется перехватчик перехватчика :-)


paul_shmakov   (2002-06-28 11:40:00) [7]

единственная возможность - это глобальный перехват вызовов OpenProcess во всех работающих процессах. функция-перехватчик при попытке открыть наш процесс должна возвращать NULL, а для остальных процессов вызывать оригинальную OpenProcess.

это, кстати, поможет и для защиты от принудительного завершения процесса через TerminateProcess.

как перехватывать здесь уже много раз обсуждалось.


Игорь Шевченко   (2002-06-28 09:29:00) [8]

v0id © (27.06.02 19:24)

Нельзя. Рекомендую: Свен Шрайбер "Недокументированные возможности Windows 2000 (+CD-ROM)"


Diamond Cat   (2002-06-28 01:05:00) [9]

нет, в принципе всегда можно добраться до любого раздела памяти, по крайней мере я на асм такое делал, правда один раз я видел какое-то очень навороченное кодирование инфориации причем такое ,что создавалось впечатление что по регистрам только хлам валяется, тогда так и не разобрался как ломать эту прогу, так что рой в этом направлении


Наверх

Титульная страница Поиск, карта сайта Написать письмо