WO2000014631A2 - Verfahren zum linken von in einen arbeitsspeicher eines prozessors nachgeladenen programmodulen auf einer chipkarte - Google Patents
Verfahren zum linken von in einen arbeitsspeicher eines prozessors nachgeladenen programmodulen auf einer chipkarte Download PDFInfo
- Publication number
- WO2000014631A2 WO2000014631A2 PCT/DE1999/002784 DE9902784W WO0014631A2 WO 2000014631 A2 WO2000014631 A2 WO 2000014631A2 DE 9902784 W DE9902784 W DE 9902784W WO 0014631 A2 WO0014631 A2 WO 0014631A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- block
- symbolic
- object code
- references
- read
- Prior art date
- Legal status (The legal status 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 status listed.)
- Ceased
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
Definitions
- the present invention relates to a method for linking program modules loaded into a main memory of a processor, for example on a chip card.
- the invention addresses the following problem:
- the operating system on the card must therefore be able to dynamically allocate a free memory area to a module when it is loaded onto the card.
- a module to be reloaded must inform the chip card of which libraries it must access. After it has been verified that the module is allowed access to the corresponding libraries, it must be linked to it, ie provided with the corresponding logical addresses for the accesses. Logical addresses are managed by the card's operating system and can be clearly assigned to physical addresses. If all libraries are on fixed address areas, the new model can dul be statically pre-linked and transferred to the chip card unchanged.
- the new module must be dynamically linked to it, ie the new module must be provided with the currently valid logical addresses of the library.
- the new module therefore only contains the name of the library and the corresponding symbolic segment references, as well as others, if applicable. References to be accessed. During the link process, these references must then be replaced by the currently valid logical addresses, in particular those of the corresponding segments of the library.
- the link process can take place either in the card terminal or on the chip card.
- the former case is considered too unsafe, since it must be ensured that the terminal has not been manipulated.
- the data can be manipulated again on the communication link between the terminal and the card.
- this object is achieved in that the linking process is divided into two sections, the first section being able to take place at any time after the program module has been compiled, and only the second section, in which the symbolic references are resolved, after the The program modules must be loaded.
- a particularly simple program structure is preferably obtained if, in the first section of the method, an object file with a Kop? is generated in which the information about the libraries and their segments that should be linked to.
- header of the object file also contains the information about those dynamic references that are used in the actual object code.
- Blocks is broken down, at the beginning of each block there is information on how many bytes of the object code can be read in until the first symbolic reference occurs, and the block ends with the symbolic reference.
- a particularly simple processing preferably results from the fact that the header of the object code is stored in the working memory at the beginning of the second section of the link process and the actual addresses on the card are assigned to the dynamic references there.
- a particularly simple link process results if, during the second section of the link process, a block start is read in on the card, the number of bytes is saved that can be read without converting a dynamic reference, and then the block without the block start in the memory on the card is read, and at the end of the block, instead of the dynamic reference, the actual address on the card is read from the converted header of the object code.
- 1 shows the structure of the object file as it is structured according to the first section of the link method according to the invention
- 2 shows the state of the program after the conversion of the references in the object code header into the absolute addresses, a reference list having been created
- FIG. 3 shows the state of the program after the conversion of the references in the object code header, a reference stack having been generated
- the dynamic reloading of program modules takes place on a chip card.
- the complex part of the linker has to be split off and removed from the card. Only a simple machine runs in the card itself, which does the resolving of the symbolic references.
- the linker on the card is sufficiently described by the new link format of the object files:
- the header 10 of the object file contains the information about the libraries and their segments to which links are to be placed, as well as the corresponding symbolic references that are used in the actual object code.
- the actual object code is now a sequence of blocks 12, 14, 16. At the beginning of a block there is information about how many bytes of the
- Program codes can be read in until the first dynamic reference occurs. She ends the block.
- the corresponding structure of the object file, as it is transferred to the chip card, is shown in FIG. 1.
- the Object File con- sists of a head 10 of the name of each library and the ⁇ respective segment is to be linked to the respective and contains the corresponding symbolic reference.
- the individual blocks of the object code follow this object header, whereby the block length is always specified at the beginning of the block and each block ends with a symbolic reference.
- the creation of such a 1 structured object codes can occur at any time after the compilation of the program and on any computer.
- the linker on the map reads in the object header and assigns the actual addresses on the map to the symbolic references. If a few symbolic references are often required in the object code, it is advisable to create an assignment table of the symbolic references to the actual addresses. This information must then be present during the entire link process. If a large number of dynamic references are only called up relatively rarely in the object code, there is the option of
- the next block can then be processed.
- Figures 2 to 5 show the object code after conversion of the dynamic references in the head 10.
- the absolute addresses can either be organized in the form of a table, with the assignment to the respective dynamic references in the object code using corresponding reference numbers (1, 2, 3) or the header, like a stack, can contain the absolute addresses in the order in which they are needed by the blocks.
- FIG. 2 shows a solution according to the invention in which a list is generated from the object code header, which list contains the names and the references as well as the respective actual current addresses. This only creates a very small table that takes up very little space if only a few references occur very often in the program. This is shown, for example, by the multiple occurrence of the reference M in the figure.
- FIG. 3 shows a solution according to the invention, the object code header being organized in the form of a stack which stores the addresses in the order in which they occur in the object memory. contains code.
- the loading process is further simplified here, since the top address from the stack only has to be copied in after each block.
- FIG. 4 shows a solution according to the invention, in which a table is stored which, in addition to the name and address, contains the positions at which the respective symbolic reference must be replaced by the actual current address.
- This table can then also be arranged at the end of the object code. This arrangement is even more favorable for processing, since the table then does not have to be kept in the memory, but can only be processed successively after the object code has been loaded into the memory.
- the linker is thus split into a complex prelinker, which can be executed immediately after the program has been compiled. After the prelink process, the code can be signed. The signed code is in the
- the present invention allows for the first time the secure reloading of libraries and applications that are based on these access libraries. Without it, only applications could be reloaded dynamically. For example, the following possible application results:
- the kernel and operating system are statically linked on the chip card.
- the user now wants to dynamically load IATA, a library of all airlines, onto the card and then reload a Guthansa bonus point application that accesses the IATA library.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
- Stored Programmes (AREA)
Abstract
Description
Claims
Priority Applications (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| EP99953697A EP1145118A2 (de) | 1998-09-02 | 1999-09-02 | Verfahren zum linken von in einen arbeitsspeicher eines prozessors nachgeladenen programmodulen auf einer chipkarte |
| KR1020017002772A KR20010079730A (ko) | 1998-09-02 | 1999-09-02 | 프로세서의 작업 메모리내에서 스와핑된 프로그램 모듈을칩카드상에 링킹하기 위한 방법 |
| JP2000569311A JP2002524792A (ja) | 1998-09-02 | 1999-09-02 | プロセッサのワークメモリに後ロードされたプログラムモジュールをチップカード上でリンクする方法 |
| US09/798,105 US20010034818A1 (en) | 1998-09-02 | 2001-03-02 | Method for linking program modules reloaded into a main memory of a processor on a smart card |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE19840029.2 | 1998-09-02 | ||
| DE19840029A DE19840029C1 (de) | 1998-09-02 | 1998-09-02 | Verfahren zum Linken von in einen Arbeitsspeicher eines Prozessors nachgeladenen Programmodulen auf einer Chipkarte |
Related Child Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US09/798,105 Continuation US20010034818A1 (en) | 1998-09-02 | 2001-03-02 | Method for linking program modules reloaded into a main memory of a processor on a smart card |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2000014631A2 true WO2000014631A2 (de) | 2000-03-16 |
| WO2000014631A3 WO2000014631A3 (de) | 2000-07-20 |
Family
ID=7879588
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/DE1999/002784 Ceased WO2000014631A2 (de) | 1998-09-02 | 1999-09-02 | Verfahren zum linken von in einen arbeitsspeicher eines prozessors nachgeladenen programmodulen auf einer chipkarte |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US20010034818A1 (de) |
| EP (1) | EP1145118A2 (de) |
| JP (1) | JP2002524792A (de) |
| KR (1) | KR20010079730A (de) |
| CN (1) | CN1354853A (de) |
| DE (1) | DE19840029C1 (de) |
| WO (1) | WO2000014631A2 (de) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001283160A (ja) * | 2000-03-30 | 2001-10-12 | Dainippon Printing Co Ltd | Icカードおよびicカードの更新装置とその方法 |
| WO2002008873A1 (en) * | 2000-07-25 | 2002-01-31 | Macrovision Coporation | System and method of verifying the authenticity of dynamically connectable executable images |
| US6510516B1 (en) | 1998-01-16 | 2003-01-21 | Macrovision Corporation | System and method for authenticating peer components |
| US6802006B1 (en) | 1999-01-15 | 2004-10-05 | Macrovision Corporation | System and method of verifying the authenticity of dynamically connectable executable images |
| WO2002097619A3 (en) * | 2001-05-30 | 2004-10-28 | Research In Motion Ltd | A mobile communications device application processing system |
| US7650504B2 (en) | 1999-07-22 | 2010-01-19 | Macrovision Corporation | System and method of verifying the authenticity of dynamically connectable executable images |
Families Citing this family (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| RU2206119C2 (ru) * | 2000-09-22 | 2003-06-10 | Закрытое акционерное общество "МЦСТ" | Способ получения объектного кода |
| US7131121B2 (en) * | 2001-11-14 | 2006-10-31 | Axalto, Inc. | Method and apparatus for linking converted applet files without relocation annotations |
| NL1019876C2 (nl) * | 2002-01-31 | 2003-08-04 | Chess Embedded Technology B V | Systeem en werkwijze voor het laden van een programmacode in een inrichting alsmede een werkwijze voor het voeden van een programmacode aan een inrichting. |
| FR2839792B1 (fr) * | 2002-05-15 | 2004-08-20 | Gemplus Card Int | Procede de chargement d'une applet dans un objet electronique portatif |
| US7047101B1 (en) * | 2002-07-29 | 2006-05-16 | Kla-Tencor Technologies Corporation | Reuse in semiconductor measurement recipes |
| DE102004058882A1 (de) * | 2004-12-06 | 2006-06-08 | Giesecke & Devrient Gmbh | Erzeugen von Programmcode in einem Ladeformat und Bereitstellen von ausführbarem Programmcode |
| EP1724677A1 (de) * | 2005-05-19 | 2006-11-22 | Axalto SA | System und Verfahren zur Speicherverwaltung in tragbarem Gerät |
| JP2010198139A (ja) * | 2009-02-23 | 2010-09-09 | Dainippon Printing Co Ltd | プラットフォーム完全性検証システム及び方法,並びに,セキュリティトークン |
| DE112021007471T5 (de) * | 2021-04-07 | 2024-01-18 | Mitsubishi Electric Corporation | Code-anpassungseinrichtung und code-anpassungsverfahren |
| CN114860204B (zh) * | 2022-04-27 | 2024-07-02 | 恒宝股份有限公司 | 程序处理、运行方法、装置、终端、智能卡及存储介质 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2000846A1 (de) * | 1968-01-26 | 1969-09-12 | Hirst Buckley Ltd | |
| JPH02214994A (ja) * | 1989-02-15 | 1990-08-27 | Hitachi Maxell Ltd | Icカード |
| CA2066724C (en) * | 1989-09-01 | 2000-12-05 | Helge Knudsen | Operating system and data base |
| US5507030A (en) * | 1991-03-07 | 1996-04-09 | Digitial Equipment Corporation | Successive translation, execution and interpretation of computer program having code at unknown locations due to execution transfer instructions having computed destination addresses |
| EP0691006B1 (de) * | 1993-03-23 | 1998-01-07 | Apple Computer, Inc. | Gerät und verfahren für ein verschiebbares dateiformat |
| US5734822A (en) * | 1995-12-29 | 1998-03-31 | Powertv, Inc. | Apparatus and method for preprocessing computer programs prior to transmission across a network |
| US6055314A (en) * | 1996-03-22 | 2000-04-25 | Microsoft Corporation | System and method for secure purchase and delivery of video content programs |
| FR2757970B1 (fr) * | 1996-12-30 | 1999-03-26 | Gemplus Card Int | Procede de chargement d'un programme d'utilisation dans un support a puce |
| US6317872B1 (en) * | 1997-07-11 | 2001-11-13 | Rockwell Collins, Inc. | Real time processor optimized for executing JAVA programs |
| US6282706B1 (en) * | 1998-02-10 | 2001-08-28 | Texas Instruments Incorporated | Cache optimization for programming loops |
-
1998
- 1998-09-02 DE DE19840029A patent/DE19840029C1/de not_active Expired - Fee Related
-
1999
- 1999-09-02 KR KR1020017002772A patent/KR20010079730A/ko not_active Ceased
- 1999-09-02 EP EP99953697A patent/EP1145118A2/de not_active Withdrawn
- 1999-09-02 CN CN99810510A patent/CN1354853A/zh active Pending
- 1999-09-02 WO PCT/DE1999/002784 patent/WO2000014631A2/de not_active Ceased
- 1999-09-02 JP JP2000569311A patent/JP2002524792A/ja active Pending
-
2001
- 2001-03-02 US US09/798,105 patent/US20010034818A1/en not_active Abandoned
Cited By (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6510516B1 (en) | 1998-01-16 | 2003-01-21 | Macrovision Corporation | System and method for authenticating peer components |
| US6802006B1 (en) | 1999-01-15 | 2004-10-05 | Macrovision Corporation | System and method of verifying the authenticity of dynamically connectable executable images |
| US7650504B2 (en) | 1999-07-22 | 2010-01-19 | Macrovision Corporation | System and method of verifying the authenticity of dynamically connectable executable images |
| JP2001283160A (ja) * | 2000-03-30 | 2001-10-12 | Dainippon Printing Co Ltd | Icカードおよびicカードの更新装置とその方法 |
| WO2002008873A1 (en) * | 2000-07-25 | 2002-01-31 | Macrovision Coporation | System and method of verifying the authenticity of dynamically connectable executable images |
| AU2000263715B2 (en) * | 2000-07-25 | 2004-11-04 | Rovi Solutions Corporation | System and method of verifying the authenticity of dynamically connectable executable images |
| KR100752067B1 (ko) * | 2000-07-25 | 2007-08-28 | 메크로비젼 코오포레이션 | 동적으로 연결 가능한 실행 가능 이미지들의 진정성을증명하는 시스템 및 방법 |
| CN100394385C (zh) * | 2000-07-25 | 2008-06-11 | 麦克罗维西恩公司 | 确认动态可连接可执行镜像的可靠性的系统和方法 |
| WO2002097619A3 (en) * | 2001-05-30 | 2004-10-28 | Research In Motion Ltd | A mobile communications device application processing system |
| US7493616B2 (en) | 2001-05-30 | 2009-02-17 | Research In Motion Limited | Mobile communication device application processing system |
| EP2244185A1 (de) * | 2001-05-30 | 2010-10-27 | Research In Motion Limited | System zur Verarbeitung einer Anwendung für ein mobiles Kommunikationsgerät |
| US8627316B2 (en) | 2001-05-30 | 2014-01-07 | Blackberry Limited | Mobile communications device application processing system |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20010079730A (ko) | 2001-08-22 |
| US20010034818A1 (en) | 2001-10-25 |
| WO2000014631A3 (de) | 2000-07-20 |
| JP2002524792A (ja) | 2002-08-06 |
| EP1145118A2 (de) | 2001-10-17 |
| CN1354853A (zh) | 2002-06-19 |
| DE19840029C1 (de) | 2000-04-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69918334T2 (de) | Erzeugung von kompilierten programmen für interpretative laufzeitumgebungen | |
| DE69123775T2 (de) | Programmsteuersystem für eine tragbare Datenspeichervorrichtung | |
| WO2000014631A2 (de) | Verfahren zum linken von in einen arbeitsspeicher eines prozessors nachgeladenen programmodulen auf einer chipkarte | |
| DE60001118T2 (de) | Migration von unterschiedlichen quellsprachen zu einer ausführungsumgebung | |
| DE2725718C2 (de) | Datenverarbeitungsanordnung zum Übersetzen von virtuellen Adressen | |
| DE2226382C3 (de) | Datenverarbeitungsanlage mit mehreren Prozessoren und diesen zugeordneten Pufferspeichern | |
| DE69819686T2 (de) | Objekt und verfahren zum bereitstellen eines effizienten mehrbenutzerzugriff auf verteilten betriebssystemkernkode durch instanzierung | |
| DE69427174T2 (de) | Dynamische Hochleistungsprogrammverknüpfung durch Cachespeicherung | |
| DE69029210T2 (de) | Verwaltungsverfahren und Vorrichtung zur Datenspeicherung | |
| DE19681256C2 (de) | Ausführung von Anwendungen am Platz vom Speicher | |
| DE68916853T2 (de) | Unabhängige Programmlader für virtuelle Maschinenarchitektur. | |
| DE69814174T2 (de) | Java laufzeitsystem mit veränderter sammlung von konstanten | |
| DE2550268A1 (de) | Schnelldrucker fuer datenverarbeitungssysteme | |
| DE69028269T2 (de) | Virtuelles Adressierungsverfahren zum Betrieb eines Speichers in einer Datenverarbeitungsanlage und Einrichtung zur Ausführung besagten Verfahrens | |
| DE69429777T2 (de) | System zur dezentralen massenspeichersteuerung eines rechners mit virtuellem speicher | |
| DE69932964T2 (de) | Verfahren, System und Rechnerprogrammprodukt zur Initialisierung einer Datenstruktur beim ersten Gebrauch | |
| DE2350146A1 (de) | Verfahren und netzwerk zur neuordnung eines rechnerspeichersystems | |
| DE1499182B2 (de) | Datenspeichersystem | |
| DE68929080T2 (de) | Anordnung zum Speichern von Informationen für einen Datenanbieterprozessor | |
| DE2326616A1 (de) | Verfahren zum betreiben einer mehrere speichereinheiten enthaltenden datenverarbeitungsanlage | |
| DE4429969A1 (de) | Verfahren für einen Programmpaketeaustausch in einem Mehrrechnersystem und Rechner dafür | |
| DE3441640A1 (de) | Streifenfeldspeichercontroller | |
| DE2550212A1 (de) | Drucker mit pufferspeicher | |
| DE19933584A1 (de) | Verfahren zur kompakten Darstellung von Informationspaketen und deren Speicherung oder Übertragung | |
| DE102008044808B4 (de) | Verfahren zur Generierung von Programmcode in einem Betriebssystemspeicher und einem Applikationsspeicher eines Datenträgers |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| WWE | Wipo information: entry into national phase |
Ref document number: 99810510.4 Country of ref document: CN |
|
| AK | Designated states |
Kind code of ref document: A2 Designated state(s): BR CN IN JP KR MX RU UA US |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| AK | Designated states |
Kind code of ref document: A3 Designated state(s): BR CN IN JP KR MX RU UA US |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 1999953697 Country of ref document: EP |
|
| DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
| ENP | Entry into the national phase |
Ref document number: 2000 569311 Country of ref document: JP Kind code of ref document: A |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 1020017002772 Country of ref document: KR Ref document number: PA/a/2001/002268 Country of ref document: MX |
|
| WWE | Wipo information: entry into national phase |
Ref document number: IN/PCT/2001/260/KOL Country of ref document: IN |
|
| WWP | Wipo information: published in national office |
Ref document number: 1020017002772 Country of ref document: KR |
|
| WWP | Wipo information: published in national office |
Ref document number: 1999953697 Country of ref document: EP |
|
| WWW | Wipo information: withdrawn in national office |
Ref document number: 1999953697 Country of ref document: EP |
|
| WWR | Wipo information: refused in national office |
Ref document number: 1020017002772 Country of ref document: KR |
|
| ENPW | Started to enter national phase and was withdrawn or failed for other reasons |
Ref document number: PI9917392 Country of ref document: BR Free format text: PEDIDO CONSIDERADO RETIRADO EM RELACAO AO BRASIL, POR TER SIDO A FASE NACIONAL INTEMPESTIVA. |