2009-11-29 10 views
14

Selamlar!Tersine Mühendislik Bir Apple Kext - Sınıfı Yeniden Oluşturmak

Şu anda Magic Mouse'un işlevlerini genişletmeye çalışıyorum. Bunu yapmak için, multitouch sürücüsünden, AppleMultitouchDriver.kext olayları yakalayan, onları yorumlar ve yeni olayları gönderir veya gerçek olayı iletir bir kext yazmayı umuyoruz. Bu yaklaşım, DoubleCommand tarafından kullanılan yaklaşıma benzemektedir.

Zaten fare olaylarını (tıklama, hareket vb.) Gerektiği gibi kesişecek küçük bir test kernesi oluşturdum.

Şu anda sahip olduğum sorun, AppleMultitouchDevice ve/veya AppleMultitouchHIDEventDriver nesnelerinden gelen olayları engellemediğim, çünkü bunlar için sınıf tanımı bulunmadığı. İşaretçiyi, fare engelleyicisinde yaptığım gibi ve DoubleCommand'da olduğu gibi geri arama işlevine yeniden atayabilmem gerekir. Bildiğim kadarıyla, bu AppleMultitouchDevice sınıfını yeniden yapılandırmam gerektiği anlamına geliyor. AppleMultitouchDevice nesnesinin örneğine bir başvuru alabildim, bu yüzden kullanabilmem ve kullanabilmem gerekiyor.

Şimdi burada, altyapıya sahip benim direkt sorular olduğunu:

  • hangi yöntemleri Kext tersine mühendislik veya söz konusu sınıfları yeniden inşa etmek için kullanmak gerekir?
  • Bu çabada bana yardımcı olacak hangi programlar var?
  • Bildiğiniz konuya odaklanan dersler veya e-kitaplar var mı?
  • Geri çağırma işaretçisini, sınıfın tamamını yeniden oluşturmadan yeniden atayabilir miyim?
  • Bu kadar çok yeni olduğum için kaçırdığım başka bir şey olabilir.

Herhangi bir öneri veya yardım için şimdiden teşekkür ederiz!

+0

Apple kaynakları kaynakları kruplarına vermiyor mu? –

+0

Evet, çoğu için. Bununla birlikte, bu, özel tutulur. Sanırım, tüm patentli, patentli teknisyenlerin çoklu dokunuş için nasıl çalıştığına bakmak istemediklerini düşünüyorum. – Tyler

cevap

1

İhtiyacım olanı bulmak başardınız. Şimdi bütün alacağı zaman ve çaba.

+1

Başkaları ile paylaşmak ister misiniz? – jackrabbit

+0

IDA Pro adlı bir program buldum. Tersine mühendislik için hemen hemen her ikili var. Geri arama göstergesinin atandığı yöntemi bulmak için GDB/uzak çekirdek hata ayıklama ile birlikte bu programı kullanmayı umuyorum. Geri arama işaretçisinin ofsetini bulduktan sonra, ASM veya C aracılığıyla bu belleği doğrudan ele alarak yeniden atayabilir/atayabilirim. Yani en zor kısmı tüm yöntem çağrılarını izleyerek ve tüm derlemeyi İşaretçiyi sapta. – Tyler

+0

Bir OS güncellemesi geri arama işaretçisinin adresini hareket ettirdiğinde ne olur? Sistem klavyesini kesmek için '/', '*' ve '-' tuşlarını yukarı/aşağı/kapalı olarak işlemek için kullanmak istedim. Geri çağırmak mümkün olsa da her sistem güncellemesinde değişebileceğini buldum. –

1

Bu herhangi bir yardımcı olabilir mi?

FingerMgMt

+0

Maalesef değil. Ben bunu daha önce görmüştüm. Bu benim yazı ile aynı yaklaşımı kullanarak: http://stackoverflow.com/questions/1669909/extending-functionality-of-magic-mouse-do-i-need-a-kext MultiTouchSupport kullanıyor. kullanıcı uzayda olan çerçeve. Mümkün olan en iyi kontrolü elde etmek için bunu çekirdek alanında yazmak istiyorum. – Tyler

İlgili konular