![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Сплайсинг функций ядра на Delphi ? [D5, Win95/98]
Terrible © (2002-09-27 17:35:00)Кто осуществлял сплайсинг (установка обработчиков API функций) ядра на делфи. Есть примр на асме, может кто уже этим занимался? Поделитесь плиз примерчиком. Очень нужно для хорошего дела.
Digitman (2002-09-30 17:32:00) [1]
> функция, которая пишется в область памяти KERNEL32.DLL
Это не так. Исп.код перехвата внедряется не в ВАП, отведенное под KERNEL32.DLL в целевом процессе, а во вновь выделяемый блок своб.вирт.памяти в этом процессе (см. VirtualAllocEx())
После того, как блок был распределен в целевом ВАП, в него записываются данные, содержащие исп.код перехвата (см. WriteProcessMemory)
После успешного внедрения исп.кода в ВАП целевого процесса необходимо стартовать удаленный кодовый поток в цел.процессе (см. CreateRemoteThread), который собственно и исполнит инструкции внедренного в целевое ВАП исп.кода
Terrible (2002-09-30 17:06:00) [2]Ну, на самом деле технология была найдена именно в самоучителях по написанию вирусов, но использовать её хотим для значительно более мирных целей.
Ну всётаки, не уж то никто таким не занимался и не поможет ?
Viktor Kushnir (2002-09-28 08:20:00) [3]вирус :)))
Terrible (2002-09-27 18:40:00) [4]Видел примеры на Delphi, когда хукают функцию для конкретного приложения (изменение таблицы импорта).
А тут надо именно глобально хукать, так что б для всех приложений. На асме есть пример, но там функция, которая пишется в область памяти KERNEL32.DLL тоже написана на асме (когда они точно имеют код, его длину и пр., да и вообще процедурка обработки там примитвная).
А вот надо вставить к примеру целую процедуру вместо функции CreateProcess, провести необходимые проверки, а потом вызвать оригинальный CreateProcess.
Digitman (2002-09-27 18:34:00) [5]а что тебе непонятно конкретно ?