2013-01-09 4 views
0

나는 탈옥 알림을 사용하는 iOS 장치 용 개발에 상당히 익숙하다. 내가 읽은 바에 의하면 비 jailbroken 전화에서 할 수없는 멋진 일들을 모두 할 수 있으려면 주어진 클래스에 연결하고 그 행동 중 일부를 무시해야한다는 것을 이해한다. 개발자가 정확히 어떤 클래스에 연결해야하는지에 대한 문서가 없으므로 정확히 후크해야합니다.
예를 들어 전화 부팅, 전화 끊기 또는 사용자가 아이콘을 클릭하는 것과 같은 특정 이벤트에 내 앱이 응답하도록하려면 해당 이벤트를 수동으로 생성하고 어떤 호출이 수행되었는지 확인합니다. 이것이 코드를 연결해야하는 위치를 추적하는 올바른 방법인가요? 그렇다면 어떻게 수행할까요?
참고 위에서 언급 한 이벤트에 관심이 없습니다. 일반적으로 접근 방식에 더 관심이 있습니다. 당신은 바이너리를 분해하거나 클래스 덤프 같은과 수업을 덤프 할 수iOS Jailbroken 장치 개발 : 메서드 호출을 덤프하는 방법

  • 분해 바이너리

:

답변

1

몇 가지 방법이 있습니다. 그래서 클래스의 전체 계층 구조를 볼 수 있습니다.

  • 찾기 클래스

주요 아이폰 OS 서브 시스템의 대부분은 이미 누군가에 의해 dissasembled했다 버려진. 당신은 꽤 많은 유용한 것들을 발견 할 수 있습니다.

예 : Google 검색 "스프링 보드 헤더"가 있습니다. this

  • 런타임에 덤프 클래스가 있습니다. 설명은이 질문에

봐는 : 확인 List selectors for Objective-C object

+0

이 객체가 응답 선택기를 덤프하는 것이 좋습니다처럼 보인다. 어떻게 런타임에 클래스와 객체를 덤프합니까? 런타임에 그리고 리버스 엔지니어로부터 모든 선택기 호출/오브젝트를 덤프 할 수 있습니까? 그렇다면 어떻게해야합니까? –

+0

런타임에 모든 클래스/개체 목록을 덤프 할 수 있다고 생각하지 않습니다 (적어도 필자는 이와 비슷한 것을 볼 수 없었습니다). 나는 객체 나 클래스의 selector를 덤프하는 법만 보았다. (응답의 List selector 링크에 설명되어있다.) –

+1

런타임시 NSBundle의 모든 클래스를 덤프 할 수 있다고 생각한다. 이 링크를보십시오 : http://www.cocoabuilder.com/archive/cocoa/191013-getting-list-of-classes-inside-nsbundle.html –

관련 문제