Привет!
В настоящее время я пытаюсь расширить функциональность Magic Mouse. Для этого я надеюсь написать kext, который перехватывает события из драйвера мультитача, AppleMultitouchDriver.kext, интерпретирует их и либо отправляет новые события, либо пересылает фактическое событие. Этот подход аналогичен подходу, используемому DoubleCommand .
Я уже создал небольшой тестовый kext, который перехватывает события мыши (щелчок, движение и т. Д.), Поскольку это также потребуется.
Проблема, с которой я столкнулся сейчас, заключается в том, что я не могу перехватить события из объектов AppleMultitouchDevice и / или AppleMultitouchHIDEventDriver, поскольку для них нет определения класса. Мне нужно иметь возможность переназначить указатель на функцию обратного вызова, как я делаю в перехватчике мыши и как это делается в DoubleCommand. Насколько я знаю, это означает, что мне нужно восстановить класс AppleMultitouchDevice. Я уже могу получить ссылку на экземпляр объекта AppleMultitouchDevice, поэтому мне просто нужно иметь возможность привести его в действие и использовать его.
Теперь, когда у вас есть опыт, вот мои прямые вопросы:
- Какие методы мне нужно использовать для обратного инжиниринга kext или реконструкции рассматриваемых классов?
- Какие есть программы, которые помогут мне в этом?
- Существуют ли учебники или электронные книги, посвященные этой конкретной теме, о которой вы знаете?
- Можно ли мне переназначить указатель обратного вызова без фактической реконструкции всего класса?
- Все остальное, что я мог пропустить, так как я очень новичок в этом.
Заранее спасибо за любой совет или помощь !!