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