DE102004006308B4 - Method for modifying program code of a portable data carrier by means of patch data - Google Patents
Method for modifying program code of a portable data carrier by means of patch data Download PDFInfo
- Publication number
- DE102004006308B4 DE102004006308B4 DE102004006308A DE102004006308A DE102004006308B4 DE 102004006308 B4 DE102004006308 B4 DE 102004006308B4 DE 102004006308 A DE102004006308 A DE 102004006308A DE 102004006308 A DE102004006308 A DE 102004006308A DE 102004006308 B4 DE102004006308 B4 DE 102004006308B4
- Authority
- DE
- Germany
- Prior art keywords
- memory
- program code
- patch
- data
- patch data
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
Verfahren zum Verändern von ausführbarem Programmcode (20), der in einem nichtflüchtigen überschreibbaren Speicher (18) eines ferner einen Prozessor (12) und eine Kommunikationsschnittstelle (14) aufweisenden tragbaren Datenträgers (10) gespeichert ist, wobei Patchdaten (24), die an der Kommunikationsschnittstelle (14) eingehen, empfangen und von dem Prozessor (12) verarbeitet werden und die Patchdaten (24) zumindest einen Teilbereich (22) des nichtflüchtigen überschreibbaren Speichers (18) definieren und ferner definieren, welchen neuen Programmcode (32) dieser Teilbereich (22) nach der Ausführung des Verfahrens enthalten soll, und wobei der Prozessor (12) den ausführbaren Programmcode (20) wie in den Patchdaten (24) angegeben verändert, dadurch gekennzeichnet, daß der Programmcode (20) als Speicherabbild vorliegt und die Patchdaten (24) definieren, ob und inwieweit der Inhalt mindestens eines Verschiebebereichs (48) des nichtflüchtigen überschreibbaren Speichers (18) verschoben werden soll, der Prozessor (12) diese Verschiebung wie in den Patchdaten (24) angegeben vornimmt, und ferner Referenzen in zumindest einem Teil des nichtflüchtigen überschreibbaren Speichers (18), die auf...method to change of executable Program code (20) stored in a non-volatile rewritable memory (18) a further a processor (12) and a communication interface (14) having portable data carrier (10) is stored, wherein Patch data (24) received at the communication interface (14), received and processed by the processor (12) and the Patch data (24) at least a portion (22) of the non-volatile rewritable memory (18) define and further define which new program code (32) contain this portion (22) after the execution of the method and wherein the processor (12) executes the executable program code (20) as in the patch data (24) indicated changed, characterized that the Program code (20) is present as a memory image and the patch data (24) define whether and to what extent the content of at least one shift area (48) of the non-volatile overwritable Memory (18) is to be moved, the processor (12) this Shift as specified in the patch data (24), and furthermore, references in at least part of the non-transitory rewritable Memory (18), which ...
Description
Die Erfindung betrifft allgemein tragbare Datenträger und spezieller ein Verfahren zum Verändern von Programmcode eines tragbaren Datenträgers mittels Patchdaten. Ein tragbarer Datenträger im Sinne des vorliegenden Dokuments kann insbesondere eine Chipkarte (smart card) in unterschiedlichen Bauformen oder ein Chipmodul oder eine sonstige ressourcenbeschränkte Vorrichtung sein.The This invention relates generally to portable data carriers, and more particularly to a method to change of program code of a portable data carrier by means of patch data. One portable data carrier in For the purposes of the present document, in particular a chip card (smart card) in different designs or a chip module or another resource limited Be device.
Heute übliche Chipkarten weisen in der Regel einen maskenprogrammierten Festwertspeicher (ROM) zur Aufnahme des Betriebssystems und gegebenenfalls weiterer ausführbarer Programme auf. Der Speicherinhalt des ROM ist durch die bei der Herstellung verwendeten Masken unveränderlich festgelegt. Um dennoch eventuell vorhandene Programmierfehler korrigieren zu können, sind sogenannte Patchmechanismen (patch = Flicken, Korrekturstück) bekannt.Today common chip cards usually have a mask-programmed read-only memory (ROM) for the inclusion of the operating system and possibly further executable Programs on. The memory content of the ROM is through the manufacture used masks fixed immutable. In order nevertheless to correct possibly existing programming errors can, So-called patch mechanisms (patch = patch, correction piece) are known.
In Abschnitt 5.4 des Buches "Handbuch der Chipkarten" von W. Rankl und W. Effing, Hanser Verlag, 3. Auflage 1999, Seiten 216–217, ist ein Patchmechanismus dargestellt, bei dem der im ROM befindliche Programmcode Aussprungbefehle zu einem veränderbaren EEPROM-Speicher aufweist. Im Normalfall enthält das Sprungziel im EEPROM lediglich einen Rücksprung zu der dem Aussprungbefehl im ROM unmittelbar folgenden Stelle. Zur Korrektur eines Programmfehlers wird dagegen statt des unmittelbaren Rücksprungs ein Sprung zu einer Patchroutine eingefügt, die ihrerseits – nach Ausführung des fehlerfreien Programmcodes – wieder an eine Stelle im ROM hinter dem Programmfehler verzweigt. Bei typischen heutigen Chipkarten sind mehrere Hundert solche Aussprungbefehle im ROM und Rücksprungbefehle im EEPROM vorgesehen.In Section 5.4 of the book "Handbook the chip cards "from W. Rankl and W. Effing, Hanser Verlag, 3rd edition 1999, pages 216-217 a patch mechanism is shown in which the located in the ROM Program code has jump instructions to a variable EEPROM memory. Normally contains the jump destination in the EEPROM merely returns to the exit command immediately following in the ROM. To correct a program error on the other hand, instead of the immediate return, a jump to a Inserted patch routine, which in turn - after execution of the error-free program code - again branched to a position in the ROM behind the program error. In typical Today's chip cards are several hundred such exit instructions in ROM and return commands provided in the EEPROM.
Um
eine nachträgliche
Korrektur fehlerhafter Programme für Chipkarten zu ermöglichen
schlägt
Aus
der
Aufgrund der stetigen Weiterentwicklung der Halbleitertechnologie ist abzusehen, daß das maskenprogrammierte ROM in Mikrocontrollern für Chipkarten in Zukunft ganz oder teilweise durch nichtflüchtigen beschreibbaren Speicher ersetzt werden wird. Dieser nichtflüchtige beschreibbare Speicher kann beispielsweise als Flash-Speicher oder FRAM (ferroelectric random access memory = ferroelektrischer Speicher mit wahlfreiem Zugriff) ausgestaltet sein. Wenn ein derartiger Speicher als Programmspeicher bei einem Chipkarten-Mikrocontroller vorgesehen ist, kann der im Speicher befindliche Programmcode überschrieben werden.by virtue of the continuous development of semiconductor technology is foreseeable that this mask-programmed ROM in microcontrollers for smart cards in the future completely or partly by non-volatile writable memory will be replaced. This non-volatile writeable Memory can be stored as flash memory or FRAM (ferroelectric random access memory = ferroelectric memory with random Access) be configured. If such a memory as a program memory is provided in a chip card microcontroller, the in the Memory are overwritten.
Es ist prinzipiell möglich, den oben beschriebenen Patchmechanismus auch bei Chipkarten-Mikrocontrollern zu verwenden, die einen nichtflüchtigen beschreibbaren Programmspeicher aufweisen. Hierbei muß jedoch in Kauf genommen werden, daß die Aussprung- und Rücksprungbefehle wertvollen Speicherplatz benötigen und die effektive Geschwindigkeit der Programmausführung verringern. Es wäre daher wünschenswert, diese Probleme, die bei Chipkarten mit maskenprogrammiertem Festwertspeicher unumgänglich sind, bei Chipkarten mit nichtflüchtigem überschreibbaren Programmspeicher zu vermeiden.It is possible in principle, the patch mechanism described above also with chip card microcontrollers to use a non-volatile have writable program memory. Here, however, must be accepted that the Exit and return commands need valuable storage space and reduce the effective speed of program execution. It would therefore be desirable, these problems, which are inevitable with chip cards with mask-programmed read-only memory, with chip cards with non-volatile overwritable Program memory to avoid.
Zur Programmfehlerkorrektur wäre es ferner möglich, den gesamten nichtflüchtigen überschreibbaren Speicher zu löschen und vollständig neu zu beschreiben. Dieser Vorgang benötigt jedoch sowohl zur Datenübertragung des gesamten Speicherabbilds auf die Chipkarte als auch für den eigentlichen Schreibvorgang in den Speicher verhältnismäßig viel Zeit. Da sich der Schreibvorgang in der Regel nicht parallel zu anderen Herstellungsschritten ausführen läßt, würde sich durch diese Vorgehensweise die Herstellung des Datenträgers verlängern und damit verteuern.to Program error correction would be it is also possible the entire non-volatile overwritable Memory to clear and completely to rewrite. However, this process requires both for data transmission the entire memory image on the smart card as well as for the actual writing process into the store a relatively long time. Because the writing process is usually not parallel to others Performing manufacturing steps, would be extend the production of the disk by this approach and make it more expensive.
JP-A-09114655 zeigt ein Verfahren zur Programmfehlerkorrektur, bei dem eine Korrekturfunktion generiert wird und ein Patchabschnittslademodul in einen Speicher geschrieben wird.JP-A-09114655 shows a method for program error correction, in which a correction function is generated and a Patchabladlademodul in a memory is written.
Allgemein bekannt sind desweiteren Techniken zur Suche nach Referenzen und zur Anpassung von Referenzen. So findet sich eine Anleitung zum Auflösen externer Referenzen in dem „Informatikhandbuch", Rechenberg/Pomberger, Hanser Verlag, 1997, S. 608, 609. Techniken zum Auflösen von Referenzen sind zudem regelmäßig Gegenstand der Ausbildung auf dem Gebiet der Informatik und waren beispielsweise Teil der Vorlesung „Technische Informatik II" von A. Strey, im Wintersemester 2001/02 an der Universität Ulm. U.a. wurde in dieser Vorlesung auf die Aufgaben eines Binders eingegangen und dabei insbesondere das Verschieben von Instruktionen und Daten sowie das Auflösen von Querbezügen zwischen Programmteilen durch Ersetzen von symbolischen Bezeichnern genannt.Generally furthermore known are techniques for searching for references and for adapting references. So there is a guide to resolve external References in the "Informatikhandbuch", Rechenberg / Pomberger, Hanser Verlag, 1997, p. 608, 609. Techniques for dissolving References are also a regular subject training in the field of computer science and were for example Part of the lecture "Technical Computer Science II "of A. Strey, in the winter semester 2001/02 at the University of Ulm. Et al This lecture deals with the tasks of a binder and in particular the shifting of instructions and data as well as the dissolution of cross references between Program parts called by replacing symbolic identifiers.
Die Erfindung hat die Aufgabe, die Probleme des Stands der Technik zumindest zum Teil zu vermeiden und einen verbesserten Patchmechanismus für Programmcode, der in einem nichtflüchtigen überschreibbaren Speicher eines tragbaren Datenträgers vorliegt, bereitzustellen. In bevorzugten Ausgestaltungen soll sich der Patchmechanismus insbesondere für Chipkarten-Betriebssysteme eignen, die für einen Chipkarten-Mikrocontroller mit Flash-Programmspeicher vorgesehen sind.The Invention has the task of the problems of the prior art, at least partly to avoid and an improved patch mechanism for program code, in a non-volatile overwritable Memory of a portable data carrier is present, provide. In preferred embodiments, the patch mechanism should especially for Smart card operating systems suitable for a smart card microcontroller are provided with flash program memory.
Erfindungsgemäß wird diese Aufgabe gelöst durch ein Verfahren mit den Merkmalen des Hauptanspruchs.According to the invention this Task solved by a method having the features of the main claim.
Die Erfindung geht von der Grundüberlegung aus, Patchdaten einzusetzen, die ausschließlich oder zumindest weitgehend die durch den Patchvorgang zu bewirkenden Veränderungen definieren. Die vom Patchvorgang nicht betroffenen Teile des ausführbaren Programmcodes gehen nicht oder allenfalls in geringem Maße in die Patchdaten ein. Erfindungsgemäß wird dieses Grundprinzip dadurch umgesetzt, daß die Patchdaten zumindest einen Teilbereich des nichtflüchtigen überschreibbaren Speichers definieren und ferner definieren, welchen neuen Programmcode dieser Teilbereich nach dem Ende des Patchvorgangs enthalten soll. Prinzipiell ist eine solche Definition des neuen Programmcodes durch eine Differenzbildung mit dem bisherigen Speicherinhalt – z.B. über eine XOR-Operation – möglich. Vorzugsweise enthalten die Patchdaten jedoch Programmcode, der unmittelbar – also ohne Berücksichtigung des ursprünglichen Dateninhalts – in den Teilbereich einzuschreiben ist.The Invention is based on the basic idea Use patch data that is exclusive or at least largely define the changes to be made by the patching process. The patching process unaffected parts of the executable Program codes are not or only to a small degree in the Patch data. According to the invention this Basic principle implemented by the fact that the patch data at least a subset of the nonvolatile overwritable Define memory and further define which new program code should contain this subspace after the end of the patching process. In principle, such a definition of the new program code is through a difference with the previous memory contents - e.g. over a XOR operation - possible. Preferably included the patch data, however, program code, the immediate - ie without consideration of the original one Data content - in to enroll the subarea.
Die Erfindung ermöglicht es, bei Bedarf Veränderungen an dem im nichtflüchtigen überschreibbaren Speicher enthaltenen Programmcode des Datenträgers vorzunehmen. Dadurch erübrigen sich Patchmechanismen, die Aussprung- und Rücksprungbefehle vorsehen. Dies verringert den Speicherplatzbedarf und die zur Programmausführung benötigte Zeit. Ferner brauchen zur Veränderung des Programmcodes nur erheblich weniger Daten an den Datenträger übertragen zu werden, als dies zum vollständigen Überschreiben des Programmspeichers erforderlich wäre. Dies verringert die Durchlaufzeit bei der Fertigung des Datenträgers und führt somit zu einer erheblichen Kosteneinsparung.The Invention allows it, if necessary changes on the non-volatile overwritable Memory contained program code of the disk. This eliminates the need for patch mechanisms the exit and return commands provide. This reduces the memory requirements and the time required to execute the program. Furthermore, need to change the program code transmitted only considerably less data to the disk to be, as to the complete overwriting the program memory would be required. This reduces the turnaround time the production of the data carrier and leads thus a considerable cost savings.
Die Grundidee, durch die Patchdaten die "Differenz" zwischen dem ursprünglichen und dem zu erzielenden Speicherabbild möglichst kompakt zu definieren, wird in bevorzugten Ausgestaltungen dadurch weitergebildet, daß die Patchdaten ferner angeben, ob und inwieweit der Inhalt zumindest eines Verschiebebereichs des nichtflüchtigen über schreibbaren Speichers verschoben werden soll. Durch eine solche Angabe eines Verschiebewerts können Programmcodestücke, die kürzer oder länger als der zu ersetzende Programmcode sind, ohne Leerräume bzw. Hin- und Rücksprünge eingefügt werden. Das Volumen der Patchdaten wird durch die Verschiebefunktionalität bei der Patchdatenverarbeitung nochmals deutlich verringert. Es werden jedoch auch Ausgestaltungen als vorteilhaft angesehen, bei denen keine Verschiebemöglichkeit vorgesehen ist, weil dadurch die Erzeugung und Verarbeitung der Patchdaten besonders einfach ist.The Basic idea, the patch data, the "difference" between the original and to be achieved Memory image as possible to define compact becomes in preferred embodiments thereby further developed that the Patch data also indicate whether and to what extent the content at least a shift range of the non-volatile over writable memory shifted shall be. Such an indication of a shift value may include program code pieces that shorter or longer as the program code to be replaced, without any voids or Jumps and returns are inserted. The volume of the patch data is determined by the shift functionality in the Patch data processing significantly reduced again. It will, however Also considered to be advantageous embodiments in which no displacement possibility is intended because it reduces the generation and processing of the Patch data is particularly easy.
Wenn eine Verschiebung von Programmcodeabschnitten vorgesehen ist, werden vorzugsweise Referenzen im nichtflüchtigen überschreibbaren Speicher – z.B. Sprungziele und Tabellenzeiger –, die auf Speicheradressen im Verschiebebereich verweisen, an die Verschiebung angepaßt. Diese auch als "Code-Relokation" bekannte Anpassung von Referenzen bei der Verschiebung von ausführbarem Programmcode ist als solche gut bekannt.If a shift of program code sections is provided, preferably references in the non-volatile rewritable memory - eg jump destinations and table pointers - which refer to memory addresses in the shift area, are adapted to the shift. This adaptation of references in the displacement of executable pro, also known as "code relocation" Code is well known as such.
In bevorzugten Ausgestaltungen werden anzupassende Referenzen in einem Suchvorgang ermittelt und gemäß dem Verschiebewert korrigiert. Vorzugsweise enthalten die Patchdaten keine oder nur wenige Informationen – z.B. Anfang und Ende des zu durchsuchenden Bereichs – über die anzupassenden Referenzen. Da ein solcher Suchvorgang jedoch relativ aufwendig zu implementieren ist, sind auch Ausgestaltungen vorgesehen, bei denen keine automatische Referenzanpassung erfolgt. Die erforderlichen Änderungen können in solchen Ausgestaltungen in Form von Patchdaten an den Datenträger übertragen werden. So kann z.B. die Sprungzieladresse jedes anzupassenden Sprungbefehls in den Patchdaten als zu verändernder Teilbereich definiert werden, wobei die neue Sprungzieladresse expliziert in den Patchdaten angegeben wird. Eine solche Ausgestaltung benötigt zwar deutlich mehr zu übertragende Patchdaten; sie vermeidet jedoch den für die Code- Relokation erforderlichen Rechenaufwand beim tragbaren Datenträger und vermindert die Größe des zur Implementierung der erfindungsgemäßen Funktionalität erforderlichen Programms.In Preferred embodiments are to be adapted references in one Search determined and according to the shift value corrected. Preferably, the patch data contains no or only little information - e.g. Start and end of the area to be searched - about the references to be adjusted. However, such a search process is relatively expensive to implement is, are also provided arrangements in which no automatic Reference adjustment takes place. The necessary changes may be made in such embodiments be transmitted in the form of patch data to the disk. Thus, e.g. the jump destination address of each jump instruction to be adapted in the patch data as to be changed Subarea defined, where the new branch destination address is explicated in the patch data is specified. Although such an embodiment requires much more to be transmitted Patch data; however, it avoids the computational overhead required for code relocation portable data carrier and reduces the size of the Implementation of the functionality of the invention required Program.
Der Gesamtvorgang des Erstellens von Patchdaten durch einen Vergleich zweier Speicherabbilder und des Veränderns des im tragbaren Datenträger befindlichen Programmcodes ist vollständig automatisierbar. Dies vermeidet Bedienungsfehler, erhöht die Robustheit und reduziert die Kosten für einen Patch. Besonders vorteilhaft ist die Verwendung des hier beschriebenen Verfahrens für Chipkarten-Betriebssysteme, die zumindest zum Teil in einem Flash-Speicher vorliegen.Of the Overall process of creating patch data by comparison two memory images and changing the located in the portable disk Program codes are fully automatable. This avoids operator errors, increases robustness and reduces the price for a patch. Particularly advantageous is the use of the described here Procedure for Smart card operating systems, at least in part in a flash memory available.
Vorteilhafte Anwendungsgebiete der Erfindung sind nicht nur die Korrektur von Programmfehlern, sondern auch die Konfigurierung eines Betriebssystems und dessen Anpassung an kundenindividuelle Anforderungen. Beispielsweise bedeutet es für den Halbleiterhersteller nur einen sehr geringen Aufwand, bei der Herstellung der Chipkarten-Mikrocontroller ein Standard-Betriebssystem in den nichtflüchtigen überschreibbaren Speicher einzuschreiben. Beim Kartenhersteller kann dieses Standard-Betriebssystem dann durch den erfindungsgemäßen Patchmechanismus individuell konfiguriert werden. Hierfür müssen deutlich weniger Daten übertragen werden, als wenn der Kartenhersteller das gesamte Betriebssytem in den nichtflüchtigen überschreibbaren Speicher der Chipkarte einspielen müßte. Die Durchlaufzeit und damit auch die Kosten beim Kartenhersteller können somit deutlich gesenkt werden.advantageous Areas of application of the invention are not only the correction of Program errors, but also the configuration of an operating system and its adaptation to customer-specific requirements. For example it means for the Semiconductor manufacturers only a very small effort in the production the smart card microcontroller is a standard operating system in the non-volatile overwritable To write in memory. At the card manufacturer can use this standard operating system then by the patch mechanism of the invention individually configured. This requires significantly less data to be transferred as if the card manufacturer overwrites the entire operating system in the non-volatile Memory of the chip card would have to import. The lead time and Thus also the costs with the map manufacturer can be lowered thus clearly become.
Das erfindungsgemäße Computerprogrammprodukt weist in einer ersten Ausgestaltung die Patchdaten auf. In einer zweiten Ausgestaltung enthält das Computerprogrammprodukt Programmbefehle, um das erfindungsgemäße Verfahren zum Erzeugen und/oder Verwenden der Patchdaten zu implementieren. Ein derartiges Computerprogrammprodukt kann ein körperliches Medium sein, beispielsweise ein Halbleiterspeicher oder eine Diskette oder eine CD-ROM. Das Computerprogrammprodukt kann jedoch auch ein nicht-körperliches Medium sein, beispielsweise ein über ein Computernetzwerk übermitteltes Signal. Insbesondere kann das Computerprogrammprodukt bei der Komplettierung oder Initialisierung oder Personalisierung oder während des Betriebs des tragbaren Datenträgers oder zur Programmierung einer Verarbeitungsstation zur Erzeugung der Patchdaten eingesetzt werden.The Computer program product according to the invention has the patch data in a first embodiment. In a second embodiment contains the computer program product program commands to the inventive method for implementing and / or using the patch data. Such a computer program product can be a physical one Be medium, for example, a semiconductor memory or a floppy disk or a CD-ROM. However, the computer program product may also be non-physical Be a medium, for example an over a computer network transmitted Signal. In particular, the computer program product may be at the completion or initialization or personalization or during operation of the portable data carrier or for programming a processing station for generation the patch data are used.
Die erfindungsgemäße programmgesteuerte Vorrichtung ist in einer ersten Ausgestaltung eine Verarbeitungsstation zur Erzeugung der Patchdaten und in einer zweiten Ausgestaltung ein tragbarer Datenträger, der die zur Auswertung der Patchdaten erforderliche Funktionalität aufweist. In bevorzugten Ausgestaltungen weist/weisen die Vorrichtung und/oder das Computerprogrammprodukt Merkmale auf, die den gerade beschriebenen und/oder den in den abhängigen Verfahrensansprüchen genannten Merkmalen entsprechen.The inventive program-controlled device In a first embodiment, a processing station for Generation of the patch data and in a second embodiment portable data carrier, which has the functionality required for evaluating the patch data. In preferred embodiments, the device and / or the computer program product features that just described and / or the dependent method claims corresponded features.
Weitere Merkmale, Vorteile und Aufgaben der Erfindung gehen aus der folgenden genauen Beschreibung mehrerer Ausführungsbeispiele und Ausführungsalternativen hervor. Es wird auf die schematischen Zeichnungen verwiesen:Further Features, advantages and objects of the invention will become apparent from the following detailed description of several embodiments and alternative embodiments out. Reference is made to the schematic drawings:
Der
in
Der
nichtflüchtige überschreibbare
Speicher
Zur
Veränderung
des Inhalts des Teilbereichs
Die
Patchdaten
Die
Verarbeitungsstation
Das
ursprüngliche
Speicherabbild
Das
ursprüngliche
Speicherabbild
Neben
dem oben geschilderten Fall, bei dem der neue Programmcode
In
Ausführungsalternativen,
die sich durch eine besonders einfache Implementierung auszeichnen,
ist die Funktion der Programmcodeverschiebung nicht vorgesehen.
In diesem Fall sollte bei der Erstellung des neuen Speicherabbilds
Das
in
In
dem ersten Abschnitt
In
Schritt
Die
Schritte
Nach
der Erstellung aller Patchdatensätze
Bei
der Verarbeitung der Patchdaten
Falls
der Verschiebewert
In
Abfrage
Die
im Zusammenhang mit Schritt
Techniken
zur Suche nach Referenzen und zur Anpassung von Referenzen sind
als solche bekannt. Allerdings ist die Implementierung einer vollautomatischen
Code-Relokation, wie sie beim vorliegenden Ausführungsbeispiel in den Schritten
Claims (9)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102004006308A DE102004006308B4 (en) | 2004-02-09 | 2004-02-09 | Method for modifying program code of a portable data carrier by means of patch data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102004006308A DE102004006308B4 (en) | 2004-02-09 | 2004-02-09 | Method for modifying program code of a portable data carrier by means of patch data |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102004006308A1 DE102004006308A1 (en) | 2005-09-01 |
DE102004006308B4 true DE102004006308B4 (en) | 2006-03-16 |
Family
ID=34813210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102004006308A Expired - Fee Related DE102004006308B4 (en) | 2004-02-09 | 2004-02-09 | Method for modifying program code of a portable data carrier by means of patch data |
Country Status (1)
Country | Link |
---|---|
DE (1) | DE102004006308B4 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102007057001A1 (en) * | 2007-11-27 | 2009-05-28 | Giesecke & Devrient Gmbh | Writing operating data to a portable data carrier |
DE102007057002A1 (en) * | 2007-11-27 | 2009-05-28 | Giesecke & Devrient Gmbh | Writing data to a portable disk |
CN107861748A (en) * | 2017-12-04 | 2018-03-30 | 山东浪潮通软信息科技有限公司 | A kind of patch generation method and device |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0458559A2 (en) * | 1990-05-24 | 1991-11-27 | Schlumberger Industries Limited | Mask-programmable microprocessors |
US6526574B1 (en) * | 1997-07-15 | 2003-02-25 | Pocket Soft, Inc. | System for finding differences between two computer files and updating the computer files |
EP1306759A2 (en) * | 2001-10-24 | 2003-05-02 | Giesecke & Devrient GmbH | Executing program in a chip card |
-
2004
- 2004-02-09 DE DE102004006308A patent/DE102004006308B4/en not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0458559A2 (en) * | 1990-05-24 | 1991-11-27 | Schlumberger Industries Limited | Mask-programmable microprocessors |
US6526574B1 (en) * | 1997-07-15 | 2003-02-25 | Pocket Soft, Inc. | System for finding differences between two computer files and updating the computer files |
EP1306759A2 (en) * | 2001-10-24 | 2003-05-02 | Giesecke & Devrient GmbH | Executing program in a chip card |
Also Published As
Publication number | Publication date |
---|---|
DE102004006308A1 (en) | 2005-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE60030872T2 (en) | METHOD AND ARRANGEMENT TO CARRY OUT ATOMIC UPDATES BY USING A LOGICAL FLASH MEMORY DEVICE | |
DE102009024605B4 (en) | Apparatus and method for bypassing a first program code section with a replacement program code section | |
DE10115729B4 (en) | Versatile boot procedure for an application software of a microcontroller | |
DE69130414T2 (en) | Processor and method for parallel processing | |
DE3116385C2 (en) | Microprogram control | |
DE10234971B4 (en) | Method and data carrier for generating and correcting program code | |
DE102018202446A1 (en) | Method for modularizing a software architecture | |
DE10064025B4 (en) | A method for booting a microprocessor and microprocessor with a conditional deterministic reset vector | |
DE102004006308B4 (en) | Method for modifying program code of a portable data carrier by means of patch data | |
DE3210616A1 (en) | COMPUTER | |
EP1709534B1 (en) | The running of a program by a virtual machine | |
DE112019006886T5 (en) | System development support apparatus, method, program and recording medium | |
EP1163577B1 (en) | Caching of short program loops in an instruction fifo | |
DE10260103A1 (en) | Method and device for changing software in a control unit and corresponding control unit | |
DE112019004272T5 (en) | INSTALLING APPLICATION PROGRAM CODE ON A VEHICLE CONTROL SYSTEM | |
WO2009103728A1 (en) | Method and device for storing information data | |
DE102004005290B3 (en) | Securing data in non-volatile data memory divided into segments involves management data per segment containing further data element to determine age range of second segment data compared to first segment data for incomplete clearing | |
DE102006013759B4 (en) | Method and computing unit for operating a memory device | |
EP1600855B1 (en) | Generating and using information about memory occupation in a portable device | |
DE1774421C (en) | Multi-program data processing system | |
DE102022133764A1 (en) | FIRMWARE UPGRADE PROCEDURE OF A FLASH BOOTLOADER IN A MCU FOR A VEHICLE | |
DE102022003789A1 (en) | Method for changing the memory content of a main memory of a microcontroller without a separate memory management unit, application thereof, microcontroller and vehicle | |
DE19637883A1 (en) | Operating method for data processing system | |
DE102022132503A1 (en) | ELECTRONIC DEVICE FOR EMULATION OF EEPROM AND METHOD OF ITS OPERATION | |
DE102008002494A1 (en) | Method for actualizing flash memory for emulation of electrically EPROMs, for saving serial electrically EPROMs, in dashboard of vehicle, involves verifying actual version of data set to violation of defined rule |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition | ||
R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |