Grüße!Reverse Engineering ein Apple Kext - Wiederaufbau der Klasse
Ich versuche derzeit, die Funktionalität der Magic Mouse zu erweitern. Um dies zu tun, hoffe ich, einen Kext zu schreiben, der Ereignisse vom Multitouch-Treiber AppleMultitouchDriver.kext abfängt, sie interpretiert und entweder neue Ereignisse versendet oder das eigentliche Ereignis weiterleitet. Dieser Ansatz ähnelt dem von DoubleCommand verwendeten Ansatz.
Ich habe bereits einen kleinen Test Kext erstellt, der die Mausereignisse abfängt (Klick, Bewegung, usw.), die auch benötigt werden.
Das Problem, das ich jetzt habe, ist, dass ich die Ereignisse von den AppleMultitouchDevice und/oder AppleMultitouchHIDEventDriver Objekten abfangen kann, weil es keine Klassendefinition für sie gibt. Ich muss in der Lage sein, den Zeiger auf die Callback-Funktion wie im Maus-Interceptor und wie in DoubleCommand getan. Soweit ich weiß, bedeutet dies, dass ich die AppleMultitouchDevice-Klasse rekonstruieren muss. Ich bin bereits in der Lage, einen Verweis auf die Instanz des AppleMultitouchDevice-Objekts zu bekommen, also muss ich es nur noch verwenden können.
Nachdem Sie nun den Hintergrund haben, hier sind meine direkten Fragen:
- Welche Methoden kann ich nutzen, um brauchen die kext Reverse Engineering oder die Klassen in Frage zu rekonstruieren?
- Welche Programme stehen mir zur Verfügung?
- Gibt es Tutorials oder E-Books, die sich auf dieses spezielle Thema konzentrieren, das Sie kennen?
- Kann ich den Callback-Zeiger neu zuweisen, ohne die gesamte Klasse zu rekonstruieren?
- Alles andere habe ich vielleicht verpasst, da ich so neu darin bin.
Vielen Dank im Voraus für jede Beratung oder Unterstützung !!
Liefert Apple die Quellen nicht zu ihren Kexten? –
Ja, für die meisten von ihnen. Dieser wird jedoch privat gehalten. Ich vermute, dass sie nicht wollen, dass die Leute darüber nachdenken, wie all ihre patentierten, proprietären Technologien für Multitouch funktionieren. – Tyler