IP Library Granted Patent US 6,934,887
Granted Patent B1
US 6,934,887 · App. 10/070,444 · Granted Aug 23, 2005

Method for protecting a program flow

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 6,934,887
App. No.
10/070,444
Granted
Aug 23, 2005
Kind
B1
Abstract

The invention relates to a method for protecting the program flow during sub-program calls. Known methods for protecting data contract the evaluation of data by specific interruption of the program, do not however offer any effective protection for modular programs, especially with regard to sub-program calls. According to the invention, the requested program therefor checks the data communicated directly or indirectly by the requesting program before or during the execution of the program.

Claims (9)

1. A method for protecting a program run at the call of subprograms, a called program performing, before or during the program execution, a check of data passed directly or indirectly from a calling program, characterized in that

the calling program forms a first check sum for parameters to be passed (step 2 ),

said first check sum is stored in a specially provided memory area,

the called program forms, before its execution, a second check sum for received parameter (step 5 ) and checks it for equality with the first check sum (step 6 ), and

in case of inequality of the first and second check sums the program is terminated (step 7 ) or an error message outputted.

2. A method for protecting a program run at the call of subprograms, a called program performing, before or during the program execution, a check of data passed directly or indirectly from a calling program, characterized in that upon call of a subprogram a timer is started (step 22 ) which counts a number of clock cycles required for executing the called program and terminates the called program if the preset number of clock cycles was exceeded before termination of the called program (step 26 ).

3. A method according to claim 1 , characterized in that the memory area for storing the check sum is a RAM or register area.

4. A method according to claim 1 , characterized in that a return address of a calling function is entered in a table and the called program checks the return address reported by the calling program (step 13 ) by checking the presence of said return address on the basis of the table.

5. A method according to claim 2 , characterized in that a timer value is read at certain preset points (step 24 ) and compared with a likewise preset intermediate value (step 25 ) and the called program is terminated if the preset intermediate value was exceeded (step 26 ).

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 30, 2017
From: GIESECKE & DEVRIENT GMBH
To: GIESECKE+DEVRIENT MOBILE SECURITY GMBH
Reel/Frame 044559/0969 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2002
From: BALDISCHWEILER, MICHAEL
To: GIESECKE & DEVRIENT GMBH
Reel/Frame 013014/0864 →