인사말!리버스 엔지니어링 : Apple Kext - 클래스 재구성
현재 Magic Mouse의 기능을 확장하려고합니다. 이를 위해 멀티 터치 드라이버 인 AppleMultitouchDriver.kext에서 이벤트를 가로 채서 해석하고 새로운 이벤트를 전달하거나 실제 이벤트를 전달하는 kext를 작성하려고합니다. 이 접근법은 DoubleCommand에 의해 사용 된 접근법과 유사합니다.
저는 마우스 이벤트 (클릭, 동작 등)를 가로 채기 위해 필요한 작은 테스트 kext를 이미 만들었습니다.
지금 문제는 AppleMultitouchDevice 및/또는 AppleMultitouchHIDEventDriver 개체의 이벤트를 가로 챌 수 없다는 것입니다. 클래스 정의가 없기 때문입니다. 나는 마우스 인터셉터에서와 마찬가지로 DoubleCommand에서와 마찬가지로 콜백 함수에 포인터를 재 할당 할 수 있어야합니다. 지금까지 내가 아는 한, 이것은 AppleMultitouchDevice 클래스를 재구성해야한다는 것을 의미합니다. 이미 AppleMultitouchDevice 객체의 인스턴스에 대한 참조를 얻을 수 있으므로이를 캐스팅하고 사용할 수 있어야합니다.
이제 여기에, 배경을 가지고 내 직접 질문 있음 :
- 어떤 방법 나는 KEXT를 리버스 엔지니어링이나 질문의 클래스를 재구성하기 위해 사용해야합니까?
- 이러한 노력을 돕기 위해 어떤 프로그램을 사용할 수 있습니까?
- 아는 특정 주제에 초점을 둔 자습서 또는 전자 서적이 있습니까?
- 전체 클래스를 실제로 재구성하지 않고도 콜백 포인터를 재 할당 할 수 있습니까?
- 제가 놓친 부분이있을 수 있으므로 다른 부분이 너무 새로 생겼습니다.
미리 조언 해 주셔서 감사합니다.
Apple은 kexts에 소스를 제공하지 않습니까? –
예, 대부분의 경우 그러나 이것은 비공개로 유지됩니다. 나는 특허를 취득한 독점 기술이 멀티 터치를 위해 어떻게 작동하는지 사람들이 엿보기를 바라지 않는다고 생각합니다. – Tyler