DE102009005764A1 - Method for monitoring execution of program in e.g. chip card, involves determining whether addressed programs or addresses are assigned to subprogram or destination address, and executing subprogram when assignment is correct - Google Patents
Method for monitoring execution of program in e.g. chip card, involves determining whether addressed programs or addresses are assigned to subprogram or destination address, and executing subprogram when assignment is correct Download PDFInfo
- Publication number
- DE102009005764A1 DE102009005764A1 DE102009005764A DE102009005764A DE102009005764A1 DE 102009005764 A1 DE102009005764 A1 DE 102009005764A1 DE 102009005764 A DE102009005764 A DE 102009005764A DE 102009005764 A DE102009005764 A DE 102009005764A DE 102009005764 A1 DE102009005764 A1 DE 102009005764A1
- Authority
- DE
- Germany
- Prior art keywords
- program
- address
- calling
- subprogram
- subroutine
- 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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/28—Error detection; Error correction; Monitoring by checking the correct order of processing
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
Die Erfindung betrifft ein Verfahren zur Überwachung der bestimmungsgemäßen Ausführung eines Programms durch einen Prozessor, der auf einen Speicher zugreift. Die Erfindung betrifft weiterhin einen Prozessor sowie einen tragbaren Datenträger. Speziell ist die Erfindung für Anwendungen vorgesehen, bei denen Aspekte der Sicherheit und Korrektheit der ausgeführten Programme sowie der Zuverlässigkeit der Programmausführung besondere Bedeutung haben.The The invention relates to a method for monitoring the intended use Execution of a program by a processor running on accesses a memory. The invention further relates to a Processor as well as a portable data carrier. Special is the invention is intended for applications where aspects the safety and correctness of the programs executed and the reliability of the program execution have special meaning.
Typischerweise umfasst ein auf einem Prozessor ablaufendes Programm mehrere Funktionen, die von einem Hauptprogramm aufgerufen werden. Die Funktionen oder Unterprogramme werden mit spezifischen Programmbefehlen, z. B. CALL, ECALL, usw., aufgerufen. Techniken zur Ausführung von Unterprogrammen sind in vielfältigen Ausgestaltungen gut bekannt. Bei der Ausführung eines Unterprogramm-Aufrufbefehls CALL wird unter anderem der aktuelle Stand des Programmzählers in einem Stapelspeicher gespeichert. Die Programmausführung wird dann an einer in dem Unterprogramm-Aufrufbefehl angegebenen Adresse fortgesetzt. Sobald im Zuge der Unterprogrammausführung der erste Unterprogramm-Rücksprungbefehl, z. B. RET, erkannt wird, wird der Programmzähler mit dem jüngsten Eintrag im Stapelspeicher geladen. Dieser Eintrag wird aus dem Stapelspeicher entfernt, indem der Stapelzeiger entsprechend geändert, beispielsweise dekrementiert, wird. Die Wirkung des Unterprogramm-Rücksprungbefehls ist somit, dass die Programmausführung im aufrufenden Programm mit demjenigen Befehl fortgesetzt wird, der dem Unterprogramm-Aufrufbefehl folgt.typically, For example, a program running on a processor includes several functions, which are called by a main program. The functions or Subroutines are programmed with specific program commands, eg. Eg CALL, ECALL, etc., called. Techniques for executing subroutines are Well known in a variety of configurations. In the execution A subroutine call command CALL will be the current one, among other things Status of the program counter stored in a stack. The program execution is then at a in the subroutine call command continued address. Once in the course of subroutine execution the first subroutine return instruction, e.g. B. RET recognized becomes, the program counter with the youngest Loading an entry in the stack. This entry is from the stack removed by changing the stack pointer accordingly, for example, is decremented. The effect of the subroutine return command is thus that the program execution in the calling program continues with the instruction that is the subroutine call instruction follows.
Wird der Ablauf des Programms, z. B. durch einen Lichtangriff, gestört, so kann es passieren, dass ein Unterprogramm-Aufruf erzeugt wird, der nicht auf der korrekten Anfangsadresse des aufgerufenen Unterprogramms landet. Alternativ ist es möglich, dass Aufrufe erzeugt werden, die an sich innerhalb des korrekten Programmablaufs nicht zugelassen sind.Becomes the course of the program, z. B. by a light attack, disturbed, so it can happen that a subroutine call is generated, not on the correct starting address of the called subroutine lands. Alternatively it is possible that calls are generated which in themselves are not within the correct program flow allowed are.
Aus
der
Aus
der
Schließlich
ist aus der
Es ist daher Aufgabe der vorliegenden Erfindung, ein Verfahren zur Überwachung der bestimmungsgemäßen Ausführung eines Programms anzugeben, das eine Überprüfung erlaubt, ob der Aufruf eines Unterprogramms korrekt und zuverlässig erfolgt. Es ist weiterhin Aufgabe der vorliegenden Erfindung, einen Prozessor zur Durchführung des erfindungsgemäßen Verfahrens sowie einen tragbaren Datenträger mit einem erfindungsgemäßen Prozessor anzugeben.It It is therefore an object of the present invention to provide a method for monitoring the intended execution of a Specify a program that allows a review, whether calling a subprogram is correct and reliable he follows. It is a further object of the present invention to provide a Processor for carrying out the invention Method as well as a portable data carrier with a specify processor according to the invention.
Diese Aufgaben werden gelöst durch ein Verfahren mit den Merkmalen des Patentanspruches 1, einen Prozessor mit den Merkmalen des Patentanspruches 12 sowie einen tragbaren Datenträger mit den Merkmalen des Patentanspruches 13.These objects are achieved by a method having the features of claim 1, a Processor with the features of claim 12 and a portable data carrier with the features of claim 13.
Die Erfindung schafft ein Verfahren zur Überwachung der bestimmungsgemäßen Ausführung eines Programms durch einen Prozessor, der auf einen Speicher zugreift. Bei dem Verfahren ist in dem Speicher eine Tabelle vorgesehen oder wird dort angelegt, in welcher Tabelle einem aufrufbaren Unterprogramm oder einer aufrufbaren Zieladresse zugeordnete Identifikatoren eines aufrufenden Programms oder einer aufrufenden Adresse gespeichert werden. Vor dem Sprung in das Unterprogramm wird mittels der Tabelle geprüft, ob das aufrufende Programm oder die aufrufende Adresse in der Tabelle dem Unterprogramm oder der aufrufbaren Zieladresse zugeordnet ist. Wenn die Zuordnung korrekt ist, wird das Unterprogramm ausgeführt. Wenn die Zuordnung nicht besteht, wird eine Fehlerbehandlungsroutine aufgerufen.The Invention provides a method for monitoring the intended Execution of a program by a processor running on accesses a memory. In the method is in the memory a Table provided or is created there, in which table one callable subprogram or an addressable destination address Identifiers of a calling program or a calling one Address to be stored. Before jumping to the subroutine is checked by means of the table whether the calling program or the calling address in the table to the subroutine or the callable destination address is assigned. If the assignment is correct is, the subroutine is executed. If the assignment does not exist, an error handler is called.
Das erfindungsgemäße Verfahren ermöglicht einen korrekten Programmablauf hinsichtlich des Aufrufs von Unterprogrammen. Der Programmablauf wird durch das erfindungsgemäße Verfahren ständig auf Korrektheit bei Sprüngen in Unterprogramme oder von Unterprogrammen zurück in ein aufrufendes Programm überprüft. Insbesondere ist ein sog. Ausblitzen von Sprüngen bzw. ein Überspringen von Unterprogrammen nicht mehr möglich. Hierdurch wird die Sicherheit des Ablaufs des Programms verbessert. So kann beispielsweise durch einen Lichtangriff kein ungewollter Programmablauf gestartet werden bzw. es können keine unzulässigen Teilabschnitte ausgeführt werden. Die Zuordnung von Identifikatoren oder Adressen eines aufrufenden Programms zu einem aufrufbaren Unterprogramm oder einer aufrufbaren Zieladresse in einer Tabelle ermöglicht eine große Flexibilität im Rahmen der Erstellung des Programms. Darüber hinaus lässt sich der Programmablauf mit einer hohen Effizienz durchführen.The inventive method allows a correct program sequence with regard to calling subroutines. The program sequence is determined by the invention Proceed constantly for correctness in case of jumps in subprograms or subprograms back in Calling program checked. In particular a so-called flash of jumps or skipping subprograms are no longer possible. This will Improved the safety of the program. So, for example No unintentional program started by a light attack or there can be no illegal sections be executed. The assignment of identifiers or Addresses of a calling program to a callable subroutine or a callable destination address in a table a great flexibility in the creation of the program. In addition, the program flow can be perform with a high efficiency.
In einer Ausgestaltung der Erfindung ist in der Tabelle das Unterprogramm oder die aufrufbare Zieladresse als überprüfbarer Tabellenname gespeichert oder wird dort gespeichert.In An embodiment of the invention is the subroutine in the table or the callable destination address as verifiable Table name saved or saved there.
Ferner ist gemäß einer weiteren Ausgestaltung der Stand des Programmzählers oder eine Checksumme eines Programmcodes des aufrufenden Programms in der Tabelle gespeichert oder wird in dieser gespeichert. Anstelle der Verwendung von Adressen eines Programmzählers können auch Checksummen zur Überprüfung des korrekten Programmablaufs verwendet werden. Diese Checksummen können beispielsweise aus Codebereichen (z. B. Opcode-Fetch) des Unterprogramms bzw. des aufrufenden Programms (Hauptprogramm) gebildet werden.Further is according to another embodiment of the prior the program counter or a checksum of a program code of the calling program is stored in the table or is in this saved. Instead of using addresses of a program counter can also checksums for review the correct program sequence are used. These checksums For example, you can use code ranges (for example, Opcode Fetch). of the subprogram or of the calling program (main program) be formed.
Dem Eintrag des aufrufenden Programms oder der aufrufenden Adresse ist eine vorgegebene Adresse innerhalb der Tabelle zugeordnet, in der ein vorgegebener Wert gespeichert ist, wenn keine Adresse des aufrufenden Programms innerhalb der Adresse der Tabelle eingespeichert ist. Durch diese zusätzliche Überprüfung kann die Sicherheit des korrekten Programmablaufs weiterhin verbessert werden. Insbesondere wird vor dem Abspeichern der Adresse des aufrufenden Programms überprüft, ob der vorgegebene Wert in der Speicheradresse der Tabelle enthalten ist, wobei im positiven Fall die Adresse des aufrufenden Programms in die Speicheradresse der Tabelle eingeschrieben wird und im negativen Fall auf eine fehlerhafte Programmausführung geschlossen wird. Erst nach erfolgreicher Überprüfung der Sprungquelle im Unterprogramm wird der entsprechende Adresswert in die Tabelle geschrieben.the Entry of the calling program or the calling address assigned a given address within the table, in the a predetermined value is stored if no address of the calling Program is stored within the address of the table. Through this additional review can the security of the correct program continues to improve become. In particular, before storing the address of the calling Program checks if the default value in the memory address of the table is included, where in the positive Case the address of the calling program in the memory address the table is written and in the negative case to a faulty one Program execution is closed. Only after successful verification the jump source in the subprogram becomes the corresponding address value written in the table.
Gemäß einer alternativen Ausgestaltung umfasst die Tabelle für jedes aufrufende Unterprogramm eine Rücksprungadresse zu dem aufrufenden Pro gramm. Dabei wird überprüft, ob die Rücksprungadresse in dem Speicher, insbesondere einem Stapelspeicher oder einem nichtflüchtigen Speicher (NVM), gespeichert ist. Ist dies der Fall, wird die aufgerufene Unterfunktion durchlaufen. Andernfalls wird der Programmablauf gesperrt oder eine Fehlermeldung ausgegeben.According to one alternative embodiment includes the table for each calling subroutine to the return address calling program. It is checked if the return address in the memory, in particular a Stacked memory or nonvolatile memory (NVM), is stored. If so, the called subfunction will be run through. Otherwise, the program will be locked or a Error message issued.
In einer weiteren Ausbildung wird vor dem Rücksprung in das aufrufende Programm überprüft, ob die Rücksprungadresse in dem Speicher mit der im Programmablauf des Unterprogramms aufgerufenen Rücksprungadresse übereinstimmt. Diese zweite Überprüfung ist zweckmäßig, da es auch möglich ist, über einen Lichtangriff mitten in ein Unterprogramm einzuspringen und dieses teilweise auszuführen.In Another training is before the return to the Calling program checks if the return address in the memory with that called in the program sequence of the subroutine Return address matches. This second review is appropriate, since it is also possible over a light attack in the middle of a subroutine and jump to do this partially.
Alternativ wird bei einem Aufruf eines Unterprogramms durch das aufrufende Programm die Adresse des aufrufenden Programms beim Aufruf dem Unterprogramm übergeben und in dem Speicher abgespeichert. Dabei wird zweckmäßigerweise ein Vergleich zwischen der übergebenden und abgespeicherten (Einsprung-)Adresse und dem Programmzähler vorgenommen, wobei das Unterprogramm fortgesetzt wird, wenn bei dem Vergleich eine Übereinstimmung der Adressen festgestellt wurde. Das Unterprogramm wird nicht fortgesetzt, wenn bei dem Vergleich die Übereinstimmung der Adressen nicht festgestellt werden konnte.alternative is called by a calling subprogram Program the address of the calling program when calling the subroutine passed and stored in the memory. It is expediently a comparison between the transferring and stored (Entry) address and the program counter, wherein the subroutine is continued when in the comparison a match of the addresses was detected. The Subroutine will not continue if the comparison matches the addresses could not be determined.
Zusätzlich kann bei einem Rücksprung von dem Unterprogramm zu dem aufrufenden Programm überprüft werden, ob der Aufruf der Unterfunktion korrekt erfolgte. Insbesondere wird hierbei überprüft, ob der Funktionsaufruf zulässig war, da, wie bereits erwähnt, auch ein Sprung in die Mitte der Funktion erfolgen kann. Für diese Überprüfung kann beispielsweise die Ü berprüfung auf das Vorliegen eines festen Werts erfolgen, da der Startpunkt, d. h. die Startadresse, des Unterprogramms bekannt ist.additionally may be on a return from the subroutine to the Calling program to be checked if the Call of the subfunction was done correctly. In particular, this is checked whether the function call was permissible because, as already mentioned, You can also jump to the middle of the function. For This check may, for example, be the review to the presence of a fixed value, since the starting point, d. H. the starting address of the subroutine is known.
Die Erfindung schafft ferner einen Prozessor, der dazu eingerichtet ist, ein Verfahren nach einem der vorherigen Ansprüche auszuführen. Darüber hinaus schafft die Erfindung einen tragbaren Datenträger, insbesondere eine Chipkarte oder ein Chipmodul, der einen erfindungsgemäßen Prozessor aufweist.The The invention further provides a processor adapted thereto is a method according to any one of the preceding claims perform. In addition, the invention creates a portable data carrier, in particular a chip card or a chip module comprising an inventive Processor has.
Die Erfindung wird nachfolgen näher anhand der Figuren beschrieben. Es zeigen:The Invention will be described in more detail below with reference to FIGS. Show it:
In
Der
Festwertspeicher
Die
Begriffe „Hauptprogramm” und „Unterprogramm” bezeichnen
vorliegend lediglich die Beziehung der Programmabschnitte
Der
Arbeitsspeicher
Das
erfindungsgemäße Verfahren ermöglicht
sichere Programmsprünge von einem aufrufenden Programm
zu einem aufrufbaren Unterprogramm, und umgekehrt, beispielsweise
unter Verwendung der Mikrocontrollerbefehle JMP und CALL. Ein typischer
Programmablauf ist beispielhaft nachfolgend dargestellt:
Wird der Programmablauf z. B. über einen Lichtangriff gestört, so wird der Unterprogrammaufruf Test_Param und die Überprüfung (CJNE) übersprungen.Becomes the program sequence z. B. disturbed by a light attack, so the subroutine call becomes Test_Param and the check (CJNE) skipped.
Ein
anderes typisches Unterprogramm schaut beispielsweise wie folgt
aus:
Wird
das Unterprogramm PIN_CHECK ausgeführt, so findet keine Überprüfung
statt, ob der Aufruf zulässig ist. Um den Aufruf des Unterprogramms
mittels des Befehls CALL oder JMP sicher zu machen, wird vor dem
Programmsprung der Wert des aktuellen Programmzählers in
einem Speicherbereich, z. B. dem Register, dem Stack oder einem
nichtflüchtigen Speicher, gesichert. Dies kann beispielsweise
wie folgt erfolgen:
Beim
Einsprung in die Unterprogrammfunktion wird überprüft,
ob der Funktionsaufruf zulässig ist. Diese Überprüfung
findet mittels einer (nicht dargestellten) Tabelle statt, die beispielsweise
in dem nichtflüchtigen Speicherbereich abgespeichert ist.
Wird in der Tabelle festgestellt, dass die Ad resse des aufrufenden
Programms vorhanden ist, so wird der Aufruf des Unterprogramms akzeptiert
und die Programmabarbeitung fortgesetzt. Andernfalls wurde ein unzulässiger
Sprung erkannt, woraufhin die Programmabarbeitung eingestellt wird.
Ein beispielhafter Programmablauf für die Überprüfung
ist nachfolgend dargestellt:
Eine weitere Überprüfung besteht darin, dass für den Eintrag der Sprungquelle eine feste RAM-/NVM-Adresse zugeordnet wird. In dieser steht, wenn keine Adresse hinterlegt ist, beispielsweise der Wert 0×55AA. Soll nun die Adresse des aufrufenden Programms (Sprungquelle) abgespeichert werden, wird zunächst überprüft, ob der vordefinierte Wert 0×55AA in diesem Speicher liegt. Ist dies nicht der Fall, wurde eine fehlerhafte Programmausführung durchgeführt und der Programmablauf abgebrochen oder eine Fehlerbehandlungsroutine durchgeführt. Nach erfolgreicher Überprüfung der Adresse des aufrufenden Programms im aufgerufenen Unterprogramm wird die Adresse des aufrufenden Programms in die RAM-/NVM-Adresse geschrieben. Dabei können anstatt der Adressen des Programmzählers auch Checksummen zur Überprüfung verwendet werden. Diese Checksummen können aus Codebereichen (z. B. Opcode-Fetch) des Unterprogramms bzw. des Aufrufers gebildet werden.A further review is that for the jump source entry is assigned a fixed RAM / NVM address becomes. In this is, if no address is stored, for example the value 0 × 55AA. Now the address of the calling program (Jump source) are saved, will be checked first, whether the predefined value 0 × 55AA is in this memory. If this is not the case, a faulty program execution has occurred carried out and aborted the program or a Error handling routine performed. After successful verification the address of the calling program in the called subroutine the address of the calling program becomes the RAM / NVM address written. Here, instead of the addresses of the program counter Also checksums are used for verification. These checksums can be from code ranges (eg Opcode-Fetch) of the subroutine or of the caller.
In einer anderen Ausgestaltung ist es zweckmäßig, wenn für jedes aufzurufende Unterprogramm eine Tabelle erstellt wird, die die Rücksprungadressen zu der bzw. den aufrufenden Hauptprogrammen enthält. Wird nun ein Unterprogramm aufgerufen, wird zunächst überprüft, ob die Rücksprungadresse in dem Stapelspeicher für den jeweiligen CALL vorhanden ist. Ist dies der Fall, so wird das Unterprogramm durchlaufen. Andernfalls wird der Programmablauf gesperrt oder eine Fehlermeldung ausgegeben. Vor dem Rücksprung aus dem aufgerufenen Unterprogramm wird zweckmäßigerweise nochmals überprüft, ob die Rücksprungadresse auf dem Stapelspeicher mit der Adresse des aufrufenden Programms übereinstimmt. Diese zweite Überprüfung ist zweckmäßig, da es auch möglich ist, über einen Lichtangriff mitten in ein ausgeführtes Unterprogramm einzuspringen und dieses teilweise auszuführen.In another embodiment, it is expedient if there is a table for each subroutine to be called is created, the return addresses to the or the containing main calling programs. Will now be a subroutine called, is first checked, whether the return address in the stack for the respective CALL is present. If so, it will Go through subroutine. Otherwise the program will be blocked or an error message is issued. Before the return from the called subroutine is expediently again checks if the return address is up the stack matches the address of the calling program. This second review is appropriate since it is also possible, via a light attack in the middle of an executed subroutine and to do this partially.
Alternativ zu der Tabelle mit den Rücksprungadressen kann auch ein Verfahren eingesetzt werden, bei dem die Adresse des aufrufenden Programms beim Aufruf mit übergeben wird. Die Adresse für die Startadresse des aufgerufenen Unterprogramms kann z. B. auf dem Stapelspeicher abgespeichert werden. Beim Einsprung in das Unterprogramm wird zunächst die abgespeicherte Einsprungadresse mit dem aktuellen Wert des Programmzählers (Programmcounter PC) verglichen. Ist diese Adresse korrekt, wird das Programm fortgesetzt. Andernfalls wird das Programm beendet bzw. eine Fehlermeldung ausgegeben oder ein NME ausgelöst.alternative to the table with the return addresses can also be Procedures are used, in which the address of the calling Program is passed with the call. The address for the start address of the called subroutine can z. B. on be stored in the stack. When entering the subroutine is first the stored entry address with the current value of the program counter (program counter PC) compared. If this address is correct, the program will continue. Otherwise, the program is terminated or an error message is output or a NME triggered.
Auch hier kann bei einem Rücksprung zuerst nochmals eine Überprüfung durchgeführt werden, ob der Funktionsaufruf zulässig war. Dies wird vorzugsweise deshalb durchgeführt, da, wie bereits erwähnt, auch ein Sprung in die Mitte des Unterprogramms erfolgen kann. Für diese Überprüfung kann auf einen festen Wert abgeprüft werden, da der Startpunkt des Unterprogramms bekannt ist.Also Here, in a return first again a review whether the function call is allowed was. This is preferably done because of how mentioned earlier, also a jump to the middle of the subprogram can be done. For this review can be checked for a fixed value since the starting point of the subroutine is known.
In
ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDE IN THE DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list The documents listed by the applicant have been automated generated and is solely for better information recorded by the reader. The list is not part of the German Patent or utility model application. The DPMA takes over no liability for any errors or omissions.
Zitierte PatentliteraturCited patent literature
- - DE 10252347 A1 [0004] - DE 10252347 A1 [0004]
- - WO 98/32072 A1 [0005] WO 98/32072 A1 [0005]
- - EP 1507185 A1 [0006] - EP 1507185 A1 [0006]
Claims (13)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102009005764A DE102009005764A1 (en) | 2009-01-23 | 2009-01-23 | Method for monitoring execution of program in e.g. chip card, involves determining whether addressed programs or addresses are assigned to subprogram or destination address, and executing subprogram when assignment is correct |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102009005764A DE102009005764A1 (en) | 2009-01-23 | 2009-01-23 | Method for monitoring execution of program in e.g. chip card, involves determining whether addressed programs or addresses are assigned to subprogram or destination address, and executing subprogram when assignment is correct |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE102009005764A1 true DE102009005764A1 (en) | 2010-07-29 |
Family
ID=42282518
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE102009005764A Ceased DE102009005764A1 (en) | 2009-01-23 | 2009-01-23 | Method for monitoring execution of program in e.g. chip card, involves determining whether addressed programs or addresses are assigned to subprogram or destination address, and executing subprogram when assignment is correct |
Country Status (1)
| Country | Link |
|---|---|
| DE (1) | DE102009005764A1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1998032072A1 (en) | 1997-01-15 | 1998-07-23 | Siemens Aktiengesellschaft | Method for monitoring the execution of software programmes as prescribed |
| DE10252347A1 (en) | 2002-11-11 | 2004-05-19 | Giesecke & Devrient Gmbh | Subroutine execution monitoring method, stores subroutine return address in program stack then compares with address given by subroutine return command to determine if error has occurred |
| EP1507185A1 (en) | 2003-08-11 | 2005-02-16 | Axalto S.A. | Method and device for protecting against unauthorized access to a secure routine |
-
2009
- 2009-01-23 DE DE102009005764A patent/DE102009005764A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO1998032072A1 (en) | 1997-01-15 | 1998-07-23 | Siemens Aktiengesellschaft | Method for monitoring the execution of software programmes as prescribed |
| DE10252347A1 (en) | 2002-11-11 | 2004-05-19 | Giesecke & Devrient Gmbh | Subroutine execution monitoring method, stores subroutine return address in program stack then compares with address given by subroutine return command to determine if error has occurred |
| EP1507185A1 (en) | 2003-08-11 | 2005-02-16 | Axalto S.A. | Method and device for protecting against unauthorized access to a secure routine |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2188755B1 (en) | Method and apparatus for protection of a program against monitoring flow manipulation and against incorrect program running | |
| DE102010037457B4 (en) | A method of data processing for providing a value for determining whether an error has occurred during execution of a program, methods of data processing for determining whether an error has occurred during execution of a program, method for generating program code, data processing arrangements for providing a program Value for determining whether an error has occurred during execution of a program, data processing arrangements for determining whether an error has occurred during execution of a program, and data processing arrangements for generating program code | |
| WO2010020465A1 (en) | Control appliance for a vehicle, and method for updating data for a control appliance for a vehicle | |
| WO1998032072A1 (en) | Method for monitoring the execution of software programmes as prescribed | |
| DE102012212343A1 (en) | Distributed compilation process with command signature support | |
| DE102009024605A1 (en) | Apparatus and method for bypassing a first program code portion with a replacement program code portion | |
| DE10159901A1 (en) | Microcomputer with built-in programmable, non-volatile memory | |
| EP1037140B1 (en) | Method and apparatus providing security during modification of memory contents in control devices | |
| DE102012218363A1 (en) | Method for controlling a separate flow of linked program blocks and control device | |
| DE102006029138A9 (en) | Method and computer program product for the detection of memory leaks | |
| DE10340411B4 (en) | Device and method for the safe execution of a program | |
| DE102009005764A1 (en) | Method for monitoring execution of program in e.g. chip card, involves determining whether addressed programs or addresses are assigned to subprogram or destination address, and executing subprogram when assignment is correct | |
| DE102004046288A1 (en) | Method for processing a computer program on a computer system | |
| DE102012010102A1 (en) | Method and device for data processing | |
| DE10064025A1 (en) | Microprocessor user software booting method, involves blanking specified areas of memory blocks until valid reset vector localizer is found and then executing reset vector and application in valid boot memory area | |
| DE10252347A1 (en) | Subroutine execution monitoring method, stores subroutine return address in program stack then compares with address given by subroutine return command to determine if error has occurred | |
| EP1892639B1 (en) | Secure program code execution | |
| DE10229817B4 (en) | Method and device for storing a computer program in a program memory of a control device | |
| DE102007041873A1 (en) | Patch installing method for e.g. object oriented programming language card in mobile phone, involves forming class hierarchy using classes in program package, and including patch in class hierarchy as subclass of one of classes | |
| DE102004006308B4 (en) | Method for modifying program code of a portable data carrier by means of patch data | |
| DE10110050A1 (en) | Method for protecting safety-critical program parts or routines from inadvertent execution, especially for automotive use, in which a safety critical routine will only run if a bit pattern has been set by a calling program section | |
| EP1577734A2 (en) | Procédé pour le fonctionnement sûr d'un support de données portable | |
| DE102007059798B3 (en) | Executable program code i.e. executable file, coding method for computer, involves combining chains of sequential instructions to code fragments, and coding and storing detected code fragments belonging to methods in program library | |
| DE102017102147A1 (en) | Subsequent patchable memory (OTP) with bit memory cells and method of patching same | |
| DE102022133764A1 (en) | FIRMWARE UPGRADE PROCEDURE OF A FLASH BOOTLOADER IN A MCU FOR A VEHICLE |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| OR8 | Request for search as to paragraph 43 lit. 1 sentence 1 patent law | ||
| 8105 | Search report available | ||
| R012 | Request for examination validly filed | ||
| R081 | Change of applicant/patentee |
Owner name: GIESECKE+DEVRIENT MOBILE SECURITY GMBH, DE Free format text: FORMER OWNER: GIESECKE & DEVRIENT GMBH, 81677 MUENCHEN, DE |
|
| R016 | Response to examination communication | ||
| R002 | Refusal decision in examination/registration proceedings | ||
| R003 | Refusal decision now final |