2013-01-08 4 views
0

나는 class-dump 유틸리티가 아이폰 private api에서 헤더를 덤프하는 데 사용된다는 것을 읽었습니다. 그러나 이는 objective-c 프레임 워크에서만 작동합니다. C로 작성된 프레임 워크 (예 : IOSurface, IOMobileFramebuffer 등)에서 작동하는 방식을 알고 싶었습니다.iOS 비공개 API 바이너리에서 얻은 헤더와 함수는 어떻게됩니까? 앱을 리버스 엔지니어링하는 방법은 무엇입니까?

두 번째 부분은 매우 일반적입니다. 나는 cydia 또는 istore에서 다운로드 한 저와 함께 응용 프로그램을 가지고 있습니다. jailbreak 된 상황에서 앱을 리버스 엔지니어링하는 방법 (실제로 필요하다면). 구체적으로 실행 가능한 바이너리와 dylib를 찾을 수 있습니다. 나는 사용되는 프레임 워크를 볼 수있다. 하지만 프레임 워크 내부의 어떤 기능이 앱에 의해 호출되는지 어떻게 알 수 있습니까?

감사합니다.

+0

나는 가능하지 않다고 생각한다. –

+0

리버스 엔지니어링 부분 또는 C 프레임 워크 덤프 중 어느 부분인가? IOSurface, IOMobileFramebuffer 프레임 워크의 헤더가 있기 때문에. 그래서 사람들이 해냈습니다. –

답변

3

나는이 두 가지 질문에이 질문을 무너 뜨리는 것이 좋습니다 :

1)"나는 C, 예를 작성 프레임 워크에 대해 어떻게 작동하는지 알고 싶어 - IOSurface, IOMobileFramebuffer 등" Getting signatures of private API methods for iOS

대답은) 다른 사람이 그것을 분해 및 방법 서명을 발견했다 여부를 확인하기 위해 구글 C 방법을 시도

   입니다 :

나는 정확히 같은 질문을했다. 아무도 전에 이런 짓을하지

    b)의 ​​경우, 당신은


2)는 "어떻게 프레임 워크 내부 기능이되고 있습니다 무엇을해야합니까 할 것입니다 누가 먼저 수 응용 프로그램에서 호출? "

이 프레임 워크/라이브러리 함수에 대한 참조의 두 가지 유형이 있습니다 :

  • 컴파일 시간 당신은 어떤 디스어셈블러를 사용

참조, 그것은 모든 프레임 워크/dylibs에 시간 참조를 컴파일 나열합니다. 누군가가 일부 기능을 사용할 수 dlopen, dlsym 또는 NSBundle을 수행 할 때

  • 런타임 참조

이들은 참조입니다. 디스 어셈블 된 코드를 사용하여 디스 어셈블하고 찾고/grep하여 사용 위치를 찾으십시오. 사용 된 메소드의 이름을 가진 문자열이 있습니다.

+0

답장을 보내 주셔서 감사합니다. 리버스 엔지니어링을 원했던 앱의 dylib에서 otool을 사용했습니다. 그러나 결과 어셈블리 코드는 많은 도움이되지 않습니다. 함수 서명을 찾을 수 없습니다. 그러나 사과 프레임 워크의 경우 함수 서명을 얻을 수 있습니다.그러나 그 주장을하는 것은 힘든 일이됩니다. –

+0

Hopper Disassmebler를 사용해 보는 것이 좋습니다. 합리적으로 싸고 흥미로운 기능이 있습니다 (예를 들어 ASM을 C 코드처럼 변환하려고 시도하는 경우). 이것은 메소드 인자를 배우려고 시도하기에 좋은 시작이다. –

관련 문제