아이폰기본사용2010. 6. 24. 14:17
QuickPwn21-1 을 이용한 해킹 방법

★ 준비물

   1. QuickPwn21-1.zip ( 카페 기타자료실 -> 터치자료실 )

      http://mfiles.naver.net/2db8318295cdc9153dd8b98cb6572f55f5ad5fbe82/data36/2008/9/20/145/quickpwn21-1(2).alz

      http://mfiles.naver.net/17820bb8acf3f32f07e283b68c6d156fcf9765840b/data36/2008/9/20/295/quickpwn21-1(2).a00

      http://mfiles.naver.net/16830ab9adf3f22e06e382b78d6c146ece96648506/data30/2008/9/20/278/quickpwn21-1(2).a01

      http://mfiles.naver.net/86139a2c320d0cbd937316201afe87fe540af795/data34/2008/9/20/1/quickpwn21-1(2).a02

   2. Microsoft .NET Framework v3.0

      http://file.naver.com/pc/view.html?fnum=129899&cat=34    <-= x86  ( xp , 32비트 환경)

      http://file.naver.com/pc/view.html?fnum=129900&cat=34    <-= x64  ( 64비트 환경)

   3. 펌웨어 2.1 ( iPod1,1_2.1_5F137_Restore.ipsw ) 검색 하시면 금방 찾을수 있습니다.

      ( iTunes 업데이트시 펌웨어 파일 저장되는 경로 / 도구-> 폴더옵션 -> 보기 -> 숨김 파일 및 파일 표시 선택후

        C:\Documents and Settings\사용자계정\Application Data\Apple Computer\iTunes\iPod Software Updates )

★ 사용환경 :  윈도우 xp sp3 , iTunes 8

★ 실행하기

1. 터치를 2.1 상태로 만들어주세요 ( 아이튠즈 쉬프트 + 복원 2.1 펌웨어 파일선택 )

2. 다운받은 압축파일을 풀고 QuickPwn을 실행하면 다음과 같은 화면이 나옵니다.

    ( 개인적으로 C:\에 푸시는걸 추천드립니다 )

   케이블을 연결하시고 다음 =>

3. 펌웨어 선택하는 화면인데요 (아이튠즈를 통해서 업데이트하셨다면 자동으로 펌웨어를 읽습니다)

    그외 폴더에 있는분은 직접 Browse를 눌러서 펌웨어 파일을 선택해주세요

    사용자 계정이 한글이신분은 펌웨어 파일을 C:\에 복사하신후 복사한 펌웨어 파일을 이용해보세요.

    펌웨어 로딩이 끝나면 다음 =>

4. Cydia/Installer/Boot logo 선택화면이군요. 파인애플을 원하신다면

    Replace boot logos를 선택하시고 다음 =>

5. 케이블 연결되어 있으니 바로 다음으로 넘어가죠 =>

6. 해킹의 50%?를 결정하는 곳이군요. USB 연결 이미지가 뜨고 -> 전원 5초 -> 전원 + 홈키 10초 -> 홈키만 30초

   저의 경우 화면에 뜨는 시간보다 2초정도 지난후 다음으로 넘어갑니다.

  예) Hold down the Home and Power button together for 8 seconds... 일때 홈 + 전원키 누르기

   안되면 또 하고 또 하고 계속 하면 되니 조급해 하지 마시고 하세요

7. DFU 모드 진입이 완료되면 아래의 그림처럼 변하면서 게이지가 ~~~~

8. 드디어 해킹이 완료 되었군요.

    터치화면을 보시면 하드디스크 이미지 모양이 보일겁니다.

    그 후 파인애플 그림과 Flashing NOR 글귀 밑에 게이지가 ~ 보일겁니다.

9. 해킹이 완료되고 터치가 재부팅 되면서 화면에 Cydia와 Installer가 보입니다.

※ 크랙된 어플을 사용하실려면 MobileInstallation 2.1 버젼 (기타자료실-> 터치 일반자료실)

    을 다운받아서 넣어주시길 바랍니다.

    경로는 /System/Library/PrivateFrameworks/MobileInstallation.framework/

    터치 익스플로어나 DiskAid 등을 이용해서 넣어주세요

※ 사용하시는 환경에 따라 에러가 발생하실수 있으니 댓글을 통해서 서로 보완 했으면 좋겠네요.

    ( 기재시 사용하는 OS, 아이튠즈 버젼 )

※ 많이 부족하지만 긴글 읽어주셔서 감사합니다. 즐거운 터치 생활하세요.

 


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

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 24. 11:40
아이폰 어플개발에서 인터넷 접속여부를 체크하는 방법

by alex 13. 2월 2009 10:41

#import

#include

- (BOOL) connectedToNetwork

{

    // Create zero addy

    struct sockaddr_in zeroAddress;

    bzero(&zeroAddress, sizeof(zeroAddress));

    zeroAddress.sin_len = sizeof(zeroAddress);

    zeroAddress.sin_family = AF_INET;

 
    // Recover reachability flags

    SCNetworkReachabilityRef defaultRouteReachability = SCNetworkReachabilityCreateWithAddress(NULL, (struct sockaddr *)&zeroAddress);

    SCNetworkReachabilityFlags flags;

 
    BOOL didRetrieveFlags = SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags);

    CFRelease(defaultRouteReachability);

 
    if (!didRetrieveFlags)

    {

        printf("Error. Could not recover network reachability flags\n");

        return 0;

    }

 
    BOOL isReachable = flags & kSCNetworkFlagsReachable;

    BOOL needsConnection = flags & kSCNetworkFlagsConnectionRequired;

 BOOL nonWiFi = flags & kSCNetworkReachabilityFlagsTransientConnection;

    return ((isReachable && !needsConnection) || nonWiFi) ?

 (([[NSURLConnection alloc] initWithRequest:[NSURLRequest

     requestWithURL: [NSURL URLWithString:@"http://www.apple.com/"]

     cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:20.0]

           delegate:self]) ? YES : NO) : NO;

}



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

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 24. 11:40
alert (UIAlertView) 를 보여주는 방법

by alex 13. 2월 2009 16:03

- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{

 if (buttonIndex == 1) {

  //OK clicked

 } else {

 }

}

- (void) _showAlert:(NSString*)title

{

 UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:title message:@"Check your networking configuration." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];

 [alertView show];

 [alertView release];

}



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

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 24. 11:39
iPhone SDK를 사용해서 xml 파싱하는 방법

by alex 4. 3월 2009 07:50


//

//  XMLReader.h

 
#import

 
@class MSearchItem;

 
@interface XMLReader : NSObject {

@private

 MSearchItem *searchItemObj;

 NSMutableString *_contentOfCurrentUserSession;

 NSMutableArray *searchList;

}

 
@property (nonatomic, retain) MSearchItem *searchItemObj;

@property (nonatomic, retain) NSMutableString *contentOfCurrentUserSession;

@property (nonatomic, retain) NSMutableArray *searchList;

 
-(void)parseXMLFileAtURL:(NSURL *)URL parseXMLFile:(NSData *)fileData parseError:(NSError **)error;

 
@end

 
 
//

//  XMLReader.m

 
#import "XMLReader.h"

#import "MSearchItem.h"

 
 
@implementation XMLReader

 
@synthesize searchItemObj;

@synthesize contentOfCurrentUserSession = _contentOfCurrentUserSession;

@synthesize searchList;

 
-(void)parseXMLFileAtURL:(NSURL *)URL parseXMLFile:(NSData *)fileData parseError:(NSError **)error

{

 NSXMLParser *parser = [[NSXMLParser alloc] initWithContentsOfURL:URL];

 //set self as deletegate of the parser so that it will receive the parser deletegate methods callback.

 [parser setDelegate:self];

 // Depending on the XML document you're parsing, you may want to enable these features of NSXMLParser.

 [parser setShouldReportNamespacePrefixes:NO];

 [parser setShouldResolveExternalEntities:NO];

 
 [parser parse];

 
 NSError *parserError = [parser parserError];

 if(parserError && error)

 {

  *error = parserError;

 }

 [parser release];

}

- (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

 attributes:(NSDictionary *)attributeDict

{

    if (qName) {

        elementName = qName;

    }

    if ([elementName isEqualToString:@"searchList"] ) {

  searchList = [[NSMutableArray alloc] init];

 }   

 
    if ([elementName isEqualToString:@"searchItem"] ) {

        self.searchItemObj = [[MSearchItem alloc] init];

     return;

    }

 
    self.contentOfCurrentUserSession = [[NSMutableString alloc] init];

}

 
- (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName

{    

    if (qName) {

        elementName = qName;

    }

 
    if ([elementName isEqualToString:@"searchId"]) {

        self.searchItemObj.searchId = [self.contentOfCurrentUserSession intValue];

        [self.contentOfCurrentUserSession release];

    }

   
    if ([elementName isEqualToString:@"engine_name"]) {

        self.searchItemObj.engine_name = self.contentOfCurrentUserSession;

        [self.contentOfCurrentUserSession release];

    }

 
 if ([elementName isEqualToString:@"icon_url"]) {

        self.searchItemObj.icon_url = self.contentOfCurrentUserSession;

        [self.contentOfCurrentUserSession release];

    }

 if ([elementName isEqualToString:@"search_string_prefix"]) {

        self.searchItemObj.search_string_prefix = self.contentOfCurrentUserSession;

  //NSLog(self.searchItemObj.search_string_prefix);

        [self.contentOfCurrentUserSession release];

    }

 if ([elementName isEqualToString:@"search_delimiter"]) {

        self.searchItemObj.search_delimiter = self.contentOfCurrentUserSession;

        [self.contentOfCurrentUserSession release];

    }

 if ([elementName isEqualToString:@"search_string_suffix"]) {

        self.searchItemObj.search_string_suffix = self.contentOfCurrentUserSession;

        [self.contentOfCurrentUserSession release];

    }

 
 if ([elementName isEqualToString:@"searchItem"] ) {

  [searchList addObject:searchItemObj];

 }

  
}

 
- (void)parser:(NSXMLParser *)parser foundCharacters:(NSString *)string

{

 if(string){

  NSString *firstFour = [string substringToIndex:1];

  if([firstFour isEqualToString:@"\n"]){

   return;

  }

  
  [self.contentOfCurrentUserSession appendString:string];

 }

}

 
- (void)dealloc {

 [_contentOfCurrentUserSession release];

 [super dealloc];

}

 
@end



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

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 24. 11:39
email을 이용해서 주소록에서 정보를 가져오는 방법

by alex 10. 3월 2009 07:54


 //Also you need to include AddressBook.framework

#import

#import

#import

[contactList removeAllObjects];

 
// open the default address book.

ABAddressBookRef m_addressbook = ABAddressBookCreate();

if (!m_addressbook) {

    NSLog(@"opening address book");

}

 
// can be cast to NSArray, toll-free

CFArrayRef allPeople = ABAddressBookCopyArrayOfAllPeople(m_addressbook);

CFIndex nPeople = ABAddressBookGetPersonCount(m_addressbook);

 
// CFStrings can be cast to NSString!

 
for (int i=0;i < nPeople;i++) {

 MContact *contact = [[MContact alloc] init];

  
 ABRecordRef ref = CFArrayGetValueAtIndex(allPeople,i);

 CFStringRef firstName, lastName;

 firstName = ABRecordCopyValue(ref, kABPersonFirstNameProperty);

 lastName  = ABRecordCopyValue(ref, kABPersonLastNameProperty);

 contact.name = [NSString stringWithFormat:@"%@ %@", firstName, lastName];

 
 ABMutableMultiValueRef eMail  = ABRecordCopyValue(ref, kABPersonEmailProperty);

 if(ABMultiValueGetCount(eMail) > 0) {

  contact.email =  (NSString *)ABMultiValueCopyValueAtIndex(eMail, 0);

  [contactList addObject:contact];

 }

  
 CFRelease(ref);

 CFRelease(firstName);

 CFRelease(lastName);

  
  
}



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

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 24. 11:39
HTTP 서버에서 이미지를 다운로드 하는 방법

by alex 28. 4월 2009 13:28


//Download image from HTTP server

NSData *imageData = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com/intl/en_ALL/images/logo.gif"]];

UIImage *image = [UIImage imageWithData:imageData];



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

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 24. 11:39
mp3를 재생하는 방법

by nik 4. 5월 2009 04:55
//need to add: AVFoundation.framework

#import

NSBundle *mainBundle = [NSBundle mainBundle];

NSURL *url = [NSURL fileURLWithPath:[mainBundle pathForResource:@"game" ofType:@"mp3"] isDirectory:NO];

AVAudioPlayer *gameSoundTrack = [[AVAudioPlayer alloc] initWithContentsOfURL:url error:nil];

[gameSoundTrack prepareToPlay];

[gameSoundTrack play];



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

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 24. 11:38
UIImage에서 그림 그리는 방법

by alex 4. 5월 2009 13:15
-(UIImage *)addCircle:(UIImage *)img radius:(CGFloat)radius latCon:(CGFloat)lat lonCon:(CGFloat)lon{

    int w = img.size.width;

    int h = img.size.height;

    lon = h - lon;

    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();

    CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst);

   
 //draw the circle

 CGContextDrawImage(context, CGRectMake(0, 0, w, h), img.CGImage);

 CGRect leftOval = {lat- radius/2, lon - radius/2, radius, radius};

 CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 0.3);

 CGContextAddEllipseInRect(context, leftOval);

 CGContextFillPath(context);

 
    CGImageRef imageMasked = CGBitmapContextCreateImage(context);

    CGContextRelease(context);

    CGColorSpaceRelease(colorSpace);

 
    return [UIImage imageWithCGImage:imageMasked];

}



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

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 24. 11:38
아이폰 어플 개발, 원격 HTTP에서 이미지를 빠르게 저장하는 방법

by alex 9. 5월 2009 03:41
//This method works much faster then [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://www.google.com/intl/en_ALL/images/logo.gif"]];

//Also it works better on bad internet connections

NSMutableURLRequest *requestWithBodyParams = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/intl/en_ALL/images/logo.gif"]];

NSData *imageData = [NSURLConnection sendSynchronousRequest:requestWithBodyParams returningResponse:nil error:nil];

UIImage *image = [UIImage imageWithData:imageData];



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

댓글을 달아 주세요

아이폰어플개발정보2010. 6. 24. 11:37
아이폰 어플 개발 , 주소록에 접근하는 방법

by alex 11. 5월 2009 14:25
//Also you need to include AddressBook.framework

#import

#import

#import

 
 
 
ABAddressBookRef addressBook = ABAddressBookCreate();

ABRecordRef person = ABPersonCreate();

 
ABRecordSetValue(person, kABPersonFirstNameProperty, @"Alex" , nil);

ABRecordSetValue(person, kABPersonLastNameProperty, @"Test", nil);

ABAddressBookAddRecord(addressBook, person, nil);

ABAddressBookSave(addressBook, nil);

 
CFRelease(person);



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

댓글을 달아 주세요