2014-11-17 1 views
3

나는 Theos에서 조정할 시간이 없습니다.
많은 유용한 자습서 덕분에 이제는 몇 가지 간단한 조정을 할 수있게되었습니다.
그러나 항상 잘되지는 않습니다.ios를 분석하는 방법 응용 프로그램을 조정할 수 있습니다.

조정하려면 먼저 "클래스 덤프"라는 유틸리티를 사용해야 응용 프로그램 헤더를 가져와야합니다.
둘째, 검색 및 찾아보기 헤더를 통해 어떤 클래스를 연결해야하는지 추측해야합니다.
셋째, 코드를 작성하고 패키지를 만듭니다.

두 번째 단계를 잘 수행 할 수 없습니다.
어떻게 응용 프로그램이 작동하는지 추측하기 위해 테스트 조정에서 'logo (% orig, % log)'를 사용하고 '/ var/log/syslog'에서 'syslog'를 사용했습니다. 예를 들어
,
클래스 헤더 다음에있을 경우 :

@interface SampleClass 
- (id)methodA:(int)Arg; 
. 
. 
@end 

내가 테스트 팅겨 수 있도록 코드를 다음 쓰기 :이 방법으로

%hook SampleClass 
- (id)methodA:(int)Arg { 
    %log; 
    NSLog(@"return Class is %@", NSStringFromClass([%orig class]); 
    NSLog(@"Argument value is %d", Arg); 
} 
%end 

, 내가 인정 시험을 통해 클래스 및 인수를 반환 할 수 비틀기.

그러나 'methodA'에서 무엇이 완료되는지는 완벽하게 알 수 없습니다.
구체적으로 어떤 원본 코드가 작성되었으며, 어떤 메소드가 어떤 메소드를 호출하는지 알고 싶습니다.

알 수있는 아이디어가 있습니까?

답변

0

개인 API에 연결하려는 경우. 그리고 우리는 개인용 API에 사용할 수있는 문서가 없음을 알고 있습니다. TRIAL 및 ERROR 메서드를 사용하여 해당 메서드에 대해서만 알거나 사람들이 해당 개인 API에 대해 작성한 일부 블로그를 통해 도움을 얻을 수 있습니다.

전체적인 아이디어는 당신이하고 싶은 일에 전적으로 달려 있습니다. 특정 메소드 나 클래스를 지정해두면 도움이 될 것입니다. 너무 많은 private api를 작업 했으므로 도움이 될 수 있습니다.

0

글쎄, 아마도 당신은 분석하고자하는 앱에서 리버스 엔지니어링 툴을 사용하는 것이 좋습니다. 아마도 dissasembler입니다. 여기에 그 중 일부가있는 목록이 있습니다 http://iphonedevwiki.net/index.php/Reverse_Engineering_Tools

나는 개인적으로 호퍼를 약간 시도했지만 코드를 이해하는 것은 여전히 ​​어렵습니다. 아마 IDA는 이것에 더 낫지 만 아직 시도 할 기회가 없었습니다.

또한 obj_msgSend와이 방식으로 모든 objective-c 호출을 기록하려고 시도했지만 아직 기능적 발견을 찾지 못한 프로젝트를 보았습니다. 한 예가 https://github.com/emeau/itrace이지만 더 많은 것을 스스로 검색 할 수 있습니다. 당신이 찾아내는 경우에 기능 하나는 당신이

필요 exaclty 걸 수도, 내가 스눕을-을

UPDATE 체크 아웃 알려

관련 문제