Форум: "WinAPI";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
ВнизЛовушки Найти похожие ветки
← →
alex870 (2004-12-14 11:47) [0]Здравствуйте!
Подскажите пожалуста, чужое приложение вызывает определенную функцию из Kernel, могу ли я перехватить отработку этой функции из своего приложения, например написав DLL с какой-нибудь глобальной ловушкой (именно на определенную функцию), и если это возможно подменить результат выполнения этой функции. Заранее спасибо!
← →
Digitman © (2004-12-14 11:54) [1]можешь.
← →
Delphi5.01 © (2004-12-14 11:56) [2]Absolutno, est daje vozmonost ne tolko smenit a voobhse udalit eto soobshenie. Kak raz tak i rabotaut programi blokirovshiki kotorie ispolzuiut v internet klubakh.
← →
Alex870 (2004-12-14 12:28) [3]Спасибо за ответы!
Но, если это делается с помощью ловушки, то как правильно поставить её на определенную функцию. Я делал это только на события мышиSetWindowsHookEx(WH_GETMESSAGE, @MouseProc, HInstance, 0)
. Т.е. не совсем понятно что ставить вместо WH_GETMESSAGE и какую процедуру создавать в качестве второго параметра этой функции, ведь из её параметров я должен получить нужную мне функцию.
← →
Delphi5.01 © (2004-12-14 12:38) [4]Chto kasaetsa olovli function-ov ia ne mogu pomoch, ia rabotal s klavoi i mouseom, no kak ia pomnu zdes bilo kucha dokumentacii v razdele stati. Pochitai tam tochno naidosh to chto tebe nujno.
Jelau udachi
← →
Digitman © (2004-12-14 12:53) [5]
> Но, если это делается с помощью ловушки
совершенно необязательно использовать ловушку - библиотеку можно достаточно легко внедрить в целевое "чужое" АП и с пом. CreateremoteThread() (коль скоро речь идет именно об WinХР)
но раз речь идет о внедрении (тем или иным методом - абсолютно неважно) библиотеки, то здесь сразу "всплывает" понятие/механизм "инициализация DLL" : система в ходе загрузки библ-ки вызывает ее DllEntryPoint(Reason = DLL_PROCESS_ATTACH), где ты получаешь управление и волен делать с АП этого процесса практически все что угодно, в т.ч. и модификацию IAT/EAT.. в случае внедрения библ-ки методом установки глоб.ловушки алгоритм любой установленной тобой "ловушечной" хук-ф-ции становится абсолютно неважным, ибо перехват API-вызовов осуществляется еще на этапе иниц-ции, т.е. телу хук-ф-ции достаточно просто вызвать CallNextHook
← →
Alex870 (2004-12-14 14:56) [6]Спасибо за интересную консультацию!
Я, когда задавал вопрос, считал, что это не важно, а теперь убедился в обратном. Дело в том, что я хочу перехватиь IsDebugerPresent, вызываемый видеокодеком, который я подключаю к своей программе (понятно, что функцию вызывает не сам кодек). Я хотел повесить резидента, чтобы свою программу можно было трассировать в процессе разработки.
← →
Digitman © (2004-12-14 15:43) [7]
> понятно, что функцию вызывает не сам кодек
а кто же кроме него, спрашивается ? если ты сам ни явно ни неявно ее не вызываешь ?
> чтобы свою программу можно было трассировать в процессе
> разработки
ты собрался код ф-ций видеокодека трассировать ? а зачем ?
← →
alex870 (2004-12-14 17:12) [8]Нет, кодек я трассировать не собираюсь, но в его коде есть защита от debuger"а, поэтому при попытке трассировки моей программы (использующей этот кодек) кодек не работает, а при запуске откомпилированного экзэшника все работает нормально.
Если Вы знаете, как поставить hook на вызов опр. функции, а не на события (клавы, мыши и т.д.) пожалуйста напишите какие параметры нужно передавать SetWindowsHookEx(), и какой прикрепляемой функцией потом пользоваться.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.02.06;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.036 c