Меню
Главная
Случайная статья
Настройки
|
Эта статья тематически связана с вики-проектом «Информационные технологии», цель которого — создание и улучшение статей по темам, связанным с информационными технологиями. Вы можете её отредактировать, а также присоединиться к проекту, принять участие в его обсуждении и поработать над требуемыми статьями.
- поправить типографику и викификацию (Попрошу подробней разъяснить)
Содержание
Переименовать
Эту страницу предлагается переименовать в Перехват (программирование). Соответственно чуть-чуть дополнив.--1101001 23:46, 25 июля 2010 (UTC)[ответить]
Согласен с Вашим предложением
--Guranvir 15:04, 26 июля 2010 (UTC)[ответить]
Классическая ошибка с hook
По-моему тут сделана классическая ошибка — вызывается CallNextHookEx(hook, nCode, wParam, lParam). Однако хук вызывается в чужом адресном пространстве, куда подгружается наша dll'ка. Как следствие, RegisterHook в этом процессе не вызывается и переменная hook равняется нулю, а во все не идентификатору хука. Начиная с Windows 2000 в виду чрезвычайной распространенности этой ошибки в CallNextHookEx можно передавать первым параметром ноль. Соответственно, если в Win 98/ME есть .NET, то нужно переписать код на правильный — передачу идентификатора хука через файлы отображаемые в память, а если нет, то заменить на CallNextHookEx(0, nCode, wParam, lParam). halyavin 06:14, 2 августа 2010 (UTC)
Спасибо поправлю--Guranvir 09:46, 3 августа 2010 (UTC)[ответить]
Перехват в linux
Думаю стоит написать и о программах *trace для перехвата системных вызовов, работающих в unix-like системах. Это добавит нейтральности в статью. halyavin 07:27, 17 августа 2010 (UTC)
Спасибо что напомнили о ней, а то я забыл что не написал, но только тогда правильней написать наверно так: в unix-like системах предусмотрен системный вызов ptrace, который позволяет проводить отладку процессов и системных вызовов. --Guranvir 10:31, 17 августа 2010 (UTC)
Дополнил--Guranvir 11:06, 17 августа 2010 (UTC)[ответить]
Особенности технологии сплайсинга
1) Какая связь между "нахождением нужной функции" через вызов GetProcAddress и "встроенным дизассемблерным движком"? 2) Каким чудом технология "позволяет осуществлять глобальный перехват API функций", если все изменения останутся в пределах адресного пространства модифицируемого процесса? А если бы эти изменения даже отобразились глобально, у нас бы получилось что в начале измененной функции стоит jmp ведущий в никуда (потому что нужный код опять-же висит в конкретном адресном пространстве, а не глобально). Нет, при желании можно внедриться в каждый процесс, но тут уже одним сплайсингом не обойдешься. Я, конечно, дико извиняюсь, но раздел напоминает "слышал звон, да не знает где он". Zero Children (обс.) 20:25, 7 января 2017 (UTC)[ответить]
Сообщение об ошибке
Нет нормального вступления у статьи. Примеры неинформативны, примеры "где, что, когда и как" на уровне шараги, в духе "оно позволяет" и далее тупое перечисление. Источники соответствующие: Ubuntu Linux, Wasm.ru за 2002 год, "уроки Iczelion’а"... Английская статья информативна, есть нормальные примеры, которые могут дать читателю представление о "хукинге". Т.н. "перехват" не передаёт сути, образа. В английской статье такого примера не было, но было написано, что "хуки" (крюки, зацепки) могут быть задействованы как тактика выбора приоритета запуска программы, или, если быть точнее, и интереснее для читателя — каждый "крюк, зацепка" в зависимости от важности используем в процессе начальной загрузки операционной системы (у тех же линуксов это очевидно, такое же название). Так можно объяснить и про хуки как абстрактные классы в программировании, про подклассы, про дополнение ими друг друга. Как если бы, крюк цепляют за следующий создавая цепочку. Перехват же звучит в авиационном смысле, ибо случай единичный. 212.124.19.141 23:57, 16 августа 2025 (UTC)[ответить]
- Здесь рассматривают конкретные ошибки, а не полную переработку статьи. Масштабное исправление всей статьи вы можете обсудить на странице обсуждения статьи или сделать его самостоятельно, в рамках правил. - Saidaziz (обс.) 06:30, 17 августа 2025 (UTC)[ответить]
|
|