Обратное проектирование Apple Kext - восстановление класса

Привет!

В настоящее время я пытаюсь расширить функциональность Magic Mouse. Для этого я надеюсь написать kext, который перехватывает события из драйвера мультитач, AppleMultitouchDriver.kext, интерпретирует их и отправляет новые события или пересылает фактическое событие. Этот подход аналогичен подходу, используемому DoubleCommand.

Я уже создал небольшой тестовый kext, который перехватывает события мыши (щелчок, движение и т.д.), поскольку это будет необходимо также.

Теперь проблема заключается в том, что я не могу перехватить события из объектов AppleMultitouchDevice и/или AppleMultitouchHIDEventDriver, потому что для них нет определения класса. Мне нужно переназначить указатель на функцию обратного вызова, как я это делаю в перехватчике мыши, и как это делается в DoubleCommand. Насколько мне известно, это означает, что мне нужно восстановить класс AppleMultitouchDevice. Я уже могу получить ссылку на экземпляр объекта AppleMultitouchDevice, поэтому мне просто нужно его использовать и использовать.

Теперь, когда у вас есть фон, вот мои прямые вопросы:

  • Какие методы мне нужно использовать для обратной инженерии kext или восстановления рассматриваемых классов?
  • Какие программы доступны, которые помогут мне в этом?
  • Есть ли учебники или электронные книги, посвященные этой теме, о которой вы знаете?
  • Можно ли переназначить указатель обратного вызова без фактического восстановления всего класса?
  • Что-нибудь еще, что я, возможно, пропустил, так как я очень новичок в этом.

Заранее благодарим за любые советы или помощь!

Ответы

Ответ 1

Мне удалось найти то, что мне было нужно. Теперь все, что потребуется, - это время и силы.:)

Ответ 2

Может ли это помочь?

FingerMgMt