KR100678609B1 - 스마트카드에서 명령어 호출 시스템 및 방법, 이를 위한패치 시스템 및 방법 - Google Patents

스마트카드에서 명령어 호출 시스템 및 방법, 이를 위한패치 시스템 및 방법 Download PDF

Info

Publication number
KR100678609B1
KR100678609B1 KR1020050085191A KR20050085191A KR100678609B1 KR 100678609 B1 KR100678609 B1 KR 100678609B1 KR 1020050085191 A KR1020050085191 A KR 1020050085191A KR 20050085191 A KR20050085191 A KR 20050085191A KR 100678609 B1 KR100678609 B1 KR 100678609B1
Authority
KR
South Korea
Prior art keywords
command
index information
patch
address
address information
Prior art date
Application number
KR1020050085191A
Other languages
English (en)
Inventor
박경철
Original Assignee
주식회사 하이스마텍
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 하이스마텍 filed Critical 주식회사 하이스마텍
Priority to KR1020050085191A priority Critical patent/KR100678609B1/ko
Application granted granted Critical
Publication of KR100678609B1 publication Critical patent/KR100678609B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/226Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/328Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for runtime instruction patching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/355Indexed addressing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 스마트카드의 운영체제에서 명령어를 호출하는 방법 및 시스템, 이를 위한 패치 방법 및 시스템에 관한 것으로, 구체적으로 소정의 인덱스정보와 상기 인덱스정보에 대응되는 명령어의 주소정보가 저장되는 명령어주소정보저장부; 실행되어야 할 명령어의 인덱스정보를 입력받아 상기 명령어주소정보저장부로부터 상기 입력된 인덱스정보에 대응되는 명령어의 주소정보를 추출하는 명령어주소정보추출부; 및 상기 명령어주소정보추출부로부터 추출된 명령어의 주소정보를 이용하여 상기 명령어를 실행시키는 명령어실행부;를 포함하는 것을 특징으로 하는 스마트카드에서의 명령어 호출 시스템 및 이를 위한 호출방법, 그리고 이를 위한 패치 시스템 및 패치 방법에 관한 것이다.
본 발명에 따르면 패치의 수행시 패치될 명령어와 직접적인 관련이 없는 부수적인 데이터의 저장을 위한 공간의 낭비를 방지할 수 있고, 각종 어플리케이션 등의 수행시 패치 여부에 상관 없이 항상 신뢰성 있는 반응시간을 기대할 수 있으며, 또한 스마트카드 내에 수행되는 각종 명령어의 주소정보를 별도의 파일로 프로그래머가 보관하고 있어야 하는 불편함을 방지할 수 있는 장점이 있다.
스마트카드, 패치

Description

스마트카드에서 명령어 호출 시스템 및 방법, 이를 위한 패치 시스템 및 방법{System and method for calling command function in smartcard, and patch system and method therefor}
도 1은 종래의 명령어 호출 방법을 도시한 흐름도
도 2는 본 발명의 스마트카드 시스템의 구성을 도시한 블록선도
도 3은 본 발명의 스마트카드 시스템을 통하여 패치를 수행하는 방법을 도시한 흐름도
도 4는 본 발명의 스마트카드 시스템을 통하여 어플리케이션 등이 수행되는 경우 이를 위하여 실행되는 각 명령어의 호출 및 실행 방법을 도시한 흐름도
본 발명은 스마트카드의 운영체제에 관한 발명으로, 구체적으로 스마트카드의 운영체제에서 명령어를 호출하는 방법 및 시스템, 이를 위한 패치 방법 및 시스템에 관한 것이다.
스마트카드는 내부에 집적회로(Integrated Chip: IC)가 내장된 카드를 말하는 것으로, 그 내부에는 롬(ROM) 영역, 이이피롬(EEPROM) 영역, 램(RAM) 영역 등이 설치되어 있다.
이 중 롬 영역은 스마트카드의 운영체제(Card Operation System: COS) 등이 설치되는 영역으로 스마트카드의 칩 설계시 마스킹되어 설치된 후에는 새로운 데이터가 저장되거나, 기존의 데이터가 변경될 수는 없는 영역이다.
이이피롬(EEPROM) 영역은 새로운 데이터의 저장이 가능한 영역으로 스마트카드에 설치되는 각종 어플리케이션이 설치되고, 패치가 일어나는 경우 그 패치를 위한 어플리케이션(이하에서는 실행코드 또는 실행코드를 포함하는 축소형 운영체제의 의미로 사용한다)이 설치된다.
스마트카드에 설치되는 어플리케이션의 소스코드를 보면 각 APDU(Application Protocol Data Unit) 명령어(이하에서는 함수, 코드 등과 동일한 의미로 사용한다)는 그 명령어를 나타내는 인덱스정보로 표현이 된다. 예를 들어, Read Binary()라는 명령어는 '0xb0'와 같은 형식으로 표현이 된다.
스마트카드의 롬 영역에 설치되는 카드 운영체제(COS)에는 각 인덱스정보별로 해당되는 명령어에 관한 정보(실행코드)가 저장되어 있다.
설치되는 어플리케이션이 a, b, c라는 인덱스정보가 순차적으로 기록된 프로그램인 경우, 카드운영체제는 각각 이에 대응되는 A, B, C라는 명령어를 순차적으로 호출하여 그 어플리케이션이 실행되도록 한다.
만약, 상기한 어플리케이션 또는 스마트카드의 운영체제가 업그레이드가 되면서 인덱스정보 a에 대응되는 명령어가 A에서 A`로 변경이 되어야 하는 경우, 롬 영역 정보는 변경할 수 없으므로 이이피롬(EEPROM) 영역에는 인덱스정보 a에 대응 되는 명령어가 A`로 변경되었다는 사실과, A`명령어에 관한 정보가 포함되는 패치 어플리케이션이 설치되고, 패치가 수행되었다는 사실을 나타내는 플래그가 설정된다.
이렇게 패치를 나타내는 플래그가 설정되면, 카드 운영체제는 어플리케이션 등을 수행하기 위해 명령어를 호출하는 경우 패치 영역을 먼저 검색하여 수행되는 어플리케이션에 기록된 인덱스 정보에 해당되는 명령어가 패치 영역에 포함되어 있는지 검색을 하고, 패치 영역에 어플리케이션에 기재된 인덱스 정보에 대한 명령어가 없는 경우 다시 롬 영역에서 그 인덱스 정보에 대한 명령어를 검색하는 방식을 취하게 된다.
종래의 명령어를 호출하기 위한 구체적인 방법은 도 1에 도시되어 있다. 도 1은 스마트카드에 설치된 소정의 어플리케이션이 실행되어 처음 수행되는 명령어가 실행될 때까지의 과정을 도시한 것이다.
먼저, 설치된 어플리케이션 중의 하나가 실행되면(101), 카드 운영체제는 이이피롬(EEPROM)의 해당 어플리케이션 프로그램이 기록된 영역에 기록된 인덱스 정보를 가져온다(102).
가져온 인덱스 정보에 대응되는 명령어를 롬 영역에서 검색하기에 앞서, 패치 어플리케이션이 설치되었는지를 확인한다(103).
앞에서 언급한 바와 같이, 패치 어플리케이션이 설치되었는지 여부는 패치 플래그가 설정되었는지 여부에 따라 결정된다.
스마트카드 내에는 패치 플래그가 기록되는 영역과, 패치 어플리케이션이 시 작되는 주소가 기록되는 패치주소기록영역이 별도로 존재하며, 패치 어플리케이션이 설치되는 경우 패치 플래그가 '참(TRUE, 0x01)'으로 설정이 되고, 패치주소기록영역에 패치 어플리케이션이 설치된 주소가 기록이 된다.
패치 플래그가 설정이 되어 있는 경우, 즉 패치 어플리케이션이 설치된 것으로 확인이 된 경우에는 패치주소기록영역에 저장된 주소로 이동하여 패치 어플리케이션을 실행시킨다(104). 패치 플래그는 스마트카드 내에 하나만이 설치되어 있으므로 패치 플래그가 설정되어 있다는 사실만으로는 어떤 명령어에 대한 패치가 수행되었는지는 알 수 없고, 따라서 패치 플래그가 설정되어 있는 경우 각각의 명령어를 수행할 때마다 모두 패치 어플리케이션을 실행시켜야 한다.
패치 영역으로 분기되어 패치 어플리케이션이 시작되면(111), 패치 어플리케이션은 카드 운영체제가 가져온 인덱스정보에 관한 정보가 패치 영역에 존재하는지 여부를 검색하여(112), 존재하는 경우에는 그 명령어를 호출하여 실행시키고(113), 그렇지 않은 경우에는 다시 롬 영역의 카드 운영체제로 돌아간다.
카드 운영체제는 패치 어플리케이션이 설치되지 않은 것으로 확인된 경우(103) 또는 패치 어플리케이션이 설치되어 있지만 패치 영역 내에 존재하는 인덱스 정보 중에 가져온 인덱스정보가 존재하지 않는 경우(112) 롬 영역 내에서 가져온 인덱스정보에 대응되는 명령어를 호출하여 실행시킨다(105).
이상과 같은 과정을 거쳐서 어플리케이션을 수행하기 위하여 실행될 첫 번째 명령어가 실행되면 다시 단계 (102) 이하를 수행하여 다음 명령어를 실행시키게 된다.
상기와 같은 종래 방식에 의해 명령어를 호출하는 경우 다음과 같은 문제점이 있다.
먼저, 필요에 따라 새로운 패치 어플리케이션을 설치하고자 할 경우, 새 패치 어플리케이션을 통해 변경 또는 추가하고자 하는 명령어를 위한 공간 외에 패치되는 명령어 이외의 목적을 위한 저장공간이 필요하게 된다. 가령, 인덱스 정보 a에 대응되는 명령어를 A에서 A`로 변경하고자 하는 경우, 이를 위해 설치되는 패치 어플리케이션의 목적은 어플리케이션에서 a라는 인덱스 정보가 있는 경우 A`라는 명령어가 호출되어 실행되도록 하는 것이다.
종래의 방법에서는 명령어에 대한 정보 외에 새로 설치될 패치 어플리케이션이 패치 영역 내에서 기 설치되어 있는 카드 운영체제의 기능을 수행하기 위한 많은 용량의 코드가 부가적으로 포함되어 있고, 이로 인해 저장공간이 추가로 필요하게 되는 단점이 있다.
즉, 상기와 같은 경우 인덱스 정보 a에 대응되는 명령어인 A`에 관한 정보 외에 패치 어플리케이션을 시작하기 위한 코드(111), 패치 어플리케이션에 포함되는 각 명령어의 인덱스 정보와 카드 운영체제에서 가져온 인덱스 정보를 서로 일대일 비교하기 위한 코드(112), 인덱스 정보가 존재하는 경우 그에 대응되는 명령어를 호출하는 코드(113) 등 실행하고자 하는 명령어와 직접적으로 관련되지 않은 카드 운영체제의 기능과 관련된 코드 부분이 포함되게 되어 새로운 패치 어플리케이션의 용량이 커지게 되는 문제점이 있다.
실제로, 하나의 명령어를 패치하는 경우에는 패치되는 명령어 자체의 크기보 다는 그 외의 부수적인 코드들이 저장공간을 훨씬 많이 차지하게 되는데, 예를 들어, 0x9000만을 리턴하는 함수의 경우 실제 코드의 크기는 7바이트 내외이지만 실제로 패치 어플리케이션의 코드 크기는 250바이트 정도가 된다.
일반적으로 스마트카드에서 패치를 위한 공간은 이이피롬(EEPROM) 저장용량의 5~20% 정도이어서 여유공간이 그리 크지 않은데, 패치시 상기와 같은 명령어와 직접적으로 관련이 없는 부수적인 코드들이 차지하는 공간이 크기 때문에 패치를 할 수 있는 횟수가 많이 제한되거나 불가능하게 되는 문제점이 있다.
또 다른 문제로는 패치가 반복되는 경우 앞에서 이미 패치하였던 명령어에 대한 정보도 반드시 다시 포함하여야 하므로 불필요한 반복으로 인한 저장공간의 낭비가 발생하며, 패치의 횟수가 증가할수록 패치 어플리케이션의 크기 또한 비례하여 증가한다는 점이다.
예를 들어, 최초의 패치시 a, b, c라는 인덱스 정보에 대한 패치가 수행되고, 두 번째의 패치시 d, e, f라는 인덱스 정보에 대한 패치가 수행되는 경우, 두 번째 패치를 위한 패치 어플리케이션에는 d, e, f에 대응되는 명령어에 관한 정보뿐만 아니라, a, b, c에 대응되는 명령어에 대한 정보도 다시 포함시켜야 한다.
이는 패치주소기록영역에 기록되어 있던 첫 번째 패치 어플리케이션이 시작되는 주소가 두 번째 패치가 될 때 삭제되고 그 대신 두 번째 패치 어플리케이션이 시작되는 주소가 기록되기 때문에, 카드 운영체제가 패치 영역에서 인덱스 정보에 대한 명령어를 패치영역에서 검색을 할 때 첫 번째 패치 어플리케이션이 저장된 영역은 검색을 하지 않기 때문이다.
또 다른 문제로는 패치 어플리케이션을 제작하는 프로그래머가 각 명령어가 저장된 고유의 주소값을 반드시 알고 있어야 한다는 점이다.
패치 어플리케이션 내에서 패치되는 명령어를 수행할 때 그 명령어 함수 내부적으로 다른 복수의 명령어를 실행하도록 되어 있는 경우, 프로그래머가 내부적으로 실행되어야 하는 명령어에 대한 정보가 저장되어 있는 고유의 주소값을 모르면 패치 어플리케이션 프로그램을 작성할 수가 없게 된다.
일반적인 명령어를 실행할 때에는 카드 운영체제가 어플리케이션에서 실행될 명령어에 해당되는 인덱스 정보를 가져와서 패치가 된 적이 없는 경우에는 카드 운영체제 내에서, 패치가 된 적이 있는 경우에는 패치 영역 및 카드 운영체제 내에서 그 인덱스 정보에 해당되는 명령어를 호출하게 된다.
그러나, 상기한 과정은 어플리케이션이 수행될 때이며, 패치 영역 내에서 명령어가 호출되는 작업을 수행하는 경우에는 호출하는 도중에 롬 영역의 카드 운영체제로 다시 분기되는 과정이 없기 때문에 위와 같은 과정을 통하여 명령어를 호출할 수 없게 된다.
따라서, 패치 어플리케이션 프로그램을 작성하는 프로그래머는 인덱스 정보를 이용할 수 없게 되고, 각 명령어가 저장된 주소값을 이용하여 프로그램을 작성할 수밖에 없게 된다.
따라서, 한 번 카드가 발급된 이후에도 계속하여 그 카드 내에서 각 명령어가 저장된 주소값에 관한 정보를 프로그래머들은 계속하여 관리해야 되는 부담이 있다.
또 다른 문제점으로 종래의 방식에 따르면 패치 여부에 따라 각 어플리케이션의 실행시간 차이가 발생함으로 인하여 신뢰성 있는 반응 시간을 유지할 수가 없다는 단점이 있다.
일단 패치가 되면 카드 운영체제가 어플리케이션을 수행하기 위해 각 어플리케이션을 수행하기 위한 명령어들을 가져와서 실행을 시킬 때, 하나 하나의 명령어를 호출할 때마다 패치영역에 그 명령어가 업그레이드되었는지 여부를 확인하여야 한다. 따라서, 패치가 되었는지 안되었는지 여부에 따라 어플리케이션이 수행되는 시간의 차이가 발생하고, 또한 패치가 된 경우에도 패치영역에 패치된 명령어 크기에 따라 어플리케이션의 수행 속도가 차이가 나게 되어 신뢰성 있는 반응시간을 유지할 수가 없게 되는 제품 품질상의 문제가 있다.
상기한 문제를 해결하기 위해서 본 발명에서는 스마트카드의 패치가 수행된 경우에도 일관된 신뢰성 있는 반응시간을 유지할 수 있는 명령어 호출 방법 및 호출 시스템을 제공하는 것을 목적으로 한다.
또한, 상기한 문제를 해결하기 위해서 본 발명에서는 패치 여부와 상관없이 일관된 신뢰성 있는 반응시간을 유지할 수 있고 패치시 불필요한 코드의 저장으로 인하여 저장공간이 낭비되는 것을 방지하여 패치 어플리케이션의 설치를 위해 요구되는 활용 가능한 저장공간이 종래보다 적더라도 손쉽게 패치가 가능하도록 하기 위한 패치 방법 및 그 시스템을 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위해서 본 발명은 소정의 인덱스정보와 상기 인덱스정보에 대응되는 명령어의 주소정보가 저장되는 명령어주소정보저장부; 실행되어야 할 명령어의 인덱스정보를 입력받아 상기 명령어주소정보저장부로부터 상기 입력된 인덱스정보에 대응되는 명령어의 주소정보를 추출하는 명령어주소정보추출부; 및 상기 명령어주소정보추출부로부터 추출된 명령어의 주소정보를 이용하여 상기 명령어를 실행시키는 명령어실행부;를 포함하는 것을 특징으로 하는 스마트카드에서의 명령어 호출 시스템을 제공한다.
한편, 상기한 목적을 달성하기 위해서 본 발명은 소정의 인덱스정보와 상기 인덱스정보에 대응되는 명령어의 주소정보가 저장되는 명령어주소정보저장부를 포함하는 스마트카드에서의 명령어 호출 방법에 있어서, 실행되어야 할 명령어의 인덱스정보를 입력받는 단계; 상기 명령어주소정보저장부로부터 상기 입력된 인덱스정보에 대응되는 명령어의 주소정보를 추출하는 단계; 및 상기 명령어주소정보추출부로부터 추출된 명령어의 주소정보를 이용하여 상기 명령어를 실행시키는 단계;를 포함하는 것을 특징으로 하는 스마트카드에서의 명령어 호출 방법을 제공한다.
한편, 상기한 목적을 달성하기 위해서 본 발명은 소정의 인덱스정보와 상기 인덱스정보에 대응되는 명령어의 주소정보가 저장되는 명령어주소정보저장부; 패치되는 명령어를 입력받아 저장하고, 상기 명령어에 대응되는 인덱스정보를 입력받는 패치입력부; 상기 패치입력부로부터 입력받은 인덱스정보를 상기 명령어주소정보저장부에서 검색하는 인덱스정보검색부; 및 상기 명령어주소정보저장부에서 검색된 인덱스정보에 대응되는 명령어의 주소를 상기 패치입력부에 의해 저장된 명령어가 저장된 주소로 변경하는 패치수행부;를 포함하는 것을 특징으로 하는 스마트카드에서의 명령어 패치 시스템을 제공한다.
한편, 상기한 목적을 달성하기 위해서 본 발명은 소정의 인덱스정보와 상기 인덱스정보에 대응되는 명령어의 주소정보가 저장되는 명령어주소정보저장부를 포함하는 스마트카드에서의 명령어 패치 방법에 있어서, 패치되는 명령어를 입력받아 저장하는 단계; 상기 명령어에 대응되는 인덱스정보를 입력받는 단계; 상기 입력받은 인덱스정보를 상기 명령어주소정보저장부에서 검색하는 단계; 및 상기 명령어주소정보저장부에서 검색된 인덱스정보에 대응되는 명령어의 주소를 상기 패치되는 명령어가 저장된 주소로 변경하는 단계;를 포함하는 것을 특징으로 하는 스마트카드에서의 명령어 패치 방법을 제공한다.
한편, 상기한 목적을 달성하기 위해서 본 발명은 상기한 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
이하 본 발명의 바람직한 실시예를 도면을 참조하여 상세히 설명한다.
도 2는 본 발명의 스마트카드 시스템의 구성을 도시한 블록선도이다.
본 발명의 스마트카드 시스템은 명령어주소정보저장부(201), 패치입력부(202), 인덱스정보검색부(203), 패치수행부(204), 인덱스정보입력부(205), 명령어주소정보추출부(205) 및 명령어실행부(206)을 포함하여 구성된다.
명령어주소정보저장부(201)에는 각종 명령어에 대응되는 인덱스정보와 그 인덱스정보에 대응되는 명령어의 주소정보, 즉 인덱스정보에 링크된 명령어의 주소정보가 저장된다. 인덱스정보와 그에 대응되는 명령어의 주소정보는 룩업테이블의 형식으로 저장되어 있을 수 있다.
상기한 구성요소 중 명령어주소정보저장부(201) 이외의 구성요소는 스마트카드의 운영체제 내에서 구동되는 구성요소이므로 스마트카드의 롬 영역에 설치되는 것이 바람직하지만, 명령어주소정보저장부(201)에 저장되는 명령어의 주소정보는 패치가 수행되어서 인덱스정보에 대응되는 명령어가 변경될 때마다 그 변경되는 명령어와의 링크를 위한 주소정보가 새로이 저장되어야 하므로 쓰기가 자유로운 데이터 영역에 설치되도록 하는 것이 바람직하다. 명령어주소정보저장부(201)는 자유로이 읽고 쓰기가 가능한 영역에만 설치되면 되고, 이이피롬(EEPROM)영역에 설치되는 것이 가장 바람직하나, 반드시 이에 한정되지는 않으며 램 영역이나 별도의 레지스트리 영역 등 읽고 쓰기가 자유로운 영역이라면 그 설치 영역에 제한이 없다.
패치입력부(202)는 패치시 패치 대상 명령어에 관한 정보와 이에 대응되는 인덱스정보를 입력받아 이를 스마트카드의 이이피롬(EEPROM)영역에 위치한 패치영역에 저장한다.
인덱스정보검색부(203)는 패치입력부(202)를 통하여 입력된 인덱스정보를 명령어주소정보저장부(201)에서 검색한다.
패치수행부(204)는 명령어주소정보저장부(201)에서 인덱스정보검색부(203)에서 검색된 인덱스정보에 대응되는 명령어의 주소를 패치입력부(202)에 의해 입력받아 저장된 명령어의 주소로 변경한다.
즉, 현재 명령어주소정보저장부(201)에 인덱스정보 a와 이에 대응되는 명령어로 A가 저장된 주소정보가 저장되어 있고, 패치입력부(202)를 통하여 인덱스정보 a와 B라는 명령어가 입력되어 저장되는 경우, 인덱스정보검색부(203)는 명령어주소정보저장부(201)에서 인덱스정보 a를 검색하여 찾아내고, 패치수행부(204)는 검색된 인덱스정보 a에 연결된 링크정보를 명령어 A가 저장된 주소정보에서 명령어 B가 저장된 주소정보로 변경하게 된다.
명령어주소정보추출부(205)는 스마트카드에 설치된 어플리케이션의 실행시, 또는 어플리케이션과 무관한 스마트카드의 운영체제 동작시 그 실행되는 각 명령어의 인덱스정보를 입력받고 입력받은 인덱스정보를 명령어주소정보저장부(201)에서 검색하여 그 인덱스정보에 대응되는 명령어가 저장된 주소정보를 추출한다.
명령어실행부(206)는 명령어주소정보추출부(205)에서 추출된 명령어의 주소정보를 이용하여 실행될 명령어를 호출하여 실행시킨다.
도 3은 본 발명의 스마트카드 시스템을 통하여 패치를 수행하는 방법을 도시한 흐름도이다.
본 발명에서 패치는 스마트카드와 스마트카드와 통신을 할 수 있는 단말기를 통하여 수행된다.
패치를 위한 명령어 및 그에 대응되는 인덱스정보를 단말기를 통하여 스마트카드에 전송하면, 스마트카드의 패치입력부(202)는 그 패치할 명령어 및 그에 대응되는 인덱스정보를 입력받고(301), 입력받은 명령어를 이이피롬(EEPROM)의 패치를 위한 영역에 저장한다(302).
인덱스정보검색부(203)는 패치입력부(202)로부터 입력받은 인덱스정보를 제공받아 그와 동일한 인덱스정보를 명령어주소정보저장부(201)에서 검색한다.
패치수행부(204)는 명령어주소정보저장부(201)에서 검색된 인덱스정보에 링크된 명령어의 주소를 패치를 위한 명령어가 저장된 주소로 변경하게 된다(304).
상기한 바와 같이 본 발명에서 패치가 수행이 되는 경우 패치 영역에는 패치와 상관없는 부수적인 코드는 저장되지 않고, 변경되어야 할 명령어에 관한 정보만이 저장되고, 명령어주소정보저장부(201) 내에 명령어와의 링크를 위한 주소정보만이 갱신되는 방식으로 패치가 수행되게 된다. 따라서, 종래와 같이 패치되는 명령어와 직접적인 관련이 없는 코드의 저장을 위하여 패치 영역이 낭비되는 것을 방지하고 최소한의 데이터만을 저장함으로써 패치가 수행될 수 있도록 하는 장점이 있다.
도 4는 본 발명의 스마트카드 시스템을 통하여 어플리케이션 등이 수행되는 경우 이를 위하여 실행되는 각 명령어의 호출 및 실행 방법을 도시한 흐름도이다.
어플리케이션의 수행, 또는 어플리케이션의 동작과 별개의 운영체제 자체의 동작을 위하여 명령어가 실행되는 경우, 수행될 명령어에 대응되는 인덱스정보가 입력되게 된다(401). 즉, 실행될 명령어에 대응되는 인덱스정보가 스마트카드 시스템 중 명령어 호출을 위한 시스템에 입력되게 된다.
명령어주소정보추출부(205)는 인덱스정보를 입력받아 입력된 인덱스정보를 명령어주소정보저장부(201)에서 검색하여 이에 대응되는 명령어가 저장된 주소를 추출하게 된다(402).
명령어실행부(206)는 명령어주소정보추출부(205)에서 추출된 주소정보를 이용하여 실행될 명령어를 호출하고 실행시킨다(403).
상기한 바와 같이 본 발명은 패치 여부와 상관없이 명령어주소정보저장부(201)에서 인덱스정보를 검색하고 그에 대응되는 명령어가 저장된 주소정보를 추출하여 명령어를 호출 및 실행시키므로, 패치 여부와 상관없이 항상 신뢰성 있는 반응시간을 기대할 수 있다. 또한, 모든 명령어의 주소가 명령어주소정보저장부(201)에 저장되어 있으므로 프로그래머의 입장에서 별도로 각 명령어가 저장된 주소정보를 보관하고 있을 필요도 없는 장점이 있다.
본 발명의 상기 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상 설명한 바와 같이, 본 발명에 따르면 패치의 수행시 패치 대상 명령어와 직접 관련이 없는 부수적인 데이터의 저장을 위한 공간의 낭비를 방지할 수 있고, 각종 어플리케이션 등의 수행시 패치 여부에 상관없이 항상 신뢰성 있는 반응시간을 기대할 수 있으며, 또한 스마트카드 내에 수행되는 각종 명령어의 주소정보를 구비함으로써 프로그래머가 해당 명령어의 주소정보를 별도의 파일로 보관하여 야 하는 불편함을 방지할 수 있는 장점이 있다.

Claims (7)

  1. 소정의 인덱스정보와 상기 인덱스정보에 대응되는 명령어의 주소정보가 저장되는 명령어주소정보저장부;
    실행되어야 할 명령어의 인덱스정보를 입력받아 상기 명령어주소정보저장부로부터 상기 입력된 인덱스정보에 대응되는 명령어의 주소정보를 추출하는 명령어주소정보추출부; 및
    상기 명령어주소정보추출부로부터 추출된 명령어의 주소정보를 이용하여 상기 명령어를 실행시키는 명령어실행부;를 포함하는 것을 특징으로 하는 스마트카드에서의 명령어 호출 시스템.
  2. 제1항에 있어서, 상기 명령어 호출 시스템은
    패치되는 명령어를 입력받아 저장하고, 상기 명령어에 대응되는 인덱스정보를 입력받는 패치입력부;
    상기 패치입력부로부터 입력받은 인덱스정보를 상기 명령어주소정보저장부에서 검색하는 인덱스정보검색부; 및
    상기 명령어주소정보저장부에서 검색된 인덱스정보에 대응되는 명령어의 주소를 상기 패치입력부에 의해 저장된 명령어가 저장된 주소로 변경하는 패치수행부;를 더 포함하는 것을 특징으로 하는 스마트카드에서의 명령어 호출 시스템.
  3. 소정의 인덱스정보와 상기 인덱스정보에 대응되는 명령어의 주소정보가 저장되는 명령어주소정보저장부를 포함하는 스마트카드에서의 명령어 호출 방법에 있어서,
    실행되어야 할 명령어의 인덱스정보를 입력받는 단계;
    상기 명령어주소정보저장부로부터 상기 입력된 인덱스정보에 대응되는 명령어의 주소정보를 추출하는 단계; 및
    상기 명령어주소정보추출부로부터 추출된 명령어의 주소정보를 이용하여 상기 명령어를 실행시키는 단계;를 포함하는 것을 특징으로 하는 스마트카드에서의 명령어 호출 방법.
  4. 제3항에 있어서, 상기 명령어 호출 방법은
    패치되는 명령어를 입력받아 저장하는 단계;
    상기 명령어에 대응되는 인덱스정보를 입력받는 단계;
    상기 입력받은 인덱스정보를 상기 명령어주소정보저장부에서 검색하는 단계; 및
    상기 명령어주소정보저장부에서 검색된 인덱스정보에 대응되는 명령어의 주소를 상기 패치되는 명령어가 저장된 주소로 변경하는 단계;를 더 포함하는 것을 특징으로 하는 스마트카드에서의 명령어 호출 방법.
  5. 소정의 인덱스정보와 상기 인덱스정보에 대응되는 명령어의 주소정보가 저장 되는 명령어주소정보저장부;
    패치되는 명령어를 입력받아 저장하고, 상기 명령어에 대응되는 인덱스정보를 입력받는 패치입력부;
    상기 패치입력부로부터 입력받은 인덱스정보를 상기 명령어주소정보저장부에서 검색하는 인덱스정보검색부; 및
    상기 명령어주소정보저장부에서 검색된 인덱스정보에 대응되는 명령어의 주소를 상기 패치입력부에 의해 저장된 명령어가 저장된 주소로 변경하는 패치수행부;를 포함하는 것을 특징으로 하는 스마트카드에서의 명령어 패치 시스템.
  6. 소정의 인덱스정보와 상기 인덱스정보에 대응되는 명령어의 주소정보가 저장되는 명령어주소정보저장부를 포함하는 스마트카드에서의 명령어 패치 방법에 있어서,
    패치되는 명령어를 입력받아 저장하는 단계;
    상기 명령어에 대응되는 인덱스정보를 입력받는 단계;
    상기 입력받은 인덱스정보를 상기 명령어주소정보저장부에서 검색하는 단계; 및
    상기 명령어주소정보저장부에서 검색된 인덱스정보에 대응되는 명령어의 주소를 상기 패치되는 명령어가 저장된 주소로 변경하는 단계;를 포함하는 것을 특징으로 하는 스마트카드에서의 명령어 패치 방법.
  7. 제3항, 제4항 및 제6항 중 어느 한 항에 기재된 방법을 실현시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020050085191A 2005-09-13 2005-09-13 스마트카드에서 명령어 호출 시스템 및 방법, 이를 위한패치 시스템 및 방법 KR100678609B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020050085191A KR100678609B1 (ko) 2005-09-13 2005-09-13 스마트카드에서 명령어 호출 시스템 및 방법, 이를 위한패치 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020050085191A KR100678609B1 (ko) 2005-09-13 2005-09-13 스마트카드에서 명령어 호출 시스템 및 방법, 이를 위한패치 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR100678609B1 true KR100678609B1 (ko) 2007-02-06

Family

ID=38105348

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050085191A KR100678609B1 (ko) 2005-09-13 2005-09-13 스마트카드에서 명령어 호출 시스템 및 방법, 이를 위한패치 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100678609B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927189A (zh) * 2013-01-11 2014-07-16 上海华虹集成电路有限责任公司 智能卡片内操作系统补丁的实现方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05120067A (ja) * 1991-10-30 1993-05-18 Nec Software Ltd プログラムパツチ方式
US6338435B1 (en) 1999-01-15 2002-01-15 Todd Carper Smart card patch manager
JP2002049904A (ja) 2000-08-07 2002-02-15 Tokin Corp Icカードおよびicカード搭載処理プログラムの変更・追加方法
KR20030035171A (ko) * 2001-10-30 2003-05-09 한국전자통신연구원 스마트 카드와 이의 os 프로그램 저장/삭제 및 실행방법
KR20040079166A (ko) * 2003-03-06 2004-09-14 송대석 선택적 애플릿 관리가 가능한 스마트카드 및 그 운용방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05120067A (ja) * 1991-10-30 1993-05-18 Nec Software Ltd プログラムパツチ方式
US6338435B1 (en) 1999-01-15 2002-01-15 Todd Carper Smart card patch manager
JP2002049904A (ja) 2000-08-07 2002-02-15 Tokin Corp Icカードおよびicカード搭載処理プログラムの変更・追加方法
KR20030035171A (ko) * 2001-10-30 2003-05-09 한국전자통신연구원 스마트 카드와 이의 os 프로그램 저장/삭제 및 실행방법
KR20040079166A (ko) * 2003-03-06 2004-09-14 송대석 선택적 애플릿 관리가 가능한 스마트카드 및 그 운용방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103927189A (zh) * 2013-01-11 2014-07-16 上海华虹集成电路有限责任公司 智能卡片内操作系统补丁的实现方法
CN103927189B (zh) * 2013-01-11 2017-10-31 上海华虹集成电路有限责任公司 智能卡片内操作系统补丁的实现方法

Similar Documents

Publication Publication Date Title
CN101763279B (zh) 一种BootLoader架构设计方法
CN109814948B (zh) 基于xposed框架对native层函数进行hook的方法、装置及电子装置
JP2004530184A (ja) 共有ライブラリを使用して実行可能ファイルを管理する方法とシステム
JP2009059349A (ja) 共用型ジャバjarファイル
CN108415736B (zh) 利用进程文件系统标记程序进程的方法、装置和设备
CN105427098B (zh) 一种不同应用之间信息共享的实现方法及装置
CN106484719B (zh) 一种扩展手机存储的方法及终端
CN113641378A (zh) 光模块程序升级方法、装置、设备及可读存储介质
US20110265072A1 (en) Dynamic Installation of Files for Running Programs
WO2008054074A1 (en) Terminal device having function of interfacing compilation libraries in heterogeneous languages, method of calling api, and method of creating compile function
CN104685443A (zh) 锁定引导数据用以更快引导
CN118051277A (zh) 服务器的启动方法、装置、存储介质和电子设备
CN103677933A (zh) 一种为智能卡打补丁的方法和系统
CN113760193B (zh) 用于资源受限制装置的数据读写方法、装置及指令集
EP2199994A1 (en) Portable electronic device
EP3507690B1 (en) Java card application memory footprint optimization
KR100678609B1 (ko) 스마트카드에서 명령어 호출 시스템 및 방법, 이를 위한패치 시스템 및 방법
EP0955577B1 (en) Method and device for creating an object in a non-persistent memory and/or keeping accessibility to said object
CN115543586B (zh) 应用层系统进程的启动方法、装置、设备及可读存储介质
CN103761118A (zh) 一种智能卡及智能卡内部署应用的方法
CN116028267A (zh) 双系统安全手机重置方法、装置、服务器及存储介质
CN101770508B (zh) 移动通信终端中的数据访问方法和设备
CN103677941A (zh) 一种实现智能卡操作系统模块升级的方法及装置
CN114217880A (zh) 一种突破安卓幽灵进程限制的方法
CN112182516A (zh) 基于relro安全保护的检测方法、终端及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20110110

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee