как перехватить команды между программамой и утилитой?

Тема в разделе "WASM.BEGINNERS", создана пользователем AndrewP, 11 июл 2011.

  1. AndrewP

    AndrewP New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2011
    Сообщения:
    6
    Есть одна большая программа. (Adobe premiere pro). Есть для нее утилита KTool, но написанная нестандартным образом (в документации для разработчиков такой инфы нет). Утилитка совсем крошечная, висит себе в трее, перехватывает определенное сочетание клавиш и делает в Premiere вещи, до которых у разработчиков не дошли руки.

    Нужно как-то узнать. как именно она работает. Как это сделать? Может есть какой-то софт, который ведет лог для конкретного приложения? или отслеживает вообще все изменения в системе, и кем они вызываются? Подскажите хотя бы направление, в котором копать...
    Имеется начальное понимание C++, на котором написан Premiere.
     
  2. h0t

    h0t Member

    Публикаций:
    0
    Регистрация:
    3 апр 2011
    Сообщения:
    735
    Возможно сервисная программа ставит хуки на обработку сообщений и обрабатывает нужные ему соечетания клавишь.
     
  3. AndrewP

    AndrewP New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2011
    Сообщения:
    6
    перепробовал декомпиляторы/дезассемблеры из инструментария, но так как не понял на что смотреть результат пока нулевой :)
    а программы-шпионы (перехватчики) ничего не показывают. А где эти куки можно найти?
     
  4. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    Зачем декомпиляторы? Возьмите Ольгу, поставьте бряк на SetWindowsHook(Ex) и тому подобное.
     
  5. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    И не куки... При чём тут печенюшки?
    Ещё как вариант (чисто извращение) - утилитка ставит драйвер-фильтр, который и пишет в её аддр.пространство коды клавиш... Короче изврат это. Лучше ставьте бряки.
     
  6. AndrewP

    AndrewP New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2011
    Сообщения:
    6
    :))
    уважаемые гуры, напишите по english чтоб я хоть что-то нашел:
    Ольгу - ?
    бряк - ?
     
  7. Igor1024

    Igor1024 Васил Троянов Боянов (Azis)

    Публикаций:
    0
    Регистрация:
    15 окт 2010
    Сообщения:
    345
    Адрес:
    Sliven, Bulgaria
    AndrewP, вот h0t к гуру относится может, а я - beginner разве что максимум.
    Ольга=OllyDbg; Бряк=breakpoint;
     
  8. AndrewP

    AndrewP New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2011
    Сообщения:
    6
    спасибо. буду копать
     
  9. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    AndrewP
    Почитал, что эта утилита делает - подозреваю что то же самое можно сделать на Autoit. Autoit позволяет имитировать нажатие клавиш и работу мышкой. Если бы выложил саму утилиту тебе бы точнее сказали.
    А копать работу через хуки это не для
     
  10. AndrewP

    AndrewP New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2011
    Сообщения:
    6
    дело в том, что я не могу понять алгоритм действия этой утилиты. Т е я не могу представить какую-то серию нажатий комбинаций клавиш, что получить такой результат. Это просто не заложено в программу. Там явно какая-то химия.
     
  11. ASMatic

    ASMatic New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2010
    Сообщения:
    233
    AndrewP
    постом выше написале тебе, а ты догадывайся, догадывайся - мож приснится или яблоко на голову упадет.)
     
  12. CyberManiac

    CyberManiac New Member

    Публикаций:
    0
    Регистрация:
    2 сен 2003
    Сообщения:
    2.473
    Адрес:
    Russia
    AndrewP
    А серию движений мышью, которая делает то же самое, представить возможно? Если да, тогда тебе нужен лог всех вызовов функции SendMessage и ей подобных. Ну или лог всех сообщений, но это сложнее, т.к. в общем случае неизвестно, какому именно окну их отправляет твоя KTool.
     
  13. AndrewP

    AndrewP New Member

    Публикаций:
    0
    Регистрация:
    11 июл 2011
    Сообщения:
    6
    Вот я выложил. http://www.ex.ua/view_storage/920900171586
    Как сюда прикрепить, не нашел.
    В кратце опишу, что делает утилита, чтоб было понятно.
    Есть таймлайн (линейка времени), на которой несколько дорожек. Где-то на этих дорожках лежат кусочки видеофайлов. Какая-то дорожка из всех выделена (активна). Эта утилита позволяет выделить клип на активной дорожке, над которым находится индикатор времени (вертикальная черточка. которая показывает, какой кадр сейчас ты смотришь). Т е как распознать, какая дорожка активна в данный момент? я не понимаю пока. Дальнейшую работу утилиты (она много еще чего может) вполне под силу организовать обычными макросами используя встроенные в Premiere хот кеи.
     
  14. ASMatic

    ASMatic New Member

    Публикаций:
    0
    Регистрация:
    5 окт 2010
    Сообщения:
    233
    AndrewP
    мож оно как плагин работает???
    >как распознать, какая дорожка активна в данный момент<
     
  15. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Т.е. тебе лень изучать программу и хочешь готовый рецепт. Нет там никаких чудес. Прога сделана на базе готовой кликалки http://www.autohotkey.com/ Кстати, похоже это ветка autoit www.autoitscript.com/site/autoit , т.к. понимает скрипты из версии 2. Возможно там еще используется COM-интерфейс к Адобе. Но думаю он тоже описан или вытаскивается из cоответствующих DLL/OCX. Короче не морочь голову.