Обратный инжиниринг Apple Kext - реконструкция класса - PullRequest
14 голосов
/ 29 ноября 2009

Привет!

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

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 05 января 2010

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

1 голос
/ 16 декабря 2009

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

FingerMgMt

...