-
Какими методами или функциями можно отследить к каким функциям API обращается та или иная программа?
-
Метод называется сплайсинг. Задача сплайса переназначить вызов функции на свой обработчик. Достигается путем постановки long jmp в начало требуемой функции. Начиная с XP SP1 доступен т.н. safe splice. Для этого в начало каждой экспортируемой функции в стандартных библиотеках предварено необходимым кол-вом NOP и инструкцией mov edi, edi в место которой необходимо вставить опкод jmp -5 и в нопах уже long jmp на твой обработчик
-
спс т.е. это что нужно при запуске своего приложения во все функции вставить вызов моей функции которая будет показывать какие параметры вызывались?
Что-то оч тяжело получается, как для перехвата уже известной функции это понятно, а как вообще все обращения к АПИ ловить куда обращается то или иное приложение? или только вами описанный способ?
-
Ну методика то одна конечно, способы перехвата просто могут меняться, от модификации таблиц импорта/экспорта, сплайса входных точек функций, до правки SDT/SSDT в ядре. В любом случае нужно как-то отслеживать - а это только перехват. Если для одного единственного приложения - то подойдет реализация отладчика, который и будет отслеживать все вызовы.
-
тогда вопрос другой, может ли приложение за которым буду следить увидеть есть ли перехват API функций? т.е. если захотят разработчики они смогут это увидеть?
-
> Wadimka (01.03.11 01:57) [4] > > тогда вопрос другой, может ли приложение за которым буду > следить увидеть есть ли перехват API функций? > т.е. если захотят разработчики они смогут это увидеть?
Имхо, это уже вопрос в другой плоскости.
-
А это уж как сделаешь
|