Главная страница
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.031 c
14-1105704415
Santa][P
2005-01-14 15:06
2005.02.06
COPDZone


3-1104973733
Ghost_
2005-01-06 04:08
2005.02.06
генератор отчетов


9-1099264534
Кто---то
2004-11-01 02:15
2005.02.06
Как в GLScene сделать рамочку выделения области ? Как в Фотошопе


14-1106221834
1008
2005-01-20 14:50
2005.02.06
Есть предложение


3-1105367361
AlexTregubov
2005-01-10 17:29
2005.02.06
функции SQL