Конференция "WinAPI" » Какими методами или функциями можно отследить... [D7, WinXP]
 
  • Wadimka (28.02.11 21:22) [0]
    Какими методами или функциями можно отследить к каким функциям API обращается та или иная программа?
  • Rouse_ © (28.02.11 23:28) [1]
    Метод называется сплайсинг.
    Задача сплайса переназначить вызов функции на свой обработчик.
    Достигается путем постановки long jmp в начало требуемой функции.
    Начиная с XP SP1 доступен т.н. safe splice. Для этого в начало каждой экспортируемой функции в стандартных библиотеках предварено необходимым кол-вом NOP и инструкцией mov edi, edi в место которой необходимо вставить опкод jmp -5 и в нопах уже long jmp на твой обработчик
  • Wadimka (01.03.11 00:08) [2]
    спс т.е. это что нужно при запуске своего приложения во все функции вставить вызов моей функции которая будет показывать какие параметры вызывались?

    Что-то оч тяжело получается, как для перехвата уже известной функции это понятно, а как вообще все обращения к АПИ ловить куда обращается то или иное приложение? или только вами описанный способ?
  • Rouse_ © (01.03.11 00:13) [3]
    Ну методика то одна конечно, способы перехвата просто могут меняться, от модификации таблиц импорта/экспорта,  сплайса входных точек функций, до правки SDT/SSDT в ядре. В любом случае нужно как-то отслеживать - а это только перехват.
    Если для одного единственного приложения - то подойдет реализация отладчика, который и будет отслеживать все вызовы.
  • Wadimka (01.03.11 01:57) [4]
    тогда вопрос другой, может ли приложение за которым буду следить увидеть есть ли перехват API функций?
    т.е. если захотят разработчики они смогут это увидеть?
  • Германн © (01.03.11 03:31) [5]

    > Wadimka   (01.03.11 01:57) [4]
    >
    > тогда вопрос другой, может ли приложение за которым буду
    > следить увидеть есть ли перехват API функций?
    > т.е. если захотят разработчики они смогут это увидеть?

    Имхо, это уже вопрос в другой плоскости.
  • Rouse_ © (01.03.11 11:10) [6]
    А это уж как сделаешь
 
Конференция "WinAPI" » Какими методами или функциями можно отследить... [D7, WinXP]
Есть новые Нет новых   [134431   +12][b:0][p:0]