'작업'에 해당되는 글 2건

  1. 2010.06.29 아이폰 3.1.2 BlackRa1n 탈옥 + 안정화 작업
  2. 2010.06.21 [펌] Xcode 에서 디버깅 작업
아이폰기본사용2010. 6. 29. 10:49
아이폰 3.1.2 BlackRa1n 탈옥 + 안정화 작업

안녕하세요 '구구'입니다.

Ping ID : gugu

많은 분들이 쪽지를 주셔서 한번 글을 써보아야겠다고 마음먹고 끄적여 봅니다.

먼저, 전석근님이 요즘 활발한 활동을 해주셔서 제가 구지 쓰지않았다 싶었는데

꽤 많은 질문쪽지가 날라오더라구요 ^^;;이런이런..

1. BlackRa1n 탈옥 강좌. (출처: '중국아이폰'메니져, '아이폰클럽' 스탭이신 전석근님의 사진을 이용하였습니다)

먼저, iPhone의 탈옥에 대해 짧은 강좌를 쓰겠습니다.

* 3.1.2 버전이나 그 밑의 아이폰은 BlackRa1n 을 이용한 탈옥이 됩니다.

아주 간단하게 됩니다.

단! 아이폰의 언락은 해내지 못하므로, 꼭 약정폰에 한해서 탈옥을 하셔야 합니다.

*먼저 펌웨어를 찾아다니시는 많은 이용자들을 향해 한마디 외칩니다.

그냥 9.0 아이튠에서 그냥 '복원' 누르셔도 된다고!

[구지 펌웨어를 찾아서 전처럼 'shift + 복원' 안하셔도 됩니다.

그냥 복원 누르셔서 팩토리복원 하셔도 됩니다]

3.0 의 심락폰 사용자분들께서는 그냥 3.0 사용하세요. 3

.1.2 가 꽤 빠르고 좋은 기반으로 있다한들, 3.1.2 로 올리신다면

전화가 안되는 사태가 올수있습니다.

BlackRa1n 다운받기 링크

자 다운받으신후 차례대로 따라해 주시기 바랍니다. (벌써 많은 분들이 탈옥을 하셨을거라 생각됩니다, 안정화 작업때문에 짧막하게 적는것이니 이해해 주세요 ^^)

1. iTune에서 아이폰을 3.1 이나 3.1.1 에서 3.1.2로 쉽게 복원을 눌러 복원해 줍니다. iTune9.0 부터는 아이폰안에있는 자료가 없어지지 않으므로 쉽게 복원 하시면 됩니다.

2. 복원 후 iTune 꺼주세요.  그리고 Alt + Ctrl +Del 를 눌러서 Window start task manager로 들어가셔서

iTune Helper, iPod service등 iTune과 관계된 모든 시스탬을 꺼주시면 됩니다.

3. 아이폰을 컴터에 USB로 연결후 BlackRain을 실행 시킵니다.

4. 'Mak it ra1n' 버튼을 눌러주시면 됩니다.

**누르기 전에 한번 읽어보세요**

버튼을 누르시면 아이폰이 꺼지면서 복구모드로 들어갑니다.

그러다가 수초후에 애플로고가 뜨면서 탈옥이 실행되거나

아니면 아이튠에 연결해달라는 그림이 뜹니다.

이 둘중 하나가 무조건 되게 되있는데, 전자이면 그냥 탈옥에 성공하셨으니 5번으로 이동!

후자이면, 지금 아이폰은 아이튠에 연결해달라는 그림이 떠있을 것입니다.

그러면 잠시 USB를 빼주신후 Blackrain을 꺼주세요.

그리고 아이폰은 Power button과 Home button을 꾹 눌러줍니다.

수초후 아이폰은 재가동 할것이고 복원된 아이폰의 모습으로 돌아올겁니다.

이렇게 리커버리(DFU)모드로 자동으로 안들어가질때는, 좀 다른 방법으로 풀어가셔야 합니다.

★ 4번으로 돌아가 아이폰연결 + 블랙레인을 킵니다.

그리고 make it wain을 누르신 후 아이폰이 꺼멓게 꺼졌을때 USB를 약 1초 보다 약~간 짧게 뽑았다 살며시 꽃아줍니다.

이때 너무 빨리 뺏다 꽃으시면 안되고 약간의 타이밍을 마추어 해주시면 됩니다. 이때도 되지않았으면 다시 재가동 4번 이동.

5. 이렇게 리커버리모드로 이동하면, 이 그림이 뜨게 되있습니다.

6.그럼 알아서 재부팅을 하게되있는데, 재부팅 후 아이폰을 보시게 되면 Blackra1n의 아이콘이 생성되었을겁니다.

7. 아이콘 실행 Cydia만 install해주세요.

8. BlackRain을 없애고 싶으신분은 없애주시구요. 아니면, 그냥 냅두시구요 ^^;

9. 그럼 끝입니다. (해킹 성공!)

+++++++++++++++++++++++++++++++++안정화 작업+++++++++++++++++++++++++++++++++++++

 자 이제 그럼 안정화 작업에 들어가겠습니다.

1. 해킹아이폰이라면 어플정도는 깔수있어야겠지요!

Cydia 접속 기다렸다가 Graphic유저를 클릭해줍니다.

그럼 한번 꺼질겁니다. 다시 켜주시고 기다렸다가 업데이트 하시겠냐고 물으면 업데이트를 '꼭' 해줍니다.

업데이트 후 cydia꺼주시고, 다시 킵니다.  이제는 Manage -> Source 로 이동해주세요.

http://cydia.hackulo.us를 추가해줍니다.

추가후 Add anyway를 해주신 후

소스로 들어가 AppSync for OS 3.1 을 인스톨 해주시면 됩니다.

그러면 이제 어플을 아이튠에서 인스톨하는데는 문제가 없을겁니다.

추천받은 재미있는 게임은 이 곳 있습니다.

2. 어플을 손쉽게 아이폰으로 직접 다운받게하는 Installous도 Hackulo이 소스안에 있습니다. 인스톨 하시면 손쉽게

사용하시리라 짐작합니다.

3. OpenSSH 를 깔아주셔야 합니다. 그래야지 Theme Chage를 나중에 쉽게 넣으실수있습니다.

OpenSSH는 아이폰 기기와 컴퓨터를 Wifi를 이용하여 연결해주는 다리를 만들어주는 어플이라 할수있겠습니다.

4. WinterBoard 입니다. 윈터보드 구지 설명해야 할까요? theme을 바꾸시려면 꼭 필요한 어플이지요?

5. Backgrounder 아이폰이 꺼져도 계속 어플을 돌리게 해주는 어플입니다.

6. Categories 아이폰안에 폴더를 생성하여 그안에 차곡차곡 어플을 넣게끔해주는 어플입니다.

7. Five icon dock + five-column spriingboard + FiveIRows 아이폰에 4줄을 5줄로 늘려주는 어플입니다. (3GS만 하시기 바랍니다. 3G는 종종 튕기는 현상이 생기기 마련이고 메모리를 잡아먹습니다. 많이는 아니지만 그래도 느려질까봐요 ^^)

8. FontSwap 아이폰의 지루하고 딱딱한 폰트를 바꾸어 주지요.

9. iBlank 그냥 아무것도없는 blanck아이콘을 만드는 어플인데 가끔 유용하게 쓰입니다. 게다가 메모리 안잡아먹구요.

10. LockDown 아주 좋은 어플이지요. 자신이 원하는 어플만 비번을 걸어놓을수있습니다. 저같은 경우는 메세지와 사파리 사진 세개만 걸어놓습니다. (3GS만 추천입니다 3G는 깔지마세요 급 많은 메모리를 소모하기 때문에 3G는 자주자주 다운에 걸립니다.)

11. MakeItMine 캐리어 밑 아이폰 시계 위체에 글을 넣을수있는 또는 캐리어에 자신이 원하는 글을 넣게해주는 어플입니다.

12. MobileLog 어플은 10불 유료입니다. 전 꼭 사서 쓰는 어플인데요. 전화가 오는지 가는지 팅긴건지를 아이폰에 포시해주는 어플입니다.

13. MxTube, 유투브를 고화질로 보실수있게 만들어주고 또한 유투브에 괜찮은 동영상을 자신의 아이폰에 저장할수있게 해주는 어플입니다.

14. Notifier 꼭 깔아야하는 어플중 하나!

15. Powertool 오래전에 유행하던 어플입니다. 요즘은 SBsetting을 쓰지만 메모리 부족으로 버벅거리는 아이폰을 위해 전 SB setting을 쓰지 마시고 꼭 powertool을 사용하라고 권장해드리고 싶네요. SB setting은 아이폰에게 꽤 무거운 메모리 킬러가 아닐수 없습니다. 전 3GS, 3G, 2G다수 보유로인해 종종..시험삼아서 해보지만, 음 각각 많은 메모리를 잡아먹기 때문에 그냥 쓰지않는 것이 좋다라는 판명입니다.

16. Searcher 가끔 필요한 어플입니다.

17. BossTool, BossPref  이 둘은 안정화작업에서 꼭 필요하였지만

더이상 꼭 이란 말이 안들어갑니다.

Edge나 3G를 막고 싶은분에게만 추천합니다.

이정도만 깔으셔도 안정화 작업은 Cydia안에서만 됩니다.

팁으로 제 이쁘장한 아이폰입니다. 지금 사용하는 띰이구요.

뭐 당연히 제가 전에 만들었던 구구 modified Black theme을 개조해서 쓰고있습니다.

바탕만 흑백으로 만들어서 좀 더 고급스럽게 만들었습니다.

원래는 수영복녀였는데 너무 눈에 띄는거 같아서 바꾸었습니다. ㅠㅠ

+++++++++++++++++++++++++++++++++++++++++++팁+++++++++++++++++++++++++++++++++++++++++

ultrasn0w로 언락은 되지않지만, 전화가 되게하는 현상은 보았습니다.

전화가 안된다하시는 분은 한번쯤 시도해보셔도 될만한 툴이라 생각됩니다.

배너:

출처:

 


출처 : http://blog.naver.com/PostView.nhn?blogId=jkw1120&logNo=60097415240
Posted by 오늘마감

댓글을 달아 주세요

XCODE2010. 6. 21. 09:27
[펌] Xcode 에서 디버깅 작업
출처 - http://www.cocoadev.co.kr/73




Xcode에서 디버깅을 하는 방법에 대해서 알아 보겠습니다.

기본적인 내용만 간단히 알아 보는 것이므로, 보다 상세한 내용은 Xcode 메뉴얼이나 gdb 메뉴얼을 참고해 주세요.


1. 소스코드 편집

Xcode를 실행하고 New Project에서 Command Line Utility/Foundation Tool로 새로운 프로젝트를 생성합니다. 전 testDebug로 하였습니다. 소스파일 (testDebug.m)을 열고 아래와 같이 편집합니다.

#import <Foundation/Foundation.h>

int plusNum(int a, int b)
{
    int c;
    
    c = a + b;
    
    return c;
}

int main (int argc, const char * argv[]) {
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];

    // insert code here...
    int i;
    char buff[10];
    
    for(i = 0; i < argc; i++)
    {
        NSLog(@"ARG: %d - %s", i+1, argv[i]);
    }
    
    NSLog(@"MY PATH: %s", getenv("MY_PATH"));
    
    for(i = 0; i < 10; i++)
    {
        buff[i] = '1' + i;
    }
    
    int a, b, c;
    a = 3;
    b= 5;
    
    c = plusNum(a, b);
       
    [pool release];
    return 0;
}


2. 실행인자, 환경변수 설정

빌드 후 실행하면 아래와 같이 ARG 값과 현경변수 MY_PATH의 값을 보실 수 있습니다. 실행 파일의 기본인자는 일반적으로 그 실행파일의 전체경로가 첫번째로 전달됩니다. (사용하시는 OS에 따라 간혹 다를 수 있습니다.) 임의의 MY_PATH 환경변수값은 설정되어 있지 않으므로 null로 출력되었습니다.


이제 디버깅 작업전에 프로그램 실행 시에 줄 수 있는 옵션들에 대해 간단히 알아 보겠습니다. Xcode 좌측의 Groups & Files에서 Executables항목에서 실행파일명을 더블클릭하여 정보창을 엽니다.

좌측과 같이 Arguments 항목 하단 좌측의 [+] 버튼을 눌러 Argument에는 "--all"을 입력합니다.

동일하게 아래의 환경변수창에서도 하단의  [+] 버튼을 눌러 Name에 MY_PATH를 Vale에 임의의 디렉토리를 입력합니다.

(참고로 세번째 Debugging 탭을 클릭하시면 사용하는 디버거, 기본 입출력, 원격 디버깅 등 상세한 디버거 정보를 설정할 수 있습니다. 일반적으로는 기본설정된 상태로 사용하시면 됩니다.)

이 제 프로그램을 다시 실행시켜서 결과를 확인 합니다.





아래와 같이 추가된 인자  "--help"와  환경변수 MY_PATH가 "/usr/local/src"로 설정되어  출력되는 것을 확인하실 수 있습니다.



3. 디버거

Xcode 에서 [shift+command+y] 또는 메뉴의 Debug/Debugger를 클릭하여 디버거를 실행합니다. 디버거를 실행하면 상단에서 아래와 같은 메뉴를 확인하실 수 있습니다.


> Build and Debug
빌드를 하고 성공하면 디버그를 실행합니다.

> Terminate
디 버깅시 나타나며 클릭하면 실행과 디버깅을 종료합니다.

> Fix
디버깅 실행중에 소스 수정이 필요할 경우에는 소스를 수정하고 Fix를 실행하면, 종료/재시작 없이 계속 디버깅을 진행할 수 있습니다.

> Restart
Terminage 와 Debug 명령을 동시에 실행하여, 종료 후 바로 디버깅을 재시작합니다.

> Pause
실행을 잠시 멈춥니다.

> Continue
실행이 중지되어 있을 때, 다음 브레이크포인트를 만나기 전이나 오류발생, 종료 전까지 계속 실행합니다.

> Step Over
함수를 만나도 함수내부로 디버깅을 하지 않고, 다음 라인을 실행합니다.

> Ste Into
함수를 만날 경우 함수내부로 진입하여 디버깅을 진행합니다.

> Step Out
현재 함수를 완료하고 호출된 지점으로 돌아 갑니다.

> Breakpoints
현 재 라인에 브레이크포인트를 추가 또는 제거 합니다. 브레이크포인트는 디버깅 진행시 사용자가 확인을 위하여 어플리케이션 실행이 잠시 중지되는 위치 입니다.

> Console
gdb를 직접 사용할 수 있게 해줍니다.


4. 디버깅

1) 브레이크포인트 설정
디버깅 시 가장 중용한 것 중 하나가 브레이크포인트 입니다. 실행 중간 중간 변수 값 확인을 위해서 의심가는 위치에 실행을 정지하기 위해 브레이크포인트를 설정합니다.

브레이크 포인트는 소스코드 에디터상에서 [command+\]나 에디터 좌측의 판넬(gutter)를 더블클릭함으로서 설정/해제할 수 있습니다. 이제 위의 소스에서 b=5; 라고 되어 있는 라인에 브레이크포인터를 설정하고 디버그를 실행합니다.


위와 같이 브레이크포인트가 설정된 라인에서 프로그램 실행이 멈추었습니다. 우측 상단의 현재 변수값들을 확인해 보면 a는 3으로 지정되었으며 b는 아직 5로 설정되기 전이라 스택의 초기화되지 않은 값이 들어 있습니다.


2) 진행
이제 상단의 [Step Over]를 클릭 또는 [command+shift+o]로 한라인을 실행합니다.

좌측과 같이 b=5;의 한라인 실행되고 다음 라인으로 진행되었습니다.

우측 상단을 보시면 방금 변경된 변수 b가 붉은 색으로 5로 설정되어 있음을 알수 있습니다.




여기서 우측 상단의 변수 c를 우클릭하여 Whatch Variable로 설정합니다. Watch Variable은 변수값이 변경되었을 때 사용자에게 알려 줍니다. 설정되면 변수의 좌측에 돋보기 모양의 아이콘이 나타납니다.



이제 [Step Into] 버튼 [command+shift+i]로 plusNum함수 내부로 들어 가보겠습니다. 실행하면 좌측과 같이 plusNum 함수로 들어와 다음 실행을 위해 대기하고 있습니다.

여기서 잠시 중지하고 변수값을 변경해 보겠습니다.


디버거는 실행 중에 변수값을 변경해 가면서 테스트를 할 수가 있습니다. a=3, b=5로 소스코드에서 설정되어 있습니다. 이제 b의 값을 변경해 보겠습니다. 우측 상단 창에서좌측과 같이  b의 값을 10으로 변경합니다.

이제 다시 Step Over로 한 라인을 진행합니다.

진행하면 c는 13으로 되어 있슴을 확인할 수 있습니다. 또한 c는 Watch Variable로 설정되어 있기 때문에 값이 변했을 때 좌측과 같은 메시지 창이 나타납니다.



중요한 변수를 Watch Variable로 설정해 놓으면, 따로 브레이크포인트를 설정하거나 단계별로 진행하지 않더라도 변경시에만 편하게 알려 줍니다.


5. 기타

1) gdb
Xcode는 디버깅에 gdb를 이용합니다.  우측 상단의 [Console] 버튼을 클릭하면 gdb의 상태를 확인하거나 명령어를 직접 수행할 수 있습니다. 아래는 gdb에서 실행된 모습입니다. next 명령어로 한라인을 진행하고 배열 buff의 값을 파일로 덤프해 보았습니다.



 


위와 같이 터미널에서 buff에 들어 있는 메모리 값을 확인할 수 있습니다. gdb의 사용법을 익혀 놓으시면 빠르고 다양한 방법으로 디버깅을 할 수 있습니다.


2) 브레이크포인트 추가 옵션 설정
[option+command+b]로 브레이크포인트 창을 오픈하여 다양한 옵션을 설정할 수 있습니다. 아래는 해당 브레이크포인트 위치로 왔을 때 Log로 알려 주는 옵션입니다. 우측 하단에  Speak로 설정되어 있으므로, 해당 내용을 음성으로 출력합니다. Log로 설정하면 콘솔창으로 출력해 줍니다. 이외에도 다양한 명령어 및 로그를 설정할 수 있습니다.


Xcode 에서 디버깅을 하는 방법에 대해서 간단히 알아 보았습니다. 프로그램은 구현하는 시간외에도 오류를 찾고 수정하는데도 많은 시간이 걸립니다. 디버거를 이용하면 쉽고 빠르게 오류를 찾아 낼 수 있습니다. 또한 디버깅 작업은 메모리리나 컴파일러가 수행하는 작업을 이해하는데 많은 도움을 줍니다.

gdb의 간단한 사용법만 숙지하시면 쉽게 Xcode의 디버깅 작업을 이해하고 수행할 수 있습니다.



출처 : http://blog.naver.com/PostView.nhn?blogId=seogi1004&logNo=110085699277

'XCODE' 카테고리의 다른 글

[펌] Xcode 3 둘러보기(1) - Xcode  (0) 2010.06.21
[펌] Xcode 3 둘러보기(3) - 기타  (0) 2010.06.21
[펌] Xcode 에서 디버깅 작업  (0) 2010.06.21
[펌] Xcode 에 Subversion 적용하기  (0) 2010.06.21
[펌] Xcode 단축키  (0) 2010.06.21
[펌] Mac OS X 키보드 단축키  (0) 2010.06.17
Posted by 오늘마감

댓글을 달아 주세요