페이지

레이블이 개발인 게시물을 표시합니다. 모든 게시물 표시
레이블이 개발인 게시물을 표시합니다. 모든 게시물 표시

2013년 1월 29일 화요일

iPhone Watchdog

아이폰에 집보는 개가 있었다.



잠깐 구글링해보니 Watchdog 이라는 것은 임베디드나 Unix 쪽 시스템에서 프로세스 감시를 위해 있는 것 같다. 메모리에 프로세스가 올라오고부터 그 프로세스가 제대로 응답하고 있는지 지켜보다가 응답이 없으면 일단 죽였다가 재시작 시키나보다.

2012년 4월 26일 목요일

UIPopoverController on iPhone

iPhone에서 UIPopoverController를 가능하게 하는 법.
리젝은 장담 못하겠다..

2012년 2월 11일 토요일

iOSOpenDev와 PreferenceBundles

iOSOpenDev 라는 Theos 보다 Xcode 친화적인 개발환경이 나왔다.
길다란 네이밍으로 자동완성 없으면 코딩하기 ㅈㄹ불편한 iOS SDK에 단비 같은 것임에 틀림이 없다!
그런데, PrivateFramework 와 PreferenceBundles 가 아직 들어있지 않다. 제작자는 곧 넣을거라는데, 당연히 못 기다린다.
iOSOpenDev 만으로는 안되고 Theos 와 같이 사용하면 편하게 세팅할 수 있다.

2012년 1월 26일 목요일

MSHookIvar

객체의 접근안되는 속성을 가져온다

NSArray *users = MSHookIvar<NSArray *>(self, "_users");

...

MSHookIvar<NSArray *>(self, "_users") = users;

2012년 1월 19일 목요일

iPhone Debug에 필요한 패키지

$ apt-get install com.ericasadun.utilities gawk gdb ldid odcctools sqlite3 sqlite3-lib uuid zip

2011년 12월 5일 월요일

Xcode Device Logs 에서 디버깅 하기

출처: http://www.eigo.co.uk/Deciphering-iPhone-Crash-Logs.aspx

libobjc.A.dylib             0x3695ac98 objc_msgSend + 16
ApplicationName             0x00033e54 0x1000 + 208468
ApplicationName             0x00010f26 0x1000 + 65318
Foundation                  0x355032ee 

2와 3을 보면 어떤 메서드인지 알 수가 없다.
그럴땐 터미널에서 다음 명령 실행

$ atos -o ApplicationName 0x00033e54
- [ClassName someMethod:] (ApplicationName) (ClassName.m:123)

2011년 11월 22일 화요일

MSHook / MSHookFunction


Theos의 기본 substrate.h 로는 MSHook 가 제대로 되지 않는다.
saurik 의 리퍼지터리에서 최신버전을 받아와 Theos 의 파일에 덮어쓰고 시작한다.

MSHook(int, access, const char *path, int amode) {
    //printf("IBT:Debug: access(\"%s\", %u)\n", path, amode);
    NSString *p = [NSString stringWithCString:path encoding:NSUTF8StringEncoding];
    if ([p hasPrefix:@"/var/stash"] || [p hasPrefix:@"/var/log/apt"]) {
        //printf("Detected jailbreak check!!!\n");
        return -1;
    }

    return _access(path, amode);
}

...

%ctor {
    MSHookFunction(&access, &$access, &_access);
}

* 위 샘플은 탈옥감지무력화(?) 하기

Theos 설치 사용하기


  1. Xcode 설치
    앱스토어 또는 developer.apple.com

  2. Theos 설치
    http://iphonedevwiki.net/index.php/Theos/Getting_Started

  3. MobileSubstrate 의 substrate.h 업데이트
    http://svn.saurik.com/repos/menes/trunk/mobilesubstrate/substrate.h
    ---> /opt/theos/include/substrate.h 에 덮어쓰기

  4. 다른 헤더파일들 다운받기
    https://github.com/rpetrich/iphoneheaders/archives/master
    ---> /opt/theos/include/ 에 모두 덮어쓰기