Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.02.06;
Скачать: CL | DM;

Вниз

Ловушки   Найти похожие ветки 

 
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 вся ветка

Текущий архив: 2005.02.06;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.074 c
9-1098833740
Зелёный Буран
2004-10-27 03:35
2005.02.06
Ужасная проблема с изометрией... Помогите :)))


14-1105711357
klyg
2005-01-14 17:02
2005.02.06
Выбор темы для дипломного проекта


14-1105658183
Чеширский_Кот
2005-01-14 02:16
2005.02.06
что такое Cameo?


1-1106343501
NeedHelp
2005-01-22 00:38
2005.02.06
Kak umen shit bitmap kartinku, umen shit koli4estvo pikselev???


3-1105006708
YurikGL
2005-01-06 13:18
2005.02.06
Дата-время в access