1. 해당 기기용 iOS5를 구합니다. (구글에서 검색하면 잘 나옵니다.)

2. iTunes 10.5 베타도 구해서 설치합니다.

3. iTunes에서 복원 버튼을 키보트에서 Shift 키나 Option키를 누른채로  누릅니다. ipsw를 선택하란 창이 뜹니다. (만약 설치가 잘 안되면 복원 버튼 대신 업데이트를 누릅니다.)

4. iOS5용 ipsw를 선택합니다. 복원이 종료되면 아이폰이 가동됩니다.

5. 홈버튼을 3번 누릅니다. Voice Over 기능이 활성 되면서 음성이 나오고 네모 박스가 생깁니다.

6. 홈버튼을 3번 누릅니다. 긴급 통화 버튼이 생기비니다.

7. 긴급 통화 버튼을 한번 탭 하고 더블 탭 하면 선택됩니다.

8. 긴급 통화로 넘어가면 알림 센터 (위에서 아래로 손가락 3개로 아래로 드래그 하면 나타납니다.) 을 엽니다.

9. 알림 센터가 나타나면 날씨 위젯을 클릭해서 날씨 어플을 띄웁니다.

10. 날씨 어플이 뜨면 홈 버튼을 눌러 종료합니다. 이제 사용하면 됩니다.


출처 : 
http://www.9to5mac.com/71059/exploit-found-to-bypass-ios-5-activation-allowing-non-developers-to-install/ 

영상 :
http://gizmodo.com/5809621/ 
Posted by Parker Falcon










델파이에서 구현해보려고 DLL용 .h 파일을 .pas로 만들어보았다.
원본 SDK는 
http://www.inexio.co.kr/07_download/download02.html

에서 받을 수 있으며 ( http://www.inexio.co.kr/pdf/sdk/Nexio_SDK_v2000.zip ) 


기본적으로는 작동되는데, 몇 가지는 의심스럽긴 하다.


아무튼 필요하시면 그냥 쓰시고, 이상해서 고쳐쓰시거든 댓글로 알려주시면 감사하겠습니다.



/////////////////////////////////////////////////////////////////////////////
//
// file inexio_multi.h
//
//
//  Version 1.10
//
//  Copyright (C) 2005-  NEXIO Co., Ltd. All rights reserved
//
// Homepage : http://www.inexio.co.kr
//
/////////////////////////////////////////////////////////////////////////////




unit NexioPlug;

interface

uses Windows, Classes;

const
  MPT_TOUCH_UP = 0;
  MPT_TOUCH_DOWN = 1;
  MPT_TOUCH_MOVE = 2;

  MTOUCH_TOUCH_UP = (MPT_TOUCH_UP); //Touch Up   OutputMulti dwstate
  MTOUCH_TOUCH_DOWN = (MPT_TOUCH_DOWN); //Touch Down OutputMulti dwstate
  MTOUCH_TOUCH_MOVE = (MPT_TOUCH_MOVE); //Touch Move OutputMulti dwstate

  // MPointElement wStatus
  INACTIVE_COORDINATE = $0000;
  ACTIVE_COORDINATE = $0001;
  IMAGE_COORDINATE = $0002;
  REJECTED_COORDINATE = $0003;

  MAX_MPOINTELEMENT = 100;
  MAX_MPOINTELEMENT_V2 = 98;

  EVENT_ARRIVED = 0; //Event arrived
  TIME_WAS_OUT = 1; //Wait time was out
  UNKNOWN_ERR = 2; //Unknown error object

  NEXIO_ROTATE_0 = 0;
  NEXIO_ROTATE_L90 = 90;
  NEXIO_ROTATE_R90 = 270;
  NEXIO_ROTATE_180 = 180;
  NEXIO_ROTATE_360 = 360;
  NEXIO_ROTATE_MIRROR_V = 1;
  NEXIO_ROTATE_MIRROR_H = 2;
type
  TMPointElement = record
    // Screen Coordinate (x,y) state
    // INACTIVE_COORDINATE, ACTIVE_COORDINATE, IMAGE_COORDINATE
    wStatus: WORD;
    wIndex: WORD; // ID of point

    // Pressed touch point width at screen coordinate (x,y)
    wXLength: WORD;
    // Pressed touch point height at screen coordinate (x,y)
    wYLength: WORD;

    wXWidth: WORD; // Reserved
    wYWidth: WORD; // Reserved

    // Pressed touch x point  at screen coordinate (x,y)
    wX: WORD;
    // Pressed touch y point  at screen coordinate (x,y)
    wY: WORD;

    wXStart: WORD;   // Reserved
    wXEnd: WORD;     // Reserved

    wYStart: WORD;   // Reserved
    wYEnd: WORD;     // Reserved
  end;




  POutputMulti = ^TOutputMulti;
  TOutputMulti = record
    // Multi-touch state
    // MPT_TOUCH_UP, MPT_TOUCH_DOWN, MPT_TOUCH_MOVE
    dwState : DWORD;

    // MAX( mX, mY)
    dwNumber : DWORD;
    // Total X coordinate count
    mX : DWORD;
    // Total Y coordinate count
    mY : DWORD;

    case Integer of
      0: (mPpointsOld : Array [0 .. MAX_MPOINTELEMENT - 1] of Array [0 .. MAX_MPOINTELEMENT - 1] of TMPointElement);
      1: (
//        mPpoints : Array[0 .. MAX_MPOINTELEMENT_V2 - 1] of Array [0 .. MAX_MPOINTELEMENT - 1] of TMPointElement;
        mPpoints : Array[0 .. MAX_MPOINTELEMENT - 1] of Array [0 .. MAX_MPOINTELEMENT_V2 - 1] of TMPointElement;
        sUsbID : Array[0 .. SizeOf(TMPointElement) * MAX_MPOINTELEMENT - 1] of char;

        wUsbID : WORD;
        wMonID : WORD;
        dwRESERVED00 : Array[0 .. 4] of DWORD;
        Reserved : Array[0 .. MAX_MPOINTELEMENT-2-1] of TMPointElement;
        dwRESERVED01 : Array[0 .. 5] of DWORD;
      );
  end;




//////////////////////////////////////////////////////////////////////////
//
// Function:    OpenNexioMulti
//
// Description:
//  Open Event of NEXIO Multi-Point TouchScreen coordinate
//
// Returns:
//  TRUE if Event Open successful, FALSE if Event fails....
//
//////////////////////////////////////////////////////////////////////////
//extern "C" __declspec(dllexport)
//BOOL __stdcall OpenNexioMulti();

function OpenNexioMulti: Boolean; stdcall; external 'MultiDll.dll' name 'OpenNexioMulti';




//////////////////////////////////////////////////////////////////////////
//
// Function:    WaitNexioMulti
//
// Description:
//  Wait Event and Touch Coordinate Output
//
// Input :
// nTime : [in] event wait time :: nTime is millisecond (INFINITE wait event infinite)
// Output :
// pBuffer : [out] pointer of touch coordinate
//
// Returns:
// EVENTARRIVED : Event arrived
// TIMEWASOUT : Wait time was out
// UNKNOWNERR : Unknown error object
//
//////////////////////////////////////////////////////////////////////////

//extern "C" __declspec(dllexport)
//int __stdcall WaitNexioMulti(DWORD nTime, OutputMulti *pBuffer);

function WaitNexioMulti(nTime: DWORD; pBuffer: POutputMulti): Integer; stdcall;  external 'MultiDll.dll' name 'WaitNexioMulti';

//////////////////////////////////////////////////////////////////////////
//
// Function:    CloseNexioMulti
//
// Description:
//  Close Event of NEXIO Multi-Point TouchScreen coordinate
//
//////////////////////////////////////////////////////////////////////////
//extern "C" __declspec(dllexport)
//void __stdcall CloseNexioMulti();
procedure CloseNexioMulti; stdcall; external 'MultiDll.dll' name 'CloseNexioMulti';





//////////////////////////////////////////////////////////////////////////
//
// Function:    NexioSetRotate
//
// Description:
//  set rotation of touch-screen
//  iRotateCode : NEXIO_ROTATE_XXX
//////////////////////////////////////////////////////////////////////////
//extern "C" __declspec(dllexport)
//void __stdcall NexioSetRotate( int iRotateCode );
procedure NexioSetRotate(iRotateCode: Integer); stdcall; external 'MultiDll.dll' name 'NexioSetRotate';





//////////////////////////////////////////////////////////////////////////
//
// Function:    NexioGetRotate
//
// Description:
//  get rotation code of touch-screen
//  return : NEXIO_ROTATE_XXX
//////////////////////////////////////////////////////////////////////////
//extern "C" __declspec(dllexport)
//DWORD __stdcall NexioGetRotate();
function NexioGetRotate: DWORD; stdcall; external 'MultiDll.dll' name 'NexioGetRotate';

implementation




// x,y : point for rotation
// mx, my : width, height of screen
// fRatio : mx / my ( ratio in float )
// dwRotateAngle : angle in degree (NEXIO_ROTATE_XXX)

procedure nxRoratePoint(var x, y: Integer; mx, my: Integer; fRatio: Real; dwRotateAngle: DWORD);
var
  x0, y0: Integer;
begin
x0 := x;
y0 := y;
case dwRotateAngle of
    NEXIO_ROTATE_0:
      Exit;
    NEXIO_ROTATE_L90:
    begin
      x := Trunc( mx - y0 * fRatio );
      y := Trunc( x0 / fRatio );
      Exit;
    end;
    NEXIO_ROTATE_180:
    begin
      x := Trunc( mx - x0);
      y := Trunc( my - y0);
      Exit;
    end;
    NEXIO_ROTATE_R90:
    begin
      x := Trunc( y0 * fRatio );
      y := Trunc( my - x0 / fRatio);
      Exit;
    end;
    NEXIO_ROTATE_360:
    begin
      x := Trunc( y0 * fRatio);
      y := Trunc( x0 / fRatio );
      Exit;
    end;
    NEXIO_ROTATE_MIRROR_V: //mirror vertical
    begin
      y := my - y0;
      Exit;
    end;
    NEXIO_ROTATE_MIRROR_H: //mirror horizontal
    begin
      x := mx - x0;
      Exit;
    end;
  end;

end;





end.
Posted by Parker Falcon
인터넷 익스플로어의 일부 기능이 정상적으로 작동하지 않는 경우가 있다.

특히 윈도XP를 예전에 설치하여 업데이트를 한 컴퓨터의 경우 종종 말썽이 있었다.

원인은 actxprxy.dll 이 없어서 그런 것이며, 1000대 PC중 3대 정도 발견했다.

왜 없는지는 모르겠다.

아무튼 없어서 그랬다.

혹시나 IE6인데 미리보기 / 문서 내 찾기 에서 스크립트 오류 뜨는 경우는, 기본적으로 몇 가지 파일들 (특히 actxprxy.dll ) 이 있는지 확인해보자.
Posted by Parker Falcon