상술한 목적을 달성하기 위한 본 발명의 일 특징에 의하면, 중앙 처리 장치와 메인 메모리와 바이오스 롬과 디스플레이 장치 및 입력 장치들을 구비하고, 제품 인증 정보를 갖는 운영체계 프로그램을 사용하는 컴퓨터 시스템에 있어서: 상기 운영체계 프로그램을 저장하는 저장 수단과; 상기 저장 수단에 상기 운영체계 프로그램의 최초 설치시 사용자로부터 입력되는 상기 운영체계 프로그램의 제품 인증 정보를 저장하는 메모리 수단과; 상기 제품 인증 정보를 상기 메모리 수단으로 기입하는 수단 및; 상기 운영체계 프로그램의 재설치시, 상기 재설치되는 운영체계 프로그램이 상기 메모리 수단에 기입된 상기 제품 인증 정보에 대응하는 운영체계 프로그램과 일치하는 경우에, 상기 메모리 수단으로부터 상기 제품 인증 정보를 독출하여 상기 운영체계 프로그램의 제품 인증을 위한 정보 입력란에 입력하는 수단을 포함한다.
이 특징의 바람직한 실시예에 있어서, 상기 저장 수단은 부트 디바이스로 구비된다.
이 특징의 바람직한 실시예에 있어서, 상기 메모리 수단은 상기 설치된 운영체계 프로그램의 종류 및 상기 제품 인증 정보의 문자열에 대응하여 변환된 코드 구조를 판별하기 위한 정보를 더욱 저장한다.
이 특징의 바람직한 실시예에 있어서, 상기 기입하는 수단은 상기 저장 수단에 구비되는 프로그램으로 구비된다.
이 특징의 바람직한 실시예에 있어서, 상기 입력하는 수단은 프로그램으로 구비된다.
상술한 목적을 달성하기 위한 본 발명의 다른 특징에 의하면, 중앙 처리 장치와 메인 메모리와 바이오스 롬과 상기 바이오스 롬에 의한 설정 정보를 저장하는 보조 메모리를 구비하고, 제품 인증을 위한 정보를 갖는 운영체계 프로그램을 사용하는 컴퓨터 시스템에서, 상기 운영체계 프로그램를 최초 설치할 경우에 상기 제품 인증 정보를 상기 보조 메모리에 기입하는 방법에 있어서: 상기 운영 체계 프로그램의 설치 과정에 대응하여 상기 제품 인증 정보를 사용자가 직접 입력하는 단계와; 상기 제품 인증 정보 기입 프로그램을 구동하는 단계 및; 상기 기입 프로그램의 제어를 받아서 상기 사용자가 직접 입력한 제품 인증 정보를 상기 메모리 수단에 기입하는 단계를 포함한다.
이 특징의 바람직한 실시예에 있어서, 상기 메모리 수단에 상기 제품 인증 정보가 기입되면, 상기 기입 프로그램을 삭제하는 단계를 더욱 포함한다.
상술한 목적을 달성하기 위한 본 발명의 또 다른 특징에 의하면, 제품 인증 정보를 갖는 운영체계 프로그램을 탑재하고, 중앙 처리 장치와 메인 메모리와 상기 제품 인증 정보를 저장하는 보조 메모리 및 적어도 하나 이상의 보조 기억 장치들을 구비하는 컴퓨터 시스템에서, 상기 운영체계 프로그램의 재설치시, 상기 운영체계 프로그램의 최초 설치할 때 사용자가 직접 입력한 상기 제품 인증 정보를 자동으로 입력하는 방법에 있어서: 상기 보조 메모리로부터 상기 제품 인증 정보를 독출하는 단계와; 상기 독출된 제품 인증 정보가 상기 재설치될 운영프로그램의 제품 인증 정보와 일치하는지를 판별하는 단계 및; 상기 두 제품 인증 정보가 일치하면, 상기 운영체계 프로그램의 제품 인증 정보 입력란에 상기 제품 인증 정보를 자동으로 입력하는 단계를 포함한다.
따라서 본 발명에 의하면, 프로덕트 키 입력 프로그램과 복원 프로그램은 내부에 문자열들을 다양한 구조의 코드로 변환, 복원되도록 변환 정보를 정의한다. 그리고 운영체계 프로그램의 프로덕트 키 입력 프로그램에 의해서 사용자로부터 입력된 프로덕트 키를 변환 정보에 의해 특정 코드로 변환하여 확장된 CMOS 램에 저장한다. 그리고 운영체계 프로그램의 재설치시, 복원 프로그램은 확장된 CMOS 램으로부터 변환된 코드 구조를 판별하고, 판별된 코드 구조를 변환 정보에 의해서 문자열들로 복원하여 프로덕트 키를 입력란에 자동 입력한다.
(실시예)
이하 본 발명의 실시예를 첨부된 도면에 의거하여 상세히 설명한다.
도 1은 본 발명에 따른 컴퓨터 시스템의 구성을 도시한 사시도이다.
도면을 참조하면, 상기 컴퓨터 시스템(100)은 신규한 시스템 복원용 CD 롬(160)을 구비하고 있다. 그리고 전형적인 컴퓨터 시스템의 구성 요소들 예컨대, 컴퓨터 본체(90)와 디스플레이 장치(110)와 키보드 장치(120) 및 마우스 장치(130)를 포함한다.
상기 컴퓨터 본체(90)는 적어도 하나 이상의 하드디스크 드라이브(140)와 보조 디스크 드라이브로서 CD 롬 드라이브(150)를 포함하고 있다.
상기 하드디스크 드라이브(140)에는 윈도우 98 운영체계 프로그램 및 다수의 응용 프로그램이 탑재되어 있다. 그리고 본 발명에 따른 운영체계 프로그램의 프로덕트 키를 보조 메모리 장치(예컨대, CMOS 램)에 기입하는 신규한 프로덕트 키 입력 프로그램이 구비되어 있다.
또한 상기 컴퓨터 시스템(100)은 운영체계 프로그램과 함께 사용 설명서(10)를 구비하고 있다. 상기 운영체계 프로그램의 사용 설명서(10)에는 상기 윈도우 98 운영체계 프로그램의 제품 인증서(certificate of authenticity)가 포함되어 있으며, 제품 인증서에는 프로덕트 키(product key)(12)가 포함되어 있다.
따라서 상기 컴퓨터 시스템(100)은 제조업체에 의해서 상기 하드디스크 드라이브(140)에 부분적으로 윈도우 98 운영체계 프로그램과 신규한 프로덕트 키 입력 프로그램이 설치되어 있다. 그리고 일부분은 사용자가 처음으로 상기 컴퓨터 시스템(100)의 전원을 켰을 때, 윈도우 98 운영체계 프로그램의 일부 정보를 직접 구성하도록 되어 있다. 예를 들어, 사용자의 이름, 키보드 구성 및 표준 시간대 설정 등을 확인하는 과정을 진행해야만 운영체계 프로그램이 완전히 설치된다.
이 때, 상기 윈도우 98 운영체계 프로그램의 제품 인증을 위한 프로덕트 키를 입력하기 위한 창(이하, 프로덕트 키 입력창이라 한다)(도 2의 20)이 디스플레이되는데, 사용자는 상기 제품 인증서에 구비된 프로덕트 키(12)를 상기 프로덕트 키 입력창(20)에 직접 입력하게 된다.
즉, 도 2에 도시된 바와 같이, 상기 프로덕트 키 입력창(20)은 윈도우 98 운영체계 프로그램의 제품 인증을 위한 프로덕트 키를 입력하는 프로덕트 키 입력란(22)을 구비하고 있다. 예컨대, 현재 윈도우 98 운영체계 프로그램의 경우, 프로덕트 키(12)는 25 자리의 문자들로 이루어져 있으며, 상기 제품 인증서의 프로덕트 키(12)와 사용자에 의해서 입력된 문자들이 일치하는 경우에만 윈도우 98 운영체계 프로그램은 정상적으로 설치된다.
다시 도 1을 참조하면, 상기 시스템 복원용 CD 롬(160)은 시스템 복원을 위한 복원 프로그램을 포함하고 있으며, 이를 통해 상기 하드디스크 드라이브(140)에 탑재되는 운영체계 프로그램 및 응용 프로그램이 손상되는 경우에 시스템 구입 초기 상태와 동일하게 운영체계 프로그램과 응용 프로그램을 설치시켜 준다.
특히 본 발명에 의하면, 상기 프로덕트 키 입력 프로그램은 운영체계 프로그램의 최초 설치시, 사용자로부터 입력되는 프로덕트 키를 보조 메모리 장치(예컨대, CMOS 램)에 기입한다. 그리고 운영체계 프로그램의 재설치시, 상기 복원 프로그램은 상기 프로덕트 키 입력 프로그램에 의해서 상기 보조 메모리 장치에 기입력된 프로덕트 키를 독출하여 상기 프로덕트 키 입력창의 프로덕트 키 입력란에 자동으로 입력한다.
구체적으로 도 3을 참조하면, 상기 컴퓨터 시스템(100)은 중앙 처리 장치(102)와 메인 메모리(104)와 바이오스 롬(BIOS ROM : 106) 및 신규한 확장된 CMOS 램(extended CMOS RAM)(108)을 포함한다. 그리고 비디오 컨트롤러(112)와 디스플레이 장치(110)를 포함한다.
또한 입출력 컨트롤러(114), IDE 컨트롤러(116) 및 FDD 컨트롤러(118)에는 각각 키보드(120), 마우스(130) 등의 입력 장치와, 적어도 하나 이상의 하드디스크 드라이브(140, 144)와 CD 롬 드라이브(50), 그리고 플로피디스크 드라이브(170)가 구비되어 있다.
상기 바이오스 롬(106)은 상기 CMOS 램(108)에 기입된 정보들을 독출하거나 수정하여 상기 복원용 CD 롬(160) 또는 상기 하드디스크 드라이브(140)로 부팅하도록 제어하는 바이오스(BIOS)를 저장하고 있다.
상기 확장된 CMOS 램(108)은 보조 메모리 장치로서, 보조 전원 장치(예컨대, 배터리)로부터 전원을 공급받아서 기입된 정보들을 항상 보관하고 있다. 그리고 상기 프로덕트 키 입력 프로그램의 제어를 받아서 사용자로부터 입력되는 프로덕트 키를 할당된 영역의 크기에 적합하도록 코드 변환하여 저장한다. 이 때, 상기 프로덕트 키 입력 프로그램은 상기 확장된 CMOS 램에 저장된 코드들을 상기 복원 프로그램에 의해 프로덕트 키의 문자열들로 복원할 수 있도록 코드 변환에 따른 규칙을 정의(예를 들어, 프로그램 내부에 코드 변환 및 복원을 위한 처리 루틴, 코드 변환에 대한 테이블 즉, 코드 변환표를 정의한 데이터 등)하고, 이를 통해 특정 코드로 변환하여 상기 할당된 영역에 저장한다.
예컨대, 상기 확장된 CMOS 램(108)은 IBM 퍼스널 컴퓨터의 표준 CMOS 램의 입출력 어드레스 포트 70h, 71h에 이어서 입출력 어드레스 포트 72h, 73h를 포함한다. 입출력 어드레스 포트 72h는 상기 확장된 CMOS 램(108)의 128 개의 데이터 중에 기입/독출할 데이터의 오프셋 데이터를 저장하는 영역으로, 이 포트에 기입된 오프셋 위치의 데이터를 독출하여 입출력 어드레스 포트 73h를 통해서 상기 독출된 저장 영역으로/으로부터 데이터를 기입/독출한다.
즉, 입출력 어드레스 포트 72h는 상기 확장된 CMOS 램(108)의 인덱스 포트로, 입출력 어드레스 포트 73h는 상기 확장된 CMOS 램(108)의 데이터 포트로 구비된다.
예를 들어, 상기 확장된 CMOS 램(108)의 입출력 어드레스 포트 38h 위치의 데이터를 독출하는 경우에는 다음의 표 1에 나타낸 프로그램과 같이 처리된다.
[표 1]
mov al, 38h ; (1)out 72h, al ; (2)in al, 73h ; (3) |
여기서, 상기 (1)은 상기 확장된 CMOS 램(108)의 입출력 어드레스 포트 38h의 오프셋 데이터를 레지스터 al에 저장하는 것을 나타낸다. 상기 (2)는 저장된 오프셋 데이터를 상기 확장된 CMOS 램(108)의 인덱스 포트 72h에 기입한다. 그리고 상기 (3)은 상기 확장된 CMOS 램(108)의 데이터 포트 73h를 통하여 입출력 어드레스 포트 38h의 오프셋 데이터를 독출한다.
그러므로 상기 프로덕트 키 입력 프로그램의 제어를 받아서 상기 확장된 CMOS 램(108)의 특정 영역에 프로덕트 키를 기입하거나 상기 복원 프로그램의 제어를 받아서 상기 영역으로부터 프로덕트 키를 독출할 수 있다. 상기 복원 프로그램은 운영체계 프로그램의 재설치시, 상기 프로덕트 키 입력 프로그램에 의해 변환된 코드 구조를 판별하고, 판별된 코드들을 상기 프로덕트 키 입력 프로그램에 의해 정의된 코드 변환에 따른 규칙과 동일한 변환 과정을 통해 프로덕트 키의 문자열들로 복원하여 프로덕트 키 입력창에 자동으로 입력한다.
상기 하드디스크 드라이브(140, 144)는 부트 디바이스(boot device)로서의 프라이머리(primary) 하드디스크 드라이브(140)와 새로이 추가될 수 있는 세컨더리(secondary) 하드디스크 드라이브(144)를 구비하고 있으며, 상기 프라이머리 하드디스크 드라이브(140)에는 윈도우 98 운영체계 프로그램 및 응용 프로그램이 저장되어 있다. 또한 상기 세컨더리 하드디스크 드라이브(144)는 상기 복원용 CD 롬(160)으로부터 상기 복원 프로그램(162)을 복사하여 저장(146)하고, 이를 이용하여 운영체계 프로그램 및 응용 프로그램을 최초 설치 상태로 복원할 수 있다.
그리고 상기 CD 롬 드라이브(150)는 부트 디바이스로 구비되며, 상기 복원용 CD 롬(160)을 삽입하여 상술한 문제들이 발생되는 경우에 운영체계 프로그램 및 응용 프로그램을 복원 또는 재설치한다. 그리고 운영체계 프로그램의 재설치시, 상기 복원 프로그램을 이용하여 상기 확장된 CMOS 램(108)으로부터 프로덕트 키를 독출하여 프로덕트 키 입력창에 자동으로 입력한다.
구체적으로 도 11 및 도 12의 흐름도를 참조하여 상기 컴퓨터 시스템(100)의 동작을 설명한다.
도 11은 본 발명에 따른 컴퓨터 시스템의 운영체계 프로그램의 초기 설치시 프로덕트 키를 저장하는 수순을 나타내는 흐름도이다. 상기 컴퓨터 시스템(100)은 제조업체로부터 일부분의 운영체계 프로그램이 설치되어 있다. 그리고 이 수순은 중앙처리 장치(102)가 제조업체에 의해서 미리 하드디스크 드라이브(140)에 저장된 프로덕트 키 입력 프로그램이 처리되는 것으로, 운영체계 프로그램의 최초 설치시 수행된다.
도면을 참조하면, 상기 컴퓨터 시스템(100)은 단계 S220에서 최초 전원이 공급되면, 단계 S222에서 운영체계 프로그램의 설치 과정에 따라 초기 사용자 정보가 등록된다. 예컨대, 사용자의 이름, 키보드 구성 및 표준 시간대 설정 등을 확인하는 절차를 수행한다. 이어서 단계 S224에서 사용자로부터 직접 운영체계 프로그램의 제품 인증을 위한 프로덕트 키가 입력된다. 이 때, 입력된 프로덕트 키는 하드디스크 드라이브(140)의 특정 영역에 저장된다.
그리고 단계 S226에서 운영체계 프로그램의 설치 과정에 따라 계속해서 운영체계 프로그램이 설치된다. 이어서 단계 S228에서는 확장된 CMOS 램(108)에 프로덕트 키를 기입하는 프로덕트 키 입력 프로그램이 구동된다. 이는 제조업체가 미리 하드디스크 드라이브(140)에 저장시켜 두었다가 사용자로부터 프로덕트 키가 입력된 다음, 적정의 설치 과정에서 구동되도록 구비한다.
단계 S230에서는 구동된 프로덕트 키 입력 프로그램에 의하여 사용자로부터 입력된 프로덕트 키를 하드디스크 드라이브로부터 독출하여 상기 확장된 CMOS 램(108)에 기입한다. 이 때, 상기 프로덕트 키 입력 프로그램은 내부에 코드 구조에 대한 변환 규칙을 정의하고 있으며, 이를 통해 프로덕트 키의 문자열을 다양한 코드 구조들 중 하나의 코드 구조로 변환하여 상기 확장된 CMOS 램(108)에 기입한다.
이어서 단계 S232에서 운영체계 프로그램의 프로덕트 키를 재기입하는 것을 방지하기 위하여 프로덕트 키 입력 프로그램을 삭제한다.
단계 S234에서 운영체계 프로그램의 설치 과정에 따라 계속해서 나머지 운영체계 프로그램을 설치한다.
도 12는 본 발명에 따른 프로그램 복원(또는 재설치) 프로세스를 보여주는 흐름도이다. 도 12를 참조하면, 단계 S240에서 하드디스크 드라이브(140)에 저장된 운영체계 프로그램에 결함이 발생하면, CPU(102)는 원래 인스톨된 결함있는 프로그램을 재설치하기 위하여 시스템 복원 CD-ROM(160)에 저장된 복원 프로그램(162) 또는 하드디스크 드라이브(144)에 저장된 복원 프로그램(146)을 실행시킨다.
다음 단계 S242에서 프로세서는 CMOS RAM(108)으로부터 결함있는 운영체계 프로그램의 프로덕트 키를 독출하고, 단계 S244에서 독출된 프로덕트 키의 체크섬(checksum)을 확인한다. 이 때, CMOS RAM(108)으로부터 운영체계 프로그램의 종류 및 변환된 코드 구조를 판별한다. 판별된 코드 구조는 상기 복원 프로그램 내부에 상기 프로덕트 키 입력 프로그램에서 정의된 코드 변환에 대한 규칙과 동일하게 구비되어, 이를 통해 최초 사용자에 의해 입력된 프로덕트 키의 문자열을 복원한다. 이들 변환 규칙에 대해서는 도 4 내지 도 10에서 구체적으로 설명한다.
단계 246에서 프로세서는 독출된 프로덕트 키와 설치될 운영체계 프로그램의 프로덕트 키가 일치하는 지를 판별한다. 만일 독출된 프로덕트 키와 재설치할 운영체계 프로그램의 프로덕트 키가 일치하면, 이 수순은 단계 S248으로 진행하여 독출된 프로덕트 키를 제품 인증을 위한 프로덕트 키 입력창(도 2의 20)에 표시한다. 그리고 운영체계 프로그램의 다음 진행을 위하여 확인 버튼이 입력될 때까지 대기한다. 또한 상기 단계 S246에서 두 프로덕트 키 값이 일치하지 않으면, 이 수순은 단계 S250으로 진행하여 사용자에게 현재 설치되는 운영체계 프로그램의 프로덕트 키를 직접 입력하도록 지시한다.
계속해서 도 4 내지 도 10을 참조하여 상기 확장된 CMOS 램(108)의 저장 영역들을 구체적으로 설명한다.
도 4는 본 발명에 따른 확장된 CMOS 램(108)의 오프셋(offset) 정보에 따른저장 영역을 분류하여 도시한 도면이다.
도면을 참조하면, 상기 확장 CMOS 램(108)의 저장 영역(180)은 신규한 프로덕트 키(product key) 저장 영역(188)과 설치된 운영체계 프로그램 플래그(install OS flag) 영역(186)을 포함한다. 그리고 바이오스 사용 영역(182, 194)과 체크섬(checksum) 영역(184)과 복원 CD 부팅 메뉴 영역(190) 및 복원 모드 정보 영역(192)으로 나누어진다.
상기 바이오스 사용 영역(182 : 00h~DFh, 194 : FEh~FFh)은 바이오스(BIOS)에서 사용하는 영역으로서, 다른 용도로 사용할 수 없다.
상기 체크섬 영역(184 :E0h)은 상기 프로덕트 키(product key) 저장 영역(188)과 상기 설치된 운영체계 프로그램 플래그(install OS flag) 영역(186)을 바이트(byte) 단위로 합산하여 그 결과가 '0' 인지 아닌지를 판별하여 기입된 정보가 정상인지를 검사한다.
상기 설치된 운영체계 프로그램 플래그 영역(186 : E1h ~ E2h)은 현재 설치된 운영체계 프로그램의 프로덕트 키가 어떠한 운영체계 프로그램의 프로덕트 키인지를 판별하기 위한 플래그(flag)로서, 상세한 내용은 도 5에서 설명하기로 하겠다.
상기 복원 CD 부팅 메뉴 영역(190 : FCh)은 바이오스(BIOS)에서 체크섬(chechsum)을 관리하지 않는 영역으로, 바이오스의 CMOS 셋업 프로그램에 의해서 설정되는 부팅 메뉴에서 부트 디바이스를 위한 첫번째 디바이스를 지정하는 정보를 저장한다. 예를 들어, 표 2에 도시된 사용 예와 같이 설정된 정보를 저장한다.
[표 2]
설정 정보 |
지정된 부트 디바이스 |
1 |
플로피디스크 드라이브 |
2 |
하드디스크 드라이브 |
3 |
CD 롬 드라이브 |
4 |
PCMCIA |
5 |
USB 디바이스 |
6 |
내부 네트워크 장치(embedded network) |
상기 복원 모드 정보 영역(192 : FDh)은 상기 복원용 CD 롬(160)에 의하여 시스템 복원시 시스템 부팅 후에 실행될 기능을 설정하여 바이트 단위로 해당 정보를 저장하는 영역이다. 예를 들어, 표 3에서와 같이 초기 상태로 복원할 것인지 또는 운영체계 프로그램 만을 설치할 것인지를 판별할 수 있다.
[표 3]
설정 정보 |
설정 내용 |
0 |
초기 상태로 복원 |
1 |
운영체계 프로그램 설치 |
그리고 상기 프로덕트 키 저장 영역(188 : E3h ~ FBh)은 예를 들어, 25 바이트의 저장 영역을 구비하고 있으며, 도 6과 도 7 및 도 9의 실시예와 같이 프로덕트 키의 문자수에 대응하여 다양한 코드(예컨대, 아스키 코드, 6 비트 변환 코드, 5 비트 변환 코드 또는 특수 문자 코드 등)로 변환하여 저장된다. 이를 위해 상기 기입 프로그램과 상기 복원 프로그램은 프로덕트 키의 문자열들에 대응되어 변환되는 코드 구조들에 대한 변환 규칙을 정의하고 있으며, 이를 이용하여 상기 기입 프로그램은 하나의 코드 구조로 변환하여 상기 프로덕트 키 저장 영역에 저장한다.도 5는 현재 설치된 운영체계 프로그램 플래그의 저장 영역(186)을 상세히 도시한 도면이다.
도면을 참조하면, 상기 설치된 운영체계 프로그램 플래그 영역(186)은 예컨대, 8 비트의 저장 영역을 이용하여 다수의 플래그 비트들을 구비하고 있다. 이들 중 하위 4 비트(bit0 ~ bit3)는 설치된 운영체계 프로그램의 종류를 판별하기 위한 정보를 저장하고, 상위 4 비트(bit4 ~ bit7)는 설치된 운영체계 프로그램 프로덕트 키의 변환된 코드 구조를 판별하기 위한 정보를 저장한다. 상기 코드 구조를 판별 하기 위한 정보는 상기 프로덕트 키 입력 프로그램에 의해 프로덕트 키의 문자열들에 대응하여 변환되는 코드 구조를 판별하기 위한 정보로서, 이는 상기 프로덕트 키 입력 프로그램 및 상기 복원 프로그램에서 다양한 코드 구조들 중 적어도 하나의 코드 구조에 대한 변환 규칙을 프로그램 내부에서 정의하여, 이를 통해 판별된 코드 구조로부터 프로덕트 키의 문자열들을 복원한다.
따라서 복원 프로그램의 처리 수순에 따라서 중앙 처리 장치는 이들 플래그들의 설정 정보를 독출하여 운영체계 프로그램의 설치 여부와 설치된 운영체계 프로그램의 종류 및 설치된 운영체계 프로그램의 프로덕트 키의 저장 상태 등을 판별할 수 있다. 예를 들어, 윈도우 98 SE 운영체계 프로그램이 설치되어 있으며, 프로덕트 키가 1 바이트(8 비트) 코드로 변환되어 있다면, 운영체계 프로그램의 종류를 판별하기 위한 하위 4 비트 'X2h'와, 프로덕트 키의 코드 구조를 판별하기 위한 상위 4 비트 '0Xh'로부터 설정 정보를 독출하여 그 상태를 판별할 수 있다. 이어서 상기 코드 구조를 판별하기 위한 정보를 이용하여 상기 판별된 코드 구조의 변환 규칙에 따라 프로덕트 키의 문자열들로 복원한다.계속해서 도 6 내지 도 10은 본 발명에 따른 프로덕트 키의 문자수에 대응하여 다양한 코드로 변환, 저장하는 실시예를 보여주는 도면이다. 여기서 도 6은 사용자로부터 입력되는 문자들을 1 바이트 단위의 아스키(ASCII) 코드로 변환하여 상기 프로덕트 키 저장 영역(188)에 저장되는 값들을 나타내고 있으며, 도 7은 6 비트 단위로 그리고 도 9는 5 비트로 변환하여 저장하는 값들을 나타내고 있다. 또한 도 8과 도 10은 각각 도 7과 도 9의 실시예에 따른 6 비트 변환 코드표(200)와 5 비트 코드 변환을 위해 현재 마이크로소프트사의 윈도우 98 프로덕트 키에 사용되는 특정 코드 변환표(210)의 구성을 나타내고 있다. 이들 코드 변환표들(200, 210)은 각각 상기 프로덕트 키 입력 프로그램 및 복원 프로그램에서 정의된 해당 코드 변환에 대한 규칙에 의해서 변환된 값들을 나타낸 것이다.
도 6을 참조하면, 이 실시예에서 윈도우 98 운영체계 프로그램의 프로덕트 키는 25 문자들로 이루어져 있으므로 1 문자당 1 바이트를 할당하여 아스키 코드로 변환하여 저장된 프로덕트 키 저장 영역(188a)을 나타낸 것이다. 예를 들어, 첫 번째 문자 'B'는 E3h 영역에 아스키 코드 '01000010'로 변환하여 저장되고, 25 번째 문자 '4'는 FBh 영역에 아스키 코드 '00110100'으로 변환하여 저장된다. 따라서 복원 프로그램은 CMOS 램(108)의 설치된 운영체계 프로그램 플래그 영역(도 5의 186)의 하위 비트 '0Xh'로부터 8 비트의 아스키 코드로 변환되어 저장하고 있었음을 판별한다.
도 7을 참조하면, 이 실시예의 프로덕트 키는 32 문자들로 이루어진 경우를 위해 사용된다. 즉, 이 실시예의 프로덕트 키 저장 영역(188b)은 도 8의 6 비트 변환 코드표를 이용하여 4 문자를 3 바이트로 압축하는 구조로 변환하여 저장된다. 이 때, 각 문자는 아스키 코드에서 6 비트로 변환하기 위하여 해당 문자의 아스키 코드 값에서 6 비트 코드로 변환을 위한 특정값 30h를 감산하여 00h ~ 3Fh 코드 값 내에서 배열되도록 구비한다. 이는 6 비트의 코드 구조를 형성하기 위하여 7, 8 비트의 코드가 동일한 값 즉, 0h로 형성시켜 7, 8 비트를 무시하도록 하는 방법을 이용한 것이다. 이 실시예에서 프로덕트 키 저장 영역(188b)은 1 바이트가 남게 된다. 즉, 6 비트 코드 구조로 판별되면, 복원 프로그램은 프로덕트 키 저장 영역(E3h ~ FBh : 25 바이트) 중 32 문자 * 6 비트 즉, 24 바이트의 프로덕트 키 저장 영역을 독출하여 프로덕트 키를 복원한다. 그리고 복원 프로그램은 설치된 운영체계 프로그램 플래그 영역(도 5의 186)의 하위 비트 '1Xh'로부터 6 비트의 코드 구조로 변환되어 저장되었음을 판별한다. 또한 복원 프로그램은 프로덕트 키 자동 입력시, 상기 판별된 코드 구조를 정의한 처리 과정을 통해 문자열들로 복원한다.
예를 들어, 사용자로부터 입력되는 문자가 '1'의 경우에는 아스키 코드 값 '00110001'에서 '30h' 값을 뺀 '00000001' 중에서 하위 6 비트를 상기 프로덕트 키 저장 영역(188)의 E3h에 저장된다. 즉, 도 8에서 정의된 48 개의 문자들 중에 문자 '1'에 대응하는 '가로값 + 세로값'이 6 비트로 변환된 코드값이 된다. 이어서 다음 문자 'A'는 '11h'이므로 '010001' 값을 문자 '1'의 코드값 다음에 저장한다. 도면에 도시된 바와 같이, 이렇게 문자 '3'과 문자 'Z'가 6 비트로 변환되면, 문자열 '1A3Z'의 4 문자는 3 바이트에 할당되어 저장된다. 즉, 4 문자들은 3 바이트에 걸쳐서 프로덕트 키 저장 영역(188)의 일부 영역에 '05 10 EAh'로 저장된다.
도 9는 운영체계 프로그램의 프로덕트 키가 36 문자로 증가되는 경우에, 마이크로소프트사의 윈도우 98 프로덕트 키에 사용되는 문자들의 조합으로 구성되는 특정 코드 변환표(도 10에 도시됨)(210)를 이용하여 1 문자당 5 비트로 변환하여 저장하는 것을 나타낸 것이다.
도면을 참조하면, 이 실시예에서는 사용자로부터 입력되는 문자들 중에 3 문자를 2 바이트로 할당하여 저장된다.
그리고 도 10의 특정 코드 변환표(210)를 이용하여 각 문자들을 해당 값으로 변환한다. 3 문자 단위 즉, 2 바이트 중 15 비트를 3 문자에 대응하여 해당 코드값을 저장하고, 마지막 16 번째 비트를 사용하지 않도록 정의한다. 따라서 이 실시예에서도 36 문자 * 5 비트 + 12 비트(3 문자 당 16번째 비트) = 192 비트 즉, 24 바이트를 프로덕트 키 저장 영역(188)으로 사용한다.
예를 들어, 3 문자 'YCW'는 도 10의 특정 코드 변환표(210)에 의하여 각각 '10h', '01h' 그리고 '0Eh'로 변환된다. 그리고 3 문자 당 16 번째 비트는 사용하지 않는다. 따라서 2 바이트에는 바이트 당 '40h', '2Eh'가 저장된다.
따라서 운영체계 프로그램의 프로덕트 키를 사용자는 최초에 설치할 때만 입력하고, 그 후에 설치될 때는 복원 프로그램을 이용하여 자동으로 프로덕트 키를 입력할 수 있다.