DE69326119T2 - Überprüfung von Softwareprogrammen - Google Patents
Überprüfung von SoftwareprogrammenInfo
- Publication number
- DE69326119T2 DE69326119T2 DE69326119T DE69326119T DE69326119T2 DE 69326119 T2 DE69326119 T2 DE 69326119T2 DE 69326119 T DE69326119 T DE 69326119T DE 69326119 T DE69326119 T DE 69326119T DE 69326119 T2 DE69326119 T2 DE 69326119T2
- Authority
- DE
- Germany
- Prior art keywords
- program
- disk
- file
- application
- software program
- 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
- 238000000034 method Methods 0.000 claims description 44
- 230000008569 process Effects 0.000 claims description 19
- 238000012795 verification Methods 0.000 claims description 8
- 238000012360 testing method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 6
- 238000011989 factory acceptance test Methods 0.000 description 5
- 238000012949 factory acceptance testing Methods 0.000 description 5
- 239000003925 fat Substances 0.000 description 5
- 238000010200 validation analysis Methods 0.000 description 5
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000000696 magnetic material Substances 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/78—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
- G06F21/80—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in storage media based on magnetic or optical technology, e.g. disks with sectors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/106—Enforcing content protection by specific content processing
- G06F21/1063—Personalisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/007—Encryption, En-/decode, En-/decipher, En-/decypher, Scramble, (De-)compress
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2135—Metering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2137—Time limited access, e.g. to a computer or data
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Description
- Diese Erfindung bezieht sich auf Computer mit Plattensystemen und insbesondere auf die Überprüfung vor der Ausführung von Softwareprogrammen, um eine nichtautorisierte Verwendung oder Modifikationen der Plattendateien zu verhindern. Die Verschlüsselung vor dem Speichern des Programms auf einer Platte ist der Gegenstand der Teilpatentanmeldung.
- Vor 15 Jahren wurden Computer bei spezialisierten Anwendungen verwendet, wobei dieselben Programme verwendeten, die spezifischerweise entworfen waren, um eine spezialisierte Aufgabe durchzuführen. Die wenigen Computerbetreiber waren für die Verwendung von Computern hoch ausgebildet, und es gab sehr wenige Leute, die zu Hause Computer besaßen. Heutzutage besitzen Millionen von Leuten Computer zu Hause und Büro. Was früher ein kleiner Markt für Computer war, ist nun ein großer.
- Mit dem Wachstum des Softwareprogrammarkts kam die Notwendigkeit für eine Massenverteilung von Softwareprogrammen auf. Da viele der Programme, die für Personalcomputer entworfen sind, teuer sind, wollen viele Kaufinteressenten dazu in der Lage sein, das Programm zu testen, bevor sie es kaufen. Ferner wollen sie das Programm auf ihrem Computer daheim oder im Büro testen. Die Lieferanten von Softwareprogrammen würden ihre Software gerne weit verteilen, damit die Käufer dieselben testen, aber es muß natürlich eine gewisse Einrichtung vorhanden sein, um die Leute vom Kopieren abzuhalten und eine unbegrenzte Verwendung des Programms zu verhindern. Zusätzlich zu dem Schützen des Programms muß das Einkaufen der Software für den Käufer so bequem wie möglich sein.
- Herkömmliche Verfahren sind entworfen worden, um zu ver suchen, die Software zu schützen. Dieselben stießen jedoch sowohl bei den Softwarelieferanten als auch bei den Benutzern auf keine Akzeptanz. Einige der herkömmlichen Verfahren erforderten eine zusätzliche Hardware, was die Kosten des Produkts erhöhte und die Verwendung des Produkts für den Verwender unbequem machte. Andere Verfahren erforderten es, daß sich eine spezielle Diskette in einem Plattenlaufwerk befindet, damit die Software funktioniert. Den Benutzern mißfiel es jedoch, die Disketten nachverfolgen zu müssen.
- Was in der Industrie gebraucht wird, ist ein Verfahren zum Verteilen einer Probesoftware an Benutzer, das es ermöglicht, daß die Benutzer die Software bequem testen, während zur gleichen Zeit die Interessen der Softwareentwickler geschützt sind. Ferner besteht eine Notwendigkeit für ein Verfahren, um es zu ermöglichen, daß die Käufer die Software einfach einkaufen können.
- Die GB-A-2238408 offenbart eine Speichervorrichtung mit einer Einbauschaltung, die die Anzahl von Malen begrenzt, wie oft Kopien von einer geschützten Software, die in der Vorrichtung gespeichert ist, erzeugt werden können. Ein Kennzeichenausdruck wird jedesmal modifiziert, wenn die geschützte Software kopiert wird.
- Die FR-A-2623640 offenbart eine Vorrichtung zum Verhindern des Betriebs eines Betrugsprogramms, die eine Codiereinrichtung, eine erste und eine zweite Hilfsdatei, die auf einer Platte gespeichert sind, und eine Überprüfungseinrichtung aufweist, die den Inhalt der Platte in zwei Sätze von verwandten Teilen unterteilt. Die Platte weist verschiedene Dateien und eine Datei-Zuweisungstabelle auf, die in vorbestimmten Positionen auf derselben in Sektoren von konzentrischen Spuren positioniert ist. Es ist eine Liste von Dateien, die geschützt werden sollen, umfaßt.
- Der Artikel "Conceptual view of MS-DOS file system security" in Wirtschaftsinformatik Bd. 33, Nr. 6, Dezember 1991, Wiesbaden, DE, Seiten 526-531; R. Posch u. a. prüft Maßnahmen für eine Computerdateisystemsicherheit nach. Das Vorsehen einer Schlüsselverwaltungsdatei ist mit einer zusätzlichen Verschlüsselungssteuerungstabelle offenbart.
- Gemäß der vorliegenden Erfindung wird ein Verfahren geschaffen, durch das ein Softwareprogramm vor der Ausführung überprüft wird, wobei das Softwareprogramm eine ursprüngliche Speicherungsposition und eine augenblickliche Speicherungsposition auf einer Festplatte mit Sektoren aufweist, wobei das Verfahren folgende Schritte aufweist: Bestimmen der augenblicklichen Sektorposition des Softwareprogramms auf der Festplatte; Bestimmen der ursprünglichen Sektorposition des Softwareprogramms auf der Festplatte; Durchführen eines Überprüfungsprozesses mit einem Bestimmen, ob die ursprüngliche und die augenblickliche Sektorposition des Softwareprogramms dieselben sind; und Bewirken, daß das Softwareprogramm aufgeführt wird, falls der Überprüfungsprozeß erfolgreich ist.
- Die vorliegende Erfindung schafft ein Verfahren, durch das Probeversionen von Softwareprogrammen zu kaufinteressierten Benutzern weit verteilt werden können, während zur gleichen Zeit ein Kopieren oder eine unbegrenzte Verwendung der Programme verhindert wird. Die Benutzer sind folglich in der Lage, die Programme zu testen, sowie sie es tun würden, falls sie die Programme gekauft hätten. Ferner schafft die vorliegende Erfindung einen bequemen Weg für die Benutzer, um die Programme zu kaufen, ohne ihr Zuhause oder ihr Büro zu verlassen.
- Bei einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung wird dem Benutzer eine verschlüsselte Version des Anwendungsprogramms, das der Benutzer anfordert, und ein Installationsprogramm gegeben. Das Installationsprogramm verschlüsselt, neu benennt und lädt ferner das Anwendungsprogramm auf eine Festplatte in dem Computersystem des Benutzers. Zusätzlich erzeugt das Installationsprogramm eine oder mehrere zufällig benannte Dateien, die ebenso auf die Festplatte geladen werden. Jede der Zufallsdateien enthält die Position des Anwendungsprogramms, der anderen Zufallsdateien und seiner eigenen Plattenposition auf der Festplatte. Die Zufallsdateien enthalten ferner Informationen über die Anzahl von Malen, wie oft der Benutzer das Anwendungsprogramm ausgeführt hat.
- Das Installationsprogramm erzeugt ferner ein Probeprogramm, dem der Name des Anwendungsprogramms gegeben wird, bevor das Anwendungsprogramm neu benannt worden ist. Dieses Probeprogramm ist das Programm, das der Benutzer ausführt, wenn der Benutzer das Anwendungsprogramm laufen lassen will. Das Probeprogramm testet, um zu erkennen, ob das Anwendungsprogramm und die Zufallsdateien immer noch an denselben absoluten Plattenpositionen positioniert sind, und testet, um zu erkennen, ob der Benutzer die erlaubte Anzahl von Malen überschritten hat, wie oft das Anwendungsprogramm laufen kann.
- Falls das Probeprogramm bestimmt, daß die Programme nicht verschoben worden sind, und der Benutzer immer noch autorisiert ist, das Programm zu verwenden, lädt das Probeprogramm das Anwendungsprogramm und führt dasselbe aus. Bevor jedoch das Anwendungsprogramm ausgeführt wird, wird dem Benutzer die Gelegenheit gegeben, ein Paßwort einzugeben, um alle Programmschutzmerkmale zu beseitigen. Typischerweise wird der Benutzer eine Telefonnummer anrufen und das Anwendungsprogramm kaufen, wobei ihm zu diesem Zeitpunkt das Paßwort gegeben wird.
- Die vorliegende Erfindung sperrt das Anwendungsprogramm bezüglich der spezifischen Festplatte, auf die dieselbe geladen ist. Da das Probeprogramm weiß, wo das Anwendungsprogramm und die Zufallsdateien positioniert sein sollten, wird jeder Versuch, eine Kopie des Anwendungsprogramms oder der Zufallsdateien herzustellen, fehlschlagen, da sich deren Positionen aufgrund der inhärenten Merkmale des Microsoft- Diskettenbetriebssystems (MS-DOS; MS-DOS = Microsoft Disk Operating System) ändern werden. Für einen typischen Benutzer mit vielen auf der Festplatte gespeicherten Dateien würde das Identifizieren der Zufallsdateien ferner problematisch sein. Zusätzlich erzeugt das Probeprogramm jedesmal, wenn das Anwendungsprogramm ausgeführt wird, neue Zufallsdateien mit zufälligen Namen, so daß jeder Versuch, die alten Zufallsdateien zu kopieren, nicht wirksam sein wird, um die Schutzmerkmale abzuwehren.
- Dieses neue und neuartige Programmschutzverfahren ermöglicht es dem Benutzer, ein Anwendungsprogramm zu testen, bevor dasselbe gekauft ist, während die Rechte der Softwarelieferanten geschützt sind.
- Fig. 1A stellt das MS-DOS-Verzeichnissystem und das FAT- (FAT = Dateizuordnungstabelle) Dateisystem dar.
- Fig. 1B stellt die Organisation der zwei FAT und des Verzeichnisses auf einer einzigen Festplatte dar.
- Fig. 2 ist eine graphische Ansicht des Speicherungsbereichs einer einzigen Festplatte.
- Fig. 3 ist ein Flußdiagramm der Schritte 1-3 des Anwendungsprogramm-Installationsverfahrens.
- Fig. 4 ist ein Flußdiagramm der Schritte 4-6 des Anwendungsprogramm-Installationsverfahrens.
- Fig. 5 ist ein Flußdiagramm der Schritte 7-9 des Anwendungsprogramm-Installationsverfahrens.
- Fig. 6 ist ein Flußdiagramm der Schritte 10 und 11 des Anwendungsprogramm-Installationsverfahrens.
- Fig. 7 ist ein Flußdiagramm der Schritte 12-14 des Anwen dungsprogramm-Installationsverfahrens.
- Fig. 8 ist ein Flußdiagramm der Schritte 1 und 2 des TSR- Programm-Ausführungsverfahrens.
- Fig. 9A ist ein detailliertes Flußdiagramm des TSR-Programm-Ausführungsprozesses.
- Fig. 9B ist eine Fortführung des Flußdiagramms, das in Fig. 9A gezeigt ist.
- Fig. 10 ist ein Übersichtflußdiagramm des Anwendungsprogramm-Ausführungsprozesses.
- Fig. 11A ist ein detailliertes Flußdiagramm des Anwendungsprogramm-Ausführungsverfahrens.
- Fig. 11B ist eine Fortführung des Flußdiagramms, das in Fig. 11A gezeigt ist.
- Fig. 12 ist ein Fortführung des Flußdiagramms von Fig. 11A.
- Fig. 13 ist ein Flußdiagramm des Validate-Programms.
- Diese Erfindung macht es möglich, Computerdateien bezüglich der Festplatte zu sperren. Das Verfahren der vorliegenden Erfindung macht es möglich, zu erfassen, ob eine Datei über sich selbst kopiert worden ist oder nicht. Die Motivation, Dateien bezüglich einer Computerplatte zu sperren, tritt in Situationen auf, bei denen einige Zählinformationen auf der Platte gespeichert werden müssen und bei denen es einigen Anreiz für Benutzer gibt, es zu verhindern, daß die Zählinformationen, inkrementiert werden. In dem Fall der Anwendungssoftware, die auf einer Probebasis verteilt wird, d. h. bei der die Software eine vordefinierte Anzahl von Malen ausgeführt werden kann, können beispielsweise die Probezählwerterinformation auf der Festplatte gespeichert sein. Ohne ein Sperreh dieser Datei ist es für einen Benutzer möglich, eine ursprüngliche Kopie der Datei beizubehalten (wobei der Probezähler auf den maximal erlaubten Zählwert eingestellt ist) und diese jedesmal auf die Festplatte zu kopieren, wenn er die Anwendung laufen lassen will, wobei wirksam verhindert wird, daß die Probezählwertinformationen dekrementiert werden.
- Das Sperren des Anwendungsprogramms weist folgenden Prozeß auf:
- a. Erzeugen von mehreren Dateien, wobei die erste einen festen Namen aufweist und die andere (n) zufällige Namen aufweisen
- b. Speichern des Kopfs, des Zylinders, der Sektorinformationen für jede der Dateien in jeder der Dateien zusammen mit den Zählwertinformationen.
- c. Speichern des Namens aller Dateien in der ersten Datei mit dem festen Namen
- c. Verschlüsseln aller Dateien
- Falls jemand die Datei (die die Zählwertinformationen enthält) speichert und daraufhin dieselbe zurück zu der Platte kopiert, bevor die Probeanwendung ausgeführt wird, würde dies mit diesen Operationen aufgrund der Tatsache erfaßt werden, daß die Kopf-, Zylinder- und Sektorinformationen, die in die Datei geschrieben sind, nicht mehr mit dem tatsächlichen Kopf, Zylinder und Sektor, der durch die Datei besetzt ist, übereinstimmen würden. Jegliches Schema, das durch den Benutzer verwendet wird, um die Datei zurück zu derselben physischen Position auf der Platte neu zu positionieren, wird ferner aufgrund dessen fehlschlagen, daß ein Satz von Dateien mit zufälligen Namen vorhanden ist. Da die Dateien jedesmal, wenn die Probeanwendung ausgeführt wird, zufällig erzeugt werden, würde es bei den meisten Systemen mit vielen Dateien sehr schwierig sein, zu identi fizieren, welcher Satz von Dateien erzeugt wurde, wodurch die Sicherheit des Schutzverfahrens erhöht wird.
- Während das Verfahren der vorliegenden Erfindung auf viele Betriebssysteme anwendbar ist, wird ein bevorzugtes Ausführungsbeispiel beschrieben, als ob es mit dem MS-DOS-Betriebssystem implementiert sei. Das MS-DOS wird ferner unter anderen Markennamen auf dem Markt gehandhabt. Das IBM- Personalcomputerplattenbetriebssystem (PC-DOS; PC-DOS = Personal Computer Disk Operating System) ist mit geringfügigen Ausnahmen beispielsweise ein neubenanntes MS-DOS. Der Betrieb des MS-DOS/PC-DOS (DOS; DOS = Disk Operating System = Plattenbetriebssystem) wird von Fachleuten gut verstanden und die technischen Merkmale des Betriebssystems sind in der IBM- "Disk Operating System Technical Reference" Version 5.00 dokumentiert. Zusätzliche Betriebssysteminformationen sind in "The MS-DOS Encyclopedia" veröffentlicht, veröffentlicht durch Microsoft Press, Redmond, Washington, 1988.
- Da ein Merkmal der vorliegenden Erfindung das Sperren des Anwendungsprogramms und anderer Dateien bezüglich der Festplatte ist, ist ein Grundverständnis einer Festplatte und der Dateistruktur des MS-DOS nützlich. Eine Fest- (feste) Platte weist typischerweise mehrere Platte-Plattenscheiben auf. Jede Plattenscheibe ist mit einem magnetischen Material beschichtet, und typischerweise ist ein magnetischer Plattenkopf pro Plattenscheibeoberfläche vorgesehen, um die Daten auf die Plattenscheibenoberfläche aufzuzeichnen. Jeder der Plattenköpfe ist an einem gemeinsamen Arm angebracht, der in diskreten Inkrementen bewegt wird, um die Köpfe auf einen bestimmten Plattenzylinder zu positionieren. Ein Zylinder weist alle Plattenspuren auf, die unter einem Druckkopf linienhaft angeordnet sind. Falls beispielsweise eine Platte zwei Plattenscheiben und folglich vier Platten köpfe aufweist, würden vier Spuren vorhanden sein, die zusammen einen Zylinder bilden. Jede Spur ist in Sektoren unterteilt, wobei jeder Sektor mehrere Bytes von Daten speichert. Die Anzahl von Sektoren ist bestimmt, wenn die Platte durch ein Formatierprogramm formatiert ist.
- Eine Zuweisung eines Plattenplatzes für eine Datei (in dem Plattendatenbereich) wird lediglich durchgeführt, wenn es notwendig ist. Das heißt, daß der Datenplatz nicht vorzugewiesen ist. Der Platz wird in Zuordnungseinheiten (Einheit einer Zuweisung) zugewiesen, wobei eine Zuordnungseinheit ein oder mehrere aufeinanderfolgende Plattensektoren ist. Zuordnungseinheiten für eine Datei sind aneinander "gekettet" und werden durch Eintragungen in einer Dateizuweisungstabelle (FAT) nachverfolgt.
- Die Zuweisungseinheiten sind auf der Platte angeordnet, um die Plattenkopfbewegung zu minimieren. Der gesamte Platz auf einer Spur (oder einem Zylinder) wird zugewiesen, bevor zu der nächsten Spur fortgefahren wird. Dies wird durch Verwenden der aufeinanderfolgenden Sektoren auf dem Kopf mit der niedrigsten Nummer und daraufhin aller Sektoren auf dem nächsten Kopf usw. durchgeführt, bis alle Sektoren auf allen Köpfen des Zylinders verwendet sind. Der nächste Sektor, der verwendet werden soll, wird daraufhin der Sektor 1 auf dem Kopf 0 des nächsten Zylinders sein.
- Für eine Fest- (feste) Platte ist die Größe der FAT und des Verzeichnisses bestimmt, wenn ein Plattenformatierprogramm die Platte initialisiert, wobei dieselben auf der Größe der DOS-Partition basieren. Um alle Daten zu lokalisieren, die einer speziellen Datei zugeordnet sind, die auf der Festplatte gespeichert ist, wird die Anfangszuordnungseinheit der Datei aus einem Verzeichniseintrag erhalten, wobei daraufhin in der FAT-Tabelle nachgeschlagen wird, um die nächste Zuordnungseinheit, die der Datei zugeordnet ist, zu lokalisieren. Die FAT-Tabelle ist eine verkettete Liste von Zuordnungseinheiten, derart, daß jede 16-Bit-FAT-Eintragung für eine Datei auf die nächste nachfolgende Zuordnungseinheit zeigt, die für diese Datei verwendet wird. Die letzte Eintragung für eine Datei in der FAT weist eine Zahl auf, die anzeigt, daß keine Zuordnungseinheiten mehr folgen. Diese Zahl kann FFF8 bis FFFF (Basis 16) einschließlich sein. Die Größe einer Zuordnungseinheit ist definiert, wenn die Platte formatiert ist, und kann von 1 bis 128 Sektoren reichen. Jeder Sektor einer FAT kann auf 256, 512, ... oder 32768 Sektoren zeigen, abhängig von der Anzahl von Sektoren in einer Zuordnungseinheit. Die Anzahl von Sektoren, auf die ein FAT-Sektor zeigen kann, wird als "Spurgruppe" bezeichnet. Aus Redundanzgründen sind zwei identische FAT auf der Platte vorgesehen.
- Fig. 1A zeigt eine Verzeichniseintragung 2, die aus 32 Datenbytes besteht. Der Name der Datei und dessen Erweiterung sind in den ersten 11 Bytes der Verzeichniseintragung 2 gespeichert, wobei ein Dateiattributbyte 6 vorgesehen ist. Definitionsgemäß sind 10 Bytes (8) für eine zukünftige Verwendung reserviert, und 2 Bytes sind vorgesehen, um Zeitinformationen (10) und Datuminformationen (12) zu speichern. Ein Zuordnungseinheitbyte (14) zeigt auf die erste Zuordnungseinheit der Sektoren, die verwendet werden, um die Dateiinformationen zu speichern, wobei das Byte (14) auf die erste Eintragung der FAT-Tabelle (16) zeigt, die der Datei zugeordnet ist. Die letzten vier Bytes (18) der Verzeichniseintragung 2 werden verwendet, um die Größe der Datei zu speichern.
- Ein 16-Byteabschnitt einer FAT-Tabelle (20) ist dargestellt. Die ersten vier Bytes (21) speichern Systeminformationen. Die Bytes 4 und 5 (16) sind die anfänglichen Bytes der FAT (20), die verwendet wird, um die Dateininformationen zu verfolgen. Die erste Zuordnungseinheit für einen Datenplatz auf allen Platten ist die Zuordnungseinheit "02". Die Bytes 4 und 5 (16) sind folglich der ersten Zuordnungseinheit der Plattensektoren "02" zugeordnet, die verwendet werden, um die Dateininformationen zu speichern. Die FAT-Bytes 6 und 7 (22) sind der Zuordnungseinheit 03... und die Bytes 14 und 15 (24) sind der Zuordnungseinheit 07 zugeordnet.
- Dieses Beispiel stellt dar, wie Sektoren positioniert werden, die einer Datei zugeordnet sind, auf die in der Verzeichnis Bezug genommen wird. Die Zuordnungseinheitinformationen (14) in dem Verzeichnis (2) zeigen auf die Zuordnungseinheitzahl "02". Die Sektoren in der Zuordnungseinheit "02", nicht gezeigt, enthalten den ersten Teil der Daten für die Datei, auf die Bezug genommen wurde. Als nächstes wird auf die FAT-Tabelle Bezug genommen, um zu erkennen, ob zusätzliche Zuordnungseinheiten verwendet werden, um die Dateiinformationen zu speichern. Auf die FAT-Bytes 4 und 5 (16) wurde durch die Verzeichniseintragung (14) gezeigt, wobei die Informationen, die in den Bytes 4 und 5 (16) gespeichert sind, zu der nächsten Zuordnungseinheit zeigen, die für die Datei verwendet wird. Hier ist die nächste Zuordnungseinheit "05". Die Zuordnungseinheit "05" enthält somit den nächsten Teil der Daten für die Datei, auf die Bezug genommen wird. Die FAT-Bytes 10 und 11 (26) enthalten eine Ende-der-Datei-Zahl "FFFF", die anzeigt, daß es keine weiteren Zuordnungseinheiten gibt, die der Datei, auf die Bezug genommen wird, zugeordnet sind. Alle Informationen, die der Datei, auf die Bezug genommen wird, zugeordnet sind, waren in den Zuordnungseinheiten "02" und "05" auf der Platte umfaßt.
- Figur iß zeigt eine schematische Ansicht der Organisation der zwei FAT und des Verzeichnisses auf einer einzigen Platte. Die Platte 102 weist eine äußere Spur 104 auf, die die Informationen der ersten FAT enthält. Die nächstinnere Spur 106 enthält die Informationen der zweiten FAT. Die nächstfolgende Spur 108 in Richtung der Mitte der Platte enthält die Verzeichnisinformationen. Die äußerste Spur (Spur 0) der Platte, die nicht gezeigt ist, ist für die Speicherung der Computer-urlade-Befehle reserviert.
- Fig. 2 zeigt eine graphische Ansicht des Speicherungsbe reichs der Platte in Fig. 1. Die Informationen für die FAT 104 und 106 sind in der ersten und der zweiten Spur, die gezeigt sind, gespeichert, wobei die Informationen für das Verzeichnis 108 in der dritten gezeigten Spur gespeichert sind. Der restliche Speicherbereich der Platte 202 ist zum Speichern von Dateiinformationen verfügbar. Beginnend mit Spur 1 Sektor 1 verwendet das Betriebssystem bis zu 128 aneinandergrenzende Sektoren für die erste Kopie der FAT 1 (104). Das Betriebssystem weist daraufhin einen zusätzlichen, aneinandergrenzenden Duplikatplatz für die FAT 2 (106) zu. Nachdem beide FAT zugewiesen worden sind, weist das Betriebssystem die nächsten 32 aneinandergrenzenden Sektoren für das Wurzelverzeichnis 108 zu.
- Die einfache Platte, die in Fig. 1 und Fig. 2 dargestellt ist, weist eine einzige Aufnahmeoberfläche auf, und würde lediglich einen einzigen Aufnahmekopf aufweisen. Eine Spur würde folglich äquivalent zu einem Zylinder sein. Zur Einfachheit wird ferner angenommen, daß das Verzeichnis 108 und die FAT 104 und 106 jeweils eine einzige Spur besetzen.
- Durch Folgen des im vorhergehenden erörterten Beispiels können die absoluten Sektoren, die durch das Betriebssystem verwendet werden, um eine spezielle Datei auf der Festplatte zu speichern, ohne weiteres bestimmt werden. Programmtechnisch würde man die Betriebsmittel des Basis-Ein-Ausgabe- Systems (BIOS; BIOS = Basic Input Output System), insbesondere Interrupt-13 (interrupt = Unterbrechung) verwenden, um absolute Plattensektoren zu lesen und zu schreiben.
- Fig. 3 stellt die ersten drei Schritte des Anwendungsprogramm-Installationsverfahrens dar. Bei einem Schritt 1 wird der Benutzer mit einer Verteilungsplatte 302 versorgt, die eine verschlüsselte Kopie des Anwendungsprogramms und andere Dateien enthält. Die Platte 302 kann irgendeine Einrichtung einer Softwareverteilung sein, wie z. B. eine Diskette, eine optische Platte oder eine Dateidiensteinheit, die mit dem Computer des Benutzers über ein Netzwerk oder ein Telephon verbunden ist. Ein Computer 304 liest das Anwendungsprogramm von der Verteilungsplatte 302.
- Bei einem Schritt 2 wird das Anwendungsprogramm "Application.EXE" verschlüsselt und zu "Application.TRY" umbenannt. Jeder Verschlüsselungsalgorithmus kann verwendet werden, um das Anwendungsprogramm zu verschlüsseln. Ein einfaches Verfahren besteht darin, die Bits in allen oder einigen der Bytes von Daten zu invertieren, die das Anwendungsprogramm bilden. Umständlichere Verschlüsselungsalgorithmen, wie z. B. das Datenverschlüsselungssystem (DES; DES = Data Encryption System), können ebenso verwendet werden. Je sicherer der Verschlüsselungsalgorithmus ist, der verwendet wird, desto schwieriger ist es, das Softwareschutzverfahren zu durchbrechen. Das Umbenennen einer Datei wird durch Verwenden des MS-DOS-"REN"-Befehls oder anderer Verfahren durchgeführt, die für einen Fachmann bekannt sind.
- Bei einem Schritt 3 wird die verschlüsselte und umbenannte Anwendung Application.TRY auf einer Festplatte 306 gespeichert, die ein Teil des Computers 304 ist.
- Fig. 4 stellt Schritte 4 bis 6 des Anwendungsprogramm- Installationsverfahrens dar. Der Schritt 4 zieht das Lesen des Programms Try.EXE von der Verteilungsplatte 302 mit sich. Das Programm Try.EXE ist das Programm, das der Benutzer ausführen wird, um das Anwendungsprogramm laufen zu lassen. Ferner prüft das Programm Try.EXE die Dateien auf der Festplatte 306, um zu überprüfen, daß kein unerlaubter Eingriff an den Dateien vorgenommen wurde.
- Bei dem Schritt S wird das Programm Try.EXE zu Application.EXE umbenannt. Dieses Umbenennen wird so durchgeführt, daß das Programm Try ausgeführt wird, wenn der Benutzer das Anwendungsprogramm ausführen will. Das Programm Try wird das Anwendungsprogramm ausführen, nachdem dasselbe Überprüfungstests durchgeführt hat. Nachdem das Programm Try umbenannt ist, wird dasselbe bei dem Schritt 6 auf der Festplatte 306 als Application.EXE gespeichert.
- Fig. 5 stellt Schritte 7-9 des Anwendungsprogramm-Installationsverfahrens dar. Der Computer 304 erzeugt bei Schritt 7 zwei Dateien Application.BLK und Zufall, auf der Festplatte. Der Schritt 8 bringt die Verschlüsselung der absoluten Plattenposition der Dateien Application.BLK, Zufall und Application.TRY zusammen mit einer Probezählwertzahl und einem Decodierungsschlüssel mit sich. Die Probezählwertzahl ist die Anzahl von Malen, wie oft es gestattet ist, daß das Anwendungsprogramm ausgeführt wird. Der Decodierungsschlüssel wird verwendet, um das verschlüsselte Anwendungsprogramm zu decodieren, und kann ein einfacher Schlüssel sein, wie er verwendet werden würde, um invertierte Bits oder einen komplexen Mehr-Byte-Schlüssel wiederherzustellen. Bei dem Schritt 9 werden die verschlüsselten Informationen von dem Schritt 8 in den zwei Dateien Application.BLK und Zufall gespeichert.
- Fig. 6 stellt Schritte 10 bis 11 des Anwendungsprogramm- Installationsverfahrens dar. Die Verteilungsplatte 302 enthält ein Beenden-und-Resident-Bleiben- (TSR; TSR = Terminate and Stay Resident) Programm TSR. EXE, wobei bei dem Schritt 10 diese Datei in den Computer 304 gelesen wird. Das Programm TSR überwacht die MS-DOS-Plattenbefehle, um zu bestimmen, ob das verschlüsselte Programm Application.TRY in den Speicher des Computers 304 gelesen wird. Bei dem Schritt 11 wird das Programm TSR.EXE auf die Festplatte 306 gespeichert.
- Fig. 7 stellt Schritte 12 bis 14 des Anwendungsprogramm- Installationsverfahrens dar. Bei dem Schritt 12 wird das MS-DOS-Programm Autoexec.BAT von der Festplatte 306 gelesen. Das Programm Autoexec.BAT wird editiert, um einen Befehl einzufügen, um das Programm TSR.EXE bei dem Schritt 13 auszuführen. Da Autoexec.BAT automatisch ausgeführt wird, wenn der Computer 304 angeschaltet wird, wird das Programm TSR ausgeführt werden und in dem Computerspeicher resident verbleiben, wo dasselbe die Plattentätigkeit überwachen wird. Das editierte Autoexec.BAT-Programm wird bei dem Schritt 14 auf die Festplatte 306 gespeichert.
- Fig. 8 stellt Schritte 1 und 2 des TSR-Programm-Installationsverfahrens dar. Wenn der Computer 304 angeschaltet wird (urgeladen wird), läuft automatisch das Autoexec.BAT-Programm ab. Das Programm Autoexec ist ein Stapelprogramm, das eine Liste der Befehle enthält, die der Computer durchführt, wenn derselbe urgeladen wird. Einer der Befehle ist der Befehl, das Programm TSR.EXE auszuführen. Bei dem Schritt 1 liest der Computer 304 das Programm TSR.EXE von der Festplatte 306, wo dasselbe vorher gespeichert war. Daraufhin führt der Computer bei dem Schritt 2 das Programm TSR aus. Das Programm TSR wird in der Interrupt-13-Kette installiert. Diese Installation wird durch Ersetzen der Adresse bei der Interrupt-13-Position mit der Speicheradresse des Programms TSR durchgeführt. Die alte Interrupt-13-Adresse wird für eine zukünftige Verwendung durch das Programm TSR gespeichert. Nun wird jedes Programm, das eine Interrupt-13- Anforderung (eine Anforderung für einen Plattendienst) ausgibt, automatisch die Steuerung zu dem Programm TSR übertragen. Das Programm TSR wird alle Interrupt-13- (Int.13-) Anforderungen und insbesondere diejenigen überwachen, die zum Laden der Sektoren vorgesehen sind, die die verschlüsselten Sektoren des Anwendungsprogramms (Application.TRY) enthalten.
- Fig. 9A und 9B zeigen ein Flußdiagramm für das Programm TSR.EXE. Der Prozeß TSR startet, wenn eine Int.13-Anforderung ausgegeben wird, 902. Der nächste Schritt, 904, besteht darin, um zu erkennen, ob die Int.13-Anforderung eine Lese-Anforderung ist. Falls dieselbe eine Lese-Anforderung ist, wird der Prozeß, der in Fig. 9B gezeigt ist, durchgeführt, wobei mit Block 906 gestartet wird. Falls die Int.13-Anforderung keine Lese-Anforderung ist, wird nachgesehen, ob die Anforderung eine Steuerung-Anforderung ist, 908. Falls die Anforderung keine Steuerung-Anforderung ist, muß das TSR-Programm keine Funktion durchführen, wobei die Steuerung zu dem Programm übertragen wird, das bei der alten Int.13-Adresse positioniert ist, 910. Falls eine Steuerung- Anforderung ausgegeben wurde, wird geprüft, um zu erkennen, ob die Steuerung-Anforderung für das Programm TSR ist, 912. Falls die Steuerung-Anforderung nicht für das TSR-Programm ist, muß das Programm TSR keine Funktion durchführen, wobei die Steuerung zu dem Programm übertragen wird, das bei der alten Int.13-Adresse positioniert ist, 910.
- Falls die Steuerung-Anforderung für das TSR-Programm ist, führt das Programm TSR eine von zwei Funktionen 914 oder 916 durch. Bei dem Block 914 speichert das Programm TSR die absolute Plattenposition der Sektoren, die verwendet werden, um das Programm Application.TRY zu speichern. Durch Speichern der Position der verschlüsselten Plattensektoren, kann das Programm TSR eine Platten-Lese-Anforderung untersuchen, um zu bestimmen, ob eine oder mehrere der Sektoren, die das Anwendungsprogramm speichern, angefordert worden sind. Das Programm TSR erhält ferner eine Freigabe-Flag. Falls die Flag freigegeben ist, wird das Programm TSR die verschlüsselten Plattensektoren decodieren, die in den Speicher gelesen worden sind. Falls die Flag jedoch "gelöscht" ist, ist das Programm TSR effektiv abgeschaltet. Eine der Steuerung-Anforderungen, die das Programm TSR durchführen wird, besteht darin, die Flag zu löschen, 916. Nachdem alle Steuerung-Anforderungen durchgeführt worden sind, führt das Programm TSR einen IRET-Befehl 918 durch, der die Steuerung zu dem Programm zurückgibt, das die Int.13-Anforderung ausgegeben hat.
- Falls die Int.13-Anforderung eine Lese-Anforderung ist, wird der Prozeß, der in Fig. 9B dargestellt ist, durchgeführt. Bei dem Block 906 wird ein Sprung zu einem Unterprogramm (JSB, JSB = jump to subroutine) zu der alten Int.13-Adresse durchgeführt. Dies bewirkt, daß das Programm bei der alten Int.13-Adresse seine Funktion durchführt, wobei dieses Programm typischerweise die Plattensektoren liest und daraufhin die Steuerung zurück zu dem Programm TSR gibt. Nachdem die Steuerung zu dem Programm TSR zurückgegeben ist, prüft das Programm TSR, um zu erkennen, ob die Freigabe-Flag eingestellt ist, 920, und prüft, um zu erkennen, ob die gelesenen Sektoren aufweisen, die das Anwendungsprogramm enthalten, 922. Falls die Flag nicht eingestellt ist oder die Sektoren das Anwendungsprogramm nicht enthalten, führt das Programm TSR einen IRET-Befehl durch, 928, der die Steuerung an das Programm überträgt, das die Int.13-Anforderung ausgab.
- Nachdem alle Prüfungen abgeschlossen sind, entschlüsselt das Programm TSR nun die Plattensektoren, 926, die das verschlüsselte Anwendungsprogramm enthalten und in den Speicher geschrieben worden sind. Das Programm TSR verwendet den Schlüssel, der zu demselben durch eine Int.13-Steuerung- Anforderung weitergeleitet wurde, um die Sektoren zu entschlüsseln. Abhängig von dem verwendeten Verschlüsselungsverfahren kann der Schlüssel einfach oder sehr komplex sein. Nachdem die Sektoren entschlüsselt worden sind, führt das Programm TSR einen IRET-Befehl durch, 928, um die Steuerung zurück zu dem Programm zu geben, das die Int.13-Anforderung ausgegeben hat.
- Fig. 10 stellt die Grundfunktionen dar, die auftreten, wenn das Anwendungsprogramm ausgeführt wird. Bei einem Schritt 1 werden die Programme Application.EXE und Application.TRY und die Dateien Application.BLK und die Zufall-Datei(en) von der Festplatte 306 gelesen. Das Programm Application.EXE wird bei einem Schritt 2 ausgeführt. Bei einem Schritt 3 validiert das Programm Application.EXE das Programm Application.TRY, die Datei Application.BLK und die Datei(en) Zufall. Falls das Programm und die Dateien validiert sind, bewirkt das Programm Application.EXE, daß das Programm Application.TRY entschlüsselt wird, und erzeugt eine neue Datei Application.BLK und neue, zufällig benannte Dateien. Danach wird bei einem Schritt 4 das Programm Application.TRY ausgeführt, wobei der Benutzer das Applikationsprogramm verwenden kann.
- Fig. 11A, 11B und 12 stellen ein detailliertes Flußdiagramm für die Ausführung des Applikationsprogramms dar. Nachdem das Programm TSR geladen und ausgeführt worden ist, wie es im vorhergehenden beschrieben wurde, bewirkt der Benutzer, daß das Programm Application.EXE ausgeführt wird. Wie es im vorhergehenden beschrieben wurde, ist das Programm Application.EXE das ehemalige Programm TRY.EXE. Wenn das Programm Application.EXE ausgeführt wird, 1102, wird das Programm "Validate" aufgerufen, 1104. Das Programm Validate prüft, um zu sehen, ob der Benutzer autorisiert ist, um das Anwendungsprogramm laufen zu lassen. Ein Flußdiagramm für das Validate-Programm ist in Fig. 13 gezeigt. Eine Validierungsflag wird von dem Validate-Programm zurückgegeben. Das Programm Application.EXE prüft die Validierungsflag, um zu bestimmen, ob es erlaubt ist, daß der Benutzer das Anwendungsprogramm ausführt.
- Nach dem Validierungsprozeß zeigt das Programm Application.EXE eine Dialogbox auf dem Computer des Benutzers 304 an, 1108. Diese Dialogbox gibt dem Benutzer drei Wahlmöglichkeiten:
- 1. Das Programm zu kaufen
- 2. Die Anforderung, die Anwendung auszuführen, abzubrechen
- 3. Das Anwendungsprogramm auszuführen
- Falls die Validierungsflag eingestellt ist (irgendeine Verletzung festgestellt wurde), kann der Benutzer lediglich das Programm kaufen oder die Abfrage abbrechen. Der Benutzer, der die Ausführ-Option auswählt, bewirkt, daß das Programm Application.EXE die Int.13-Anforderungen ausgibt. Die erste Int.13-Anforderung stellt die Flag in dem Programm TSR ein, 1110. Dies wird durch Senden einer Steuerung- Anforderung zu dem Programm TSR durchgeführt, die bewirkt, daß die TSR-Flag eingestellt wird, und gibt das Programm TSR frei, um die verschlüsselten Festplattensektoren zu entschlüsseln. Eine zweite Int.13-Anforderung leitet zu dem Programm TSR die absolute Position der Sektoren auf der Festplatte weiter, die verwendet werden, um das Anwendungsprogramm zu speichern, 1112. Die dritte Int.13-Anforderung sendet zu dem Programm TSR einen Schlüssel, der von dem Programm TSR verwendet wird, um die verschlüsselten Plattensektoren zu entschlüsseln.
- Das Programm Application.EXE löscht das Programm Application.BLK und die Zufall-Datei(en) von der Festplatte 1116 und erzeugt neue Dateien 1118. Dieser Prozeß ist im wesentlichen derselbe Prozeß, wie der in Verbindung mit Fig. 5 Schritte 7-9 beschriebene Prozeß. Die Probezählwertzahl wird jedoch um Eins von dem vorhergehenden Wert dekrementiert, um die gegenwärtige Ausführung des Anwendungsprogramms wiederzuspiegeln.
- Das Programm Application.EXE bewirkt nun, daß das Betriebssystem das Programm Application.TRY lädt und ausführt, 1120, wodurch das Anwendungsprogramm abläuft. Während des Prozesses des Ladens des Programms Application.TRY wird eine Int.13-Anforderung ausgegeben werden, wodurch bewirkt wird, daß das Programm TSR die notwendigen Festplattensektoren entschlüsselt, die in den Speicher des Computers 304 geladen sind.
- Falls die Validierungsflag gesetzt wurde oder falls der Benutzer die Kauf- oder Abbruch-Optionen, die durch die Dialogbox angezeigt sind, ausgewählt hat, wird der Prozeß, der in Fig. 12 dargestellt ist, durchgeführt. An dem Kauf/Abbruch-Optionspunkt endet das Programm Application.EXE, 1202, und überträgt die Steuerung zurück zu dem Betriebssystem 1204, falls der Benutzer Abbrechen auswählt. Der Benutzer kann wünschen, die Abbruch-Option auszuwählen, falls die Anzahl von Malen, wie oft der Benutzer noch das Anwendungsprogramm ausführen kann, klein ist, und die gegenwärtige Aufgabe nicht sehr wichtig ist.
- Falls die Kaufoption ausgewählt wird, wird der Benutzer veranlaßt, einen Schlüssel einzugeben, 1206. Falls der Benutzer die Kauf-Option ausgewählt hat, würde typischerweise eine zweite Dialogbox (nicht gezeigt) angezeigt werden, die dem Benutzer die Telefonnummer des Softwarehändlers gibt, um anzurufen. Der Benutzer würde daraufhin dem erforderlichen Schlüssel durch Einkaufen des Programms über das Telephon von dem Softwarehändler empfangen. Nach Überprüfen des Schlüssels entschlüsselt das Programm Application.EXE das Programm Application.TRY, 1208, und benennt daraufhin das Programm Application.TRY zu Application.EXE um, 1210. Das entschlüsselte Anwendungsprogramm wird daraufhin auf die Festplatte gespeichert, 1212. Die Steuerung wird nun zu dem Betriebssystem zurückgegeben, 1204. An diesem Punkt ist das Anwendungsprogramm nicht mehr geschützt und kann durch Benutzer eine unbegrenzte Anzahl von Malen ausgeführt werden.
- Fig. 13 stellt ein Flußdiagramm für das Validate-Programm dar, das durch das Programm Application.EXE aufgerufen wird, um die Integrität des Anwendungssperrverfahrens zu überprüfen. Nachdem das Validate-Programm aufgerufen ist, 1302, wird der Name des Anwendungsprogramms erzeugt, 1304. Da das Validate-Programm aufgerufen sein kann, um eine Anzahl von Anwendungsprogrammen zu überprüfen, ist dieser Namenserzeugungsschritt erforderlich, um zu bestimmen, welches Anwendungsprogramm geprüft werden soll. Der Name des Programms, der das Überprüfungsprogramm aufruft, wird verwendet, um den Anwendungsprogrammnamen zu erzeugen. Das Programm Application.EXE kann beispielsweise in Wirklichkeit "Wordperfect.EXE" genannt werden, wobei folglich das Überprüfungsprogramm wissen wird, die Dateien zu untersuchen, die sich auf das Wordperfect-Anwendungsprogramm beziehen. Durch das Kennen des Namens des Anwendungsprogramms wird das Überprüfungsprogramm den Application.BLK-Dateinamen bestimmen, 1306. In dem im vorherigen beschriebenen Beispiel wird das Application.BLK in Wirklichkeit Wordperfect.BLK genannt.
- Das Überprüfungsprogramm extrahiert die Probezählwertinformationen, den Namen der Zufall-Datei, die der Anwendung und dem Entschlüsselungsschlüssel zugeordnet ist, die Positionen der Dateien und einen Entschlüsselungsschlüssel aus der Application.BLK-Datei, 1308. Diese Informationen sind in der Application.BLK-Datei und den Zufall-Dateien verschlüsselt und müssen gemäß des Verschlüsselungsverfahrens, das verwendet wird, entschlüsselt werden.
- Das Validate-Programm prüft nun, um zu erkennen, ob es erlaubt ist, daß der Benutzer das Anwendungsprogramm ausführt, 1310. Falls keine weiteren erlaubten Abläufe des Anwendungsprogramms verfügbar sind, wird die Validierungsflag eingestellt 1312 und das Validate-Programm gibt die Steuerung zu dem aufrufenden Programm zurück 1314. Die Positionen aller Dateien, die dem Anwendungsprogramm zugeordnet sind, werden ebenfalls geprüft, um zu erkennen, ob irgendeine der Dateien verschoben worden ist. Falls eine oder mehrere Dateien verschoben worden sind, wird die Ungültig-Flag eingestellt, 1312, und das Validateprogramm gibt die Steuerung zu dem aufrufenden Programm zurück 1314. Sollten der Probezählwert, die Dateinamen und -Positionen und der Entschlüsselungsprozeß alle die Überprüfung erfüllen, kann der Benutzer das Anwendungsprogramm ausführen, wobei das Validate-Programm nicht die Ungültig-flag einstellt und die Steuerung zu dem aufrufenden Programm zurückgibt, 1314.
- Außer in dem Fall, wenn der Benutzer das Programm kauft, ist das Anwendungsprogramm niemals auf der Festplatte in einer unverschlüsselten Form verfügbar, wobei folglich die Sicherheit dieses neuen und neuartigen Verfahrens hoch ist. Obwohl ein spezielles Ausführungsbeispiel dieser Erfindung beschrieben worden ist, wird es ferner für Fachleute offensichtlich sein, daß Modifikationen an diesem Verfahren durchgeführt werden können, wobei dieselben immer noch die Vorteile dieser Erfindung nutzen. Anstatt einer einzigen erzeugten Zufall-Datei kann beispielsweise eine größere Anzahl von Zufall-Dateien erzeugt werden, wodurch die Schwierigkeit erhöht wird, dieses neuartige Programmsperrverfahren zu überwinden. Das im vorhergehenden beschriebene Beispiel ist dazu gedacht, ein Ausführungsbeispiel der vorliegenden Erfindung darzustellen, und ist nicht als eine Begrenzung des Schutzbereiches dieser Erfindung anzusehen, der lediglich durch die folgenden Ansprüche definiert ist.
Claims (4)
1. Ein Verfahren, durch das ein Softwareprogramm vor einer
Ausführung überprüft wird, wobei das Softwareprogramm
eine ursprüngliche Speicherungsposition und eine
augenblickliche Speicherungsposition auf einer Festplatte
(306) mit Sektoren aufweist, mit folgenden Schritten:
a) Bestimmen der augenblicklichen Sektorposition des
Softwareprogramms auf der Festplatte (1308);
b) Bestimmen der ursprünglichen Sektorposition des
Softwareprogramms auf der Festplatte (1310);
c) Durchführen eines Überprüfungsprozesses, der das
Bestimmen aufweist, ob die ursprüngliche und die
augenblickliche Sektorposition des
Softwareprogramms dieselben sind (1310); und
d) Bewirken, daß das Softwareprogramm ausgeführt
wird, falls der Überprüfungsprozeß erfolgreich
ist.
2. Ein Verfahren gemäß Anspruch 1, bei dem der
Überprüfungsprozeß ferner folgende Schritte aufweist:
a) Wiedergewinnen der ursprünglichen Sektorposition
für das Softwareprogramm aus einer ersten Datei
(1308);
b) Überprüfen, daß die erste Datei an einer
ursprünglichen Festplattenposition positioniert ist
(1310); und
c) Bestimmen, ob das Softwareprogramm mehr als eine
voreingestellte Anzahl von Malen ausgeführt worden
ist (1310).
3. Ein Verfahren gemäß Anspruch 1, bei dem der
Überprüfungsprozeß ferner folgende Schritte aufweist:
a) Wiedergewinnen des Namens einer zweiten Datei aus
der ersten Datei (1308);
b) Wiedergewinnen der ursprünglichen Sektorposition
für das Softwareprogramm aus der zweiten Datei
(1308);
c) Überprüfen, daß die zweite Datei an einer
ursprünglichen Festplattenposition positioniert ist
(1308); und
d) Verwenden von Zählwertinformationen in entweder
der ersten oder der zweiten Datei, um zu
bestimmen, ob das Softwareprogramm mehr als eine
voreingestellte Anzahl von Malen ausgeführt worden
ist (1310).
4. Ein Verfahren gemäß einem der vorhergehenden Ansprüche,
das ferner folgende Schritte aufweist:
a) Wiedergewinnen eines Entschlüsselungsschlüssels
aus einer Datei (1308); und
b) Verwenden des Entschlüsselungsschlüssels, um das
Softwareprogramm zu entschlüsseln, bevor das
Softwareprogramm ausgeführt wird (1208).
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/976,176 US5327563A (en) | 1992-11-13 | 1992-11-13 | Method for locking software files to a specific storage device |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69326119D1 DE69326119D1 (de) | 1999-09-30 |
DE69326119T2 true DE69326119T2 (de) | 2000-01-20 |
Family
ID=25523818
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69331613T Expired - Fee Related DE69331613T2 (de) | 1992-11-13 | 1993-11-15 | Dateienverschlüsselung |
DE69326119T Expired - Fee Related DE69326119T2 (de) | 1992-11-13 | 1993-11-15 | Überprüfung von Softwareprogrammen |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69331613T Expired - Fee Related DE69331613T2 (de) | 1992-11-13 | 1993-11-15 | Dateienverschlüsselung |
Country Status (3)
Country | Link |
---|---|
US (2) | US5327563A (de) |
EP (2) | EP0598587B1 (de) |
DE (2) | DE69331613T2 (de) |
Families Citing this family (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5422762A (en) * | 1992-09-30 | 1995-06-06 | Hewlett-Packard Company | Method and apparatus for optimizing disk performance by locating a file directory on a middle track and distributing the file allocation tables close to clusters referenced in the tables |
US5267314A (en) * | 1992-11-17 | 1993-11-30 | Leon Stambler | Secure transaction system and method utilized therein |
US5563946A (en) * | 1994-04-25 | 1996-10-08 | International Business Machines Corporation | Method and apparatus for enabling trial period use of software products: method and apparatus for passing encrypted files between data processing systems |
US5757907A (en) * | 1994-04-25 | 1998-05-26 | International Business Machines Corporation | Method and apparatus for enabling trial period use of software products: method and apparatus for generating a machine-dependent identification |
US5689560A (en) * | 1994-04-25 | 1997-11-18 | International Business Machines Corporation | Method and apparatus for enabling trial period use of software products: method and apparatus for allowing a try-and-buy user interaction |
CA2143874C (en) * | 1994-04-25 | 2000-06-20 | Thomas Edward Cooper | Method and apparatus for enabling trial period use of software products: method and apparatus for utilizing a decryption stub |
US5598470A (en) * | 1994-04-25 | 1997-01-28 | International Business Machines Corporation | Method and apparatus for enabling trial period use of software products: Method and apparatus for utilizing a decryption block |
US5701463A (en) * | 1994-09-09 | 1997-12-23 | Cheyenne Advanced Technology Limited | Method of replacing the identity of a file with another as part of a file open request in a computer system |
US5615061A (en) * | 1994-09-29 | 1997-03-25 | Singh; Jitendra K. | Method of preventng software piracy by uniquely identifying the specific magnetic storage device the software is stored on |
US5570310A (en) * | 1994-12-05 | 1996-10-29 | Motorola Inc. | Method and data processor for finding a logarithm of a number |
JP3366143B2 (ja) * | 1995-01-10 | 2003-01-14 | 富士通株式会社 | ソフトウェア流通システムにおける識別子管理装置および方法ならびにソフトウェア流通管理装置および方法 |
US5742829A (en) * | 1995-03-10 | 1998-04-21 | Microsoft Corporation | Automatic software installation on heterogeneous networked client computer systems |
DE19510436C2 (de) * | 1995-03-22 | 1997-04-10 | Spoettl Stefan Dipl Inform | Verfahren zum Kopierschutz von Software |
US5715455A (en) * | 1995-05-18 | 1998-02-03 | International Business Machines Corporation | Apparatus and method for storing file allocation table efficiently in memory |
US5903647A (en) * | 1995-06-07 | 1999-05-11 | Digital River, Inc. | Self-launching encrypted digital information distribution system |
US5870543A (en) * | 1995-06-07 | 1999-02-09 | Digital River, Inc. | System for preventing unauthorized copying of active software |
US5883955A (en) * | 1995-06-07 | 1999-03-16 | Digital River, Inc. | On-line try before you buy software distribution system |
JPH08335182A (ja) * | 1995-06-07 | 1996-12-17 | Fujitsu Ltd | ファイル保護システム及びそのファイル保護システムを用いたソフトウエア利用システム及びそのソフトウエア利用システムに用いられる記録媒体 |
US5887060A (en) * | 1995-06-07 | 1999-03-23 | Digital River, Inc. | Central database system for automatic software program sales |
US5883954A (en) * | 1995-06-07 | 1999-03-16 | Digital River, Inc. | Self-launching encrypted try before you buy software distribution system |
CA2223409A1 (en) * | 1995-06-07 | 1996-12-19 | Digital River, Inc. | Try before you buy software distribution and marketing system |
US5671420A (en) * | 1995-06-28 | 1997-09-23 | Canon Information Systems, Inc. | Distribution diskette utility |
KR100269104B1 (ko) * | 1995-08-10 | 2000-10-16 | 윤종용 | 보안장치를구비한개인용컴퓨터,그의보안방법및그보안장치의설치및제거방법 |
US5917910A (en) * | 1995-10-16 | 1999-06-29 | Sony Corporation | Encrypting method and apparatus, recording method, decrypting method and apparatus, and recording medium |
JPH09134310A (ja) * | 1995-11-07 | 1997-05-20 | Fujitsu Ltd | データの復号アルゴリズムを記憶する記憶媒体および方法 |
US5809230A (en) * | 1996-01-16 | 1998-09-15 | Mclellan Software International, Llc | System and method for controlling access to personal computer system resources |
US5706426A (en) * | 1996-02-07 | 1998-01-06 | United Microelectronics Corporation | Software protection method and apparatus |
US5870468A (en) * | 1996-03-01 | 1999-02-09 | International Business Machines Corporation | Enhanced data privacy for portable computers |
US6009543A (en) * | 1996-03-01 | 1999-12-28 | Massachusetts Institute Of Technology | Secure software system and related techniques |
US6199163B1 (en) * | 1996-03-26 | 2001-03-06 | Nec Corporation | Hard disk password lock |
US6052780A (en) * | 1996-09-12 | 2000-04-18 | Open Security Solutions, Llc | Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information |
US6247131B1 (en) * | 1997-03-14 | 2001-06-12 | Fujitsu Limited | Information management method and recording medium |
US5903896A (en) * | 1997-07-15 | 1999-05-11 | Microsoft Corporation | Method for installing a file on demand using a preview |
ES2155230T3 (es) | 1997-08-28 | 2001-05-01 | Sony Dadc Austria Ag | Sistema para gestionar el copiado de un disco optico. |
US6044469A (en) * | 1997-08-29 | 2000-03-28 | Preview Software | Software publisher or distributor configurable software security mechanism |
US6055503A (en) * | 1997-08-29 | 2000-04-25 | Preview Systems | Software program self-modification |
US6009525A (en) * | 1997-08-29 | 1999-12-28 | Preview Systems, Inc. | Multi-tier electronic software distribution |
US6098054A (en) * | 1997-11-13 | 2000-08-01 | Hewlett-Packard Company | Method of securing software configuration parameters with digital signatures |
US6480959B1 (en) * | 1997-12-05 | 2002-11-12 | Jamama, Llc | Software system and associated methods for controlling the use of computer programs |
US6643775B1 (en) | 1997-12-05 | 2003-11-04 | Jamama, Llc | Use of code obfuscation to inhibit generation of non-use-restricted versions of copy protected software applications |
US6134659A (en) * | 1998-01-07 | 2000-10-17 | Sprong; Katherine A. | Controlled usage software |
US6272593B1 (en) | 1998-04-10 | 2001-08-07 | Microsoft Corporation | Dynamic network cache directories |
WO1999059058A1 (fr) * | 1998-05-14 | 1999-11-18 | Sega Enterprises, Ltd. | Processeur d'informations, procede de traitement d'informations, support d'enregistrement d'informations et systeme de traitement d'informations |
US6199107B1 (en) | 1998-07-22 | 2001-03-06 | Microsoft Corporation | Partial file caching and read range resume system and method |
WO2000029928A1 (en) * | 1998-11-13 | 2000-05-25 | Iomega Corporation | System for keying protected electronic data to particular media using a compound key to prevent unauthorized copying |
US6233606B1 (en) | 1998-12-01 | 2001-05-15 | Microsoft Corporation | Automatic cache synchronization |
US7617124B1 (en) | 1998-12-04 | 2009-11-10 | Digital River, Inc. | Apparatus and method for secure downloading of files |
US20030195974A1 (en) | 1998-12-04 | 2003-10-16 | Ronning Joel A. | Apparatus and method for scheduling of search for updates or downloads of a file |
US7058597B1 (en) | 1998-12-04 | 2006-06-06 | Digital River, Inc. | Apparatus and method for adaptive fraud screening for electronic commerce transactions |
JP4132334B2 (ja) * | 1998-12-28 | 2008-08-13 | 株式会社日立製作所 | デジタルコンテンツ不正使用防止方法及びその実施システム並びにその処理プログラムを記録した媒体 |
US6615349B1 (en) | 1999-02-23 | 2003-09-02 | Parsec Sight/Sound, Inc. | System and method for manipulating a computer file and/or program |
US6591367B1 (en) | 1999-03-31 | 2003-07-08 | Atabok Japan, Inc. | Method and apparatus for preventing unauthorized copying and distributing of electronic messages transmitted over a network |
US6658567B1 (en) | 1999-06-25 | 2003-12-02 | Geomechanics International, Inc. | Method and logic for locking geological data and an analyzer program that analyzes the geological data |
US6553409B1 (en) | 1999-07-09 | 2003-04-22 | Microsoft Corporation | Background cache synchronization |
JP2001043139A (ja) * | 1999-07-29 | 2001-02-16 | Pioneer Electronic Corp | 信号処理装置及びそれに用いる情報記録媒体 |
WO2001015163A1 (fr) * | 1999-08-20 | 2001-03-01 | Sony Corporation | Dispositif d'enregistrement et de reproduction d'information |
US7216235B1 (en) * | 1999-10-19 | 2007-05-08 | Tivo Inc. | Drive/host locking system |
EP1141808A1 (de) * | 1999-10-29 | 2001-10-10 | Koninklijke Philips Electronics N.V. | Sicherung der datenintegrität über einen sicheren zähler |
US6654888B1 (en) | 1999-12-31 | 2003-11-25 | International Business Machines Corporation | Installing and controlling trial software |
US6304972B1 (en) | 2000-01-03 | 2001-10-16 | Massachusetts Institute Of Technology | Secure software system and related techniques |
AU2001261078A1 (en) * | 2000-04-26 | 2001-11-07 | Venice Technologies, Inc. | Methods and systems for securing computer software |
JP4033619B2 (ja) * | 2000-05-26 | 2008-01-16 | シャープ株式会社 | サーバ装置 |
AU9291001A (en) * | 2000-09-22 | 2002-04-02 | Edc Systems Inc | Systems and methods for preventing unauthorized use of digital content |
US7237123B2 (en) * | 2000-09-22 | 2007-06-26 | Ecd Systems, Inc. | Systems and methods for preventing unauthorized use of digital content |
US8087014B1 (en) * | 2000-10-26 | 2011-12-27 | Qualcomm Incorporated | Method and apparatus for configuration management for a computing device |
CA2446584A1 (en) | 2001-05-09 | 2002-11-14 | Ecd Systems, Inc. | Systems and methods for the prevention of unauthorized use and manipulation of digital content |
JP2003044155A (ja) * | 2001-07-30 | 2003-02-14 | Hitachi-Lg Data Storage Inc | ソフトウェアのインストール方法及びファームウェアのアップデート方法及びそれらに用いる記録再生装置及び記録媒体 |
US20030028765A1 (en) * | 2001-07-31 | 2003-02-06 | Cromer Daryl Carvis | Protecting information on a computer readable medium |
GB2386521A (en) * | 2002-03-14 | 2003-09-17 | Screendragon Ltd | A media playback system where data is decrypted subject to certain access conditions being met |
US6898555B2 (en) * | 2003-07-14 | 2005-05-24 | Aladdin Knowledge Systems Ltd. | Method for indicating the integrity of use-information of a computer program |
US7397812B2 (en) * | 2004-08-31 | 2008-07-08 | General Motors Corporation | System and method for wireless broadcast of multimedia files to vehicles |
US7529724B1 (en) * | 2004-09-21 | 2009-05-05 | Emc Corporation | Servicing work requests between units of a storage device |
US8122201B1 (en) | 2004-09-21 | 2012-02-21 | Emc Corporation | Backup work request processing by accessing a work request of a data record stored in global memory |
US20060161968A1 (en) * | 2004-12-21 | 2006-07-20 | Nintendo Co., Ltd. | Method and apparatus for secure delivery and evaluation of prototype software over a network |
US8423788B2 (en) * | 2005-02-07 | 2013-04-16 | Sandisk Technologies Inc. | Secure memory card with life cycle phases |
US8321686B2 (en) * | 2005-02-07 | 2012-11-27 | Sandisk Technologies Inc. | Secure memory card with life cycle phases |
US8108691B2 (en) * | 2005-02-07 | 2012-01-31 | Sandisk Technologies Inc. | Methods used in a secure memory card with life cycle phases |
WO2006103679A2 (en) | 2005-04-01 | 2006-10-05 | Ged-I Ltd. | A method for data storage protection and encryption |
US7748031B2 (en) | 2005-07-08 | 2010-06-29 | Sandisk Corporation | Mass storage device with automated credentials loading |
US7895651B2 (en) | 2005-07-29 | 2011-02-22 | Bit 9, Inc. | Content tracking in a network security system |
US8984636B2 (en) | 2005-07-29 | 2015-03-17 | Bit9, Inc. | Content extractor and analysis system |
US8272058B2 (en) | 2005-07-29 | 2012-09-18 | Bit 9, Inc. | Centralized timed analysis in a network security system |
US7934049B2 (en) | 2005-09-14 | 2011-04-26 | Sandisk Corporation | Methods used in a secure yet flexible system architecture for secure devices with flash mass storage memory |
US7536540B2 (en) * | 2005-09-14 | 2009-05-19 | Sandisk Corporation | Method of hardware driver integrity check of memory card controller firmware |
US20080072058A1 (en) * | 2006-08-24 | 2008-03-20 | Yoram Cedar | Methods in a reader for one time password generating device |
US20080052524A1 (en) * | 2006-08-24 | 2008-02-28 | Yoram Cedar | Reader for one time password generating device |
US20100250400A1 (en) * | 2006-11-10 | 2010-09-30 | Media Patents, S.L. | Apparatus and methods for the sale of software products |
US20080114695A1 (en) * | 2006-11-10 | 2008-05-15 | Semantic Components S.L. | Process for implementing a method for the on-line sale of software product use licenses through a data network, and software component which allows carrying out said process |
US20080162992A1 (en) * | 2006-12-27 | 2008-07-03 | Lonowski Wayne J | Method and apparatus for intelligently re-sequencing tests based on production test results |
US8423794B2 (en) * | 2006-12-28 | 2013-04-16 | Sandisk Technologies Inc. | Method and apparatus for upgrading a memory card that has security mechanisms for preventing copying of secure content and applications |
WO2008122308A1 (en) * | 2007-04-04 | 2008-10-16 | Media Patents S.L. | Process for the on-line distribution, through a data network, of digital files protected by intellectual property rights and computer readable medium containing a program for carrying out said process |
JP4954031B2 (ja) * | 2007-11-16 | 2012-06-13 | キヤノン株式会社 | 画像処理装置及び再インストール方法 |
US20110066843A1 (en) * | 2009-09-16 | 2011-03-17 | Brent Newman | Mobile media play system and method |
CA2693938A1 (en) * | 2010-02-22 | 2011-08-22 | Ibm Canada Limited - Ibm Canada Limitee | Software object lock management using observations |
US9531547B2 (en) * | 2015-04-06 | 2016-12-27 | Vmware, Inc. | Host-based digital signature verification for guest components |
GB2544328B (en) * | 2015-11-13 | 2019-09-18 | Towers Watson Ltd | Software protection |
GB2574316B (en) * | 2015-11-13 | 2020-06-17 | Towers Watson Ltd | Controlling access to data |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4658093A (en) * | 1983-07-11 | 1987-04-14 | Hellman Martin E | Software distribution system |
US4584641A (en) * | 1983-08-29 | 1986-04-22 | Paul Guglielmino | Copyprotecting system for software protection |
US4740890A (en) * | 1983-12-22 | 1988-04-26 | Software Concepts, Inc. | Software protection system with trial period usage code and unlimited use unlocking code both recorded on program storage media |
US4577289A (en) * | 1983-12-30 | 1986-03-18 | International Business Machines Corporation | Hardware key-on-disk system for copy-protecting magnetic storage media |
US4644493A (en) * | 1984-09-14 | 1987-02-17 | International Business Machines Corporation | Implementing a shared higher level of privilege on personal computers for copy protection of software |
US4888798A (en) * | 1985-04-19 | 1989-12-19 | Oms, Inc. | Modular software security |
US4757533A (en) * | 1985-09-11 | 1988-07-12 | Computer Security Corporation | Security system for microcomputers |
US5014234A (en) * | 1986-08-25 | 1991-05-07 | Ncr Corporation | System with software usage timer and counter for allowing limited use but preventing continued unauthorized use of protected software |
US4796220A (en) * | 1986-12-15 | 1989-01-03 | Pride Software Development Corp. | Method of controlling the copying of software |
JPH01129328A (ja) * | 1987-11-13 | 1989-05-22 | Toshiba Corp | コピー防止装置 |
FR2623640B1 (fr) * | 1987-11-19 | 1990-03-16 | Dassault Electronique | Dispositif micro-informatique contre le deroulement de programmes frauduleux |
US5113518A (en) * | 1988-06-03 | 1992-05-12 | Durst Jr Robert T | Method and system for preventing unauthorized use of software |
US5155827A (en) * | 1989-03-17 | 1992-10-13 | Ghering Boyd W | Method for inhibiting an executable program in a disk operating system by replacing the program with an unexecutable program |
US5081675A (en) * | 1989-11-13 | 1992-01-14 | Kitti Kittirutsunetorn | System for protection of software in memory against unauthorized use |
GB2238408A (en) * | 1989-11-27 | 1991-05-29 | Lanstrase Limited | Copy protection in storage system |
US5027396A (en) * | 1990-05-07 | 1991-06-25 | Xerox Corporation | Execution protection for floppy disks |
EP0459046A1 (de) * | 1990-05-31 | 1991-12-04 | International Business Machines Corporation | Rechnerprogrammschutz |
US5058162A (en) * | 1990-08-09 | 1991-10-15 | Hewlett-Packard Company | Method of distributing computer data files |
US5212729A (en) * | 1992-01-22 | 1993-05-18 | Schafer Randy J | Computer data security device and method |
US5267311A (en) * | 1992-12-08 | 1993-11-30 | Bakhoum Ezzat G | Intelligent diskette for software protection |
-
1992
- 1992-11-13 US US07/976,176 patent/US5327563A/en not_active Expired - Lifetime
-
1993
- 1993-11-15 EP EP93309124A patent/EP0598587B1/de not_active Expired - Lifetime
- 1993-11-15 DE DE69331613T patent/DE69331613T2/de not_active Expired - Fee Related
- 1993-11-15 DE DE69326119T patent/DE69326119T2/de not_active Expired - Fee Related
- 1993-11-15 EP EP98115397A patent/EP0881561B1/de not_active Expired - Lifetime
-
1995
- 1995-10-24 US US08/547,969 patent/US5628015A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US5327563A (en) | 1994-07-05 |
EP0881561A2 (de) | 1998-12-02 |
EP0881561A3 (de) | 1999-02-24 |
DE69331613T2 (de) | 2002-10-17 |
DE69331613D1 (de) | 2002-03-28 |
DE69326119D1 (de) | 1999-09-30 |
EP0598587B1 (de) | 1999-08-25 |
US5628015A (en) | 1997-05-06 |
EP0598587A1 (de) | 1994-05-25 |
EP0881561B1 (de) | 2002-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69326119T2 (de) | Überprüfung von Softwareprogrammen | |
DE3587658T2 (de) | Ausführung von einer gemeinsam benutzten, höheren Privilegstufe auf persönlichen Computern für Softwarekopiersicherung. | |
DE69619186T2 (de) | Gerät für die ausführung eines verschlüsselten progamms | |
DE69528408T2 (de) | Verfahren und Vorrichtung, die es ermöglicht, Software zu erproben und Software-Objekte zu liefern | |
DE69531077T2 (de) | Verfahren und Vorrichtung mit Benutzereinwirkung der Art Erproben-und-Kaufen, die es ermöglicht, Software zu erproben | |
DE69412196T2 (de) | Verfahren zur Verwendung von Mediuminhomogenitäten zur Minimierung unbefugter Vervielfältigung digitaler Daten | |
DE69417268T4 (de) | Verfahren zur elektronischen lizenzverteilung | |
DE68926606T2 (de) | Empfangs- und Annahmeprüfungsverfahren für elektronisch abgegebene Datenobjekte | |
DE69531082T2 (de) | Verfahren und Vorrichtung mit einem Verschlüsselungskopfteil, die es ermöglicht, Software zu erproben | |
DE69927022T2 (de) | Verfahren zur steuerung der benutzung von softwarekomponenten | |
DE69701044T2 (de) | Verteilung und kontrollierte benutzung von softwareprodukten | |
DE69433077T2 (de) | Software-Verteilungsschutzverfahren | |
DE60021465T2 (de) | Sicherheitsverwaltungssystem, Datenverteilungsvorrichtung und tragbares Terminalgerät | |
DE69407812T2 (de) | Überprüfung der gültigkeit | |
DE69532936T2 (de) | Vorrichtung und Verfahren zum Zugriff auf Software | |
DE60224060T2 (de) | Verwendung von daten gespeichert in einem lese-zerstörenden speicher | |
DE69130175T2 (de) | Sicherheitssystem zur aktivierung von personalcomputerprogrammen an entfernten orten | |
DE3689569T2 (de) | Verfahren zur Systemdateiensicherung und Datenverarbeitungseinheit zu dessen Durchführung. | |
DE69636050T2 (de) | Verfahren und system für die verwaltung eines datenobjektes zur verwendung von vorgegebenen zuständen | |
US7571176B2 (en) | Selective file erasure using metadata modifications | |
DE60314782T2 (de) | Vorrichtung zum Generieren eines verschlüsselten Programms | |
DE69927926T2 (de) | Verfahren und System zum Verhindern illegaler Verwendung von digitalen Inhalten, Verarbeitungsprogramm dafür und Aufzeichnungsmedium für das Programm | |
DE60128909T2 (de) | System und eingebetteter lizenzsteuerungsmechanismus für die erzeugung und verteilung von dateien mit digitalem inhalt sowie erzwingung von lizenziertem gebrauch von dateien mit digitalem inhalt | |
DE3615815A1 (de) | Verfahren und vorrichtung zum verifizieren der identitaet eines dynamischen speichers | |
DE19717900C2 (de) | Verfahren und Applet-Applikationsmaschine zur Verarbeitung eines Computer-Applets sowie ein Computersoftware-Applet |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD CO. (N.D.GES.D.STAATES DELAWARE), |
|
8327 | Change in the person/name/address of the patent owner |
Owner name: HEWLETT-PACKARD DEVELOPMENT CO., L.P., HOUSTON, TE |
|
8339 | Ceased/non-payment of the annual fee |