Claims
- 1. A method of monitoring a correct execution of software programs, which comprises:providing a safeguard memory, the safeguard memory being a memory that cannot be deliberately addressed from outside a system executing a software program being monitored; and preventing an overwriting of return addresses stored for later use and preventing a use of incorrectly stored return addresses and incorrectly overwritten return addresses as a return address, by protecting the return addresses from being overwritten and from being used by evaluating safeguard information generated when the return addresses are stored and storing the safeguard information in the safeguard memory.
- 2. The method according to claim 1, which comprises using a chip for executing the software program selected from the group consisting of microprocessors, microcontrollers, and signal processors all having a memory functioning as the safeguard memory.
- 3. The method according to claim 1, which comprises using one of the return address itself and data representing the return address as the safeguard information.
- 4. The method according to claim 3, which comprises comparing stored data with the safeguard information and permitting use of the stored data as the return address only if the safeguard information is found to characterize the stored data.
- 5. The method according to claim 4, which comprises performing at least one of immediately terminating the software program, resetting the system executing the software program, triggering an alarm, and deleting security-related data, if a request is made for data representing the return address and the safeguard information is found not to characterize data received in response to the request.
- 6. The method according to claim 1, which comprises using write-protection identifiers indicating write protection as the safeguard information stored in the safeguard memory.
- 7. The method according to claim 6, which comprises preventing an overwriting of memory areas identified by the write-protection identifiers as write protected.
- 8. The method according to claim 7, which comprises performing at least one of immediately terminating the software program, resetting the system executing the software program, triggering an alarm, and deleting security-related data, if an attempt is made to overwrite a memory area that the safeguard information has determined to be write protected.
- 9. The method according to claim 6, which comprises permitting a checking out of the safeguard information and using stored data as the return address only if the safeguard information is found to indicate write protection before the stored data is used as the return address.
- 10. The method according to claim 9, which comprises performing at least one of immediately terminating the software program, resetting the system executing the software program, triggering an alarm, and deleting security-related data, if a request is made for data representing the return address and the safeguard information is found not to indicate write protection.
Priority Claims (1)
Number |
Date |
Country |
Kind |
197 01 166 |
Jan 1997 |
DE |
|
CROSS-REFERENCE TO RELATED APPLICATION
This is a continuation of copending International Application PCT/DE98/00133, filed Jan. 15, 1998, which designated the United States.
US Referenced Citations (5)
Foreign Referenced Citations (4)
Number |
Date |
Country |
4315732 C1 |
Jun 1994 |
DE |
19614904 A1 |
Oct 1997 |
DE |
0010186 A1 |
Apr 1980 |
EP |
0011136 A1 |
May 1980 |
EP |
Non-Patent Literature Citations (4)
Entry |
“Compiler Assisted Self-Checking of Structural Integrity Using Return Address Hashing”, Uwe Wildner, XP-002068242, pp. 161-177. |
Japanese Patent Abstract No. 2-304365 (Sakai), dated Dec. 18, 1990. |
Japanese Patent Abstract No. 3-223938 (Kamigaki), dated Oct. 2, 1991. |
Japanese Patent Abstract No. 62-28836 (Fujimori), dated Feb. 2, 1987. |