DE60003253T2 - Vorrichtung und Verfahren zur Vorbeugung von Computerprogrammänderungen und entsprechender Computerprogrammdatenträger. - Google Patents

Vorrichtung und Verfahren zur Vorbeugung von Computerprogrammänderungen und entsprechender Computerprogrammdatenträger.

Info

Publication number
DE60003253T2
DE60003253T2 DE60003253T DE60003253T DE60003253T2 DE 60003253 T2 DE60003253 T2 DE 60003253T2 DE 60003253 T DE60003253 T DE 60003253T DE 60003253 T DE60003253 T DE 60003253T DE 60003253 T2 DE60003253 T2 DE 60003253T2
Authority
DE
Germany
Prior art keywords
test program
program
sections
change
test
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 - Lifetime
Application number
DE60003253T
Other languages
English (en)
Other versions
DE60003253D1 (de
Inventor
Hirotaka Ishikawa
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Konami Digital Entertainment Co Ltd
Original Assignee
Konami Corp
Konami Computer Entertainment Co Ltd
Konami Computer Entertainment Tokyo Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Konami Corp, Konami Computer Entertainment Co Ltd, Konami Computer Entertainment Tokyo Inc filed Critical Konami Corp
Application granted granted Critical
Publication of DE60003253D1 publication Critical patent/DE60003253D1/de
Publication of DE60003253T2 publication Critical patent/DE60003253T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Virology (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Detection And Correction Of Errors (AREA)

Description

  • Diese Erfindung betrifft eine Technik zur Verhinderung der Änderung oder Modifizierung eines Programms.
  • Bezüglich Programmen, die auf einem allgemeinen Computersystem auszuführen sind, gibt es ein bedeutendes Problem dahingehend, dass ein böswilliger Nutzer illegal die Inhalte des Programms verändert und dieses nutzt. Insbesondere ist ein auf einem Speichermedium, wie z. B. auf einer CD-ROM für den Verkauf aufgezeichnetes Programm leicht veränderbar. Um eine derartige illegale Veränderung eines Programms zu verhindern, gibt es ein bekanntes Verfahren unter Verwendung eines Prüfprogramms, um zu prüfen ob das Programm verändert wurde oder nicht. Dieses wird beispielsweise wie folgt erzielt. Zuerst wird ein Duplikat eines Abschnittes eines zu schützenden echten Programms hergestellt, und wird mit dem entsprechenden Abschnitt des zu prüfenden Programms verglichen oder kollationiert. Wenn sie identisch sind, wird das Programm als echt beurteilt und ausgeführt. Wenn sie nicht identisch sind, wird das Programm als ein verändertes beurteilt, und die Ausführung des Programms wird verhindert. Der zu vergleichende oder kollationierende Abschnitt kann ein Teil des Programms selbst sein, oder kann aus bestimmten Codes bestehen, die für den Zweck der Überprüfung hergestellt wurden. Ferner kann der zu vergleichende Abschnitt verschlüsselt oder komprimiert sein, falls dieses erforderlich ist.
  • Beispiele einer Technik zur Verhinderung eines illegalen Veränderung eines Programms sind in der Japanischen geprüften Patentveröffentlichung Nr. 62-3460, in der Japanischen Patentoffenlegungsschrift Nr. 10-187435, und in den Japanischen Patenten Nr. 2621799 und 2738375 offenbart.
  • In letzter Zeit verändern und deaktivieren jedoch einige böswillige Nutzer selbst ein derartiges Prüfprogramm. In diesem Falle kann das vorstehend beschriebene Prüfverfahren eine illegale Veränderung des Programms und Ausführung des illegal veränderten Programms nicht verhindern.
  • Es ist eine Aufgabe der vorliegenden Erfindung, eine Technik zur Verhinderung der illegalen Veränderung eines Programms bereitzustellen, welche zuverlässig die Ausführung des veränderten Programms selbst dann verhindern kann, wenn das Prüfprogramm selbst verändert wird.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird ein Computersystem bereitgestellt, das umfasst: Eine Leseeinrichtung, die eine Vielzahl von Prüfprogrammabschnitten von einem Speichermedium liest, das das Computerprogramm einschließlich der Vielzahl von Prüfprogrammabschnitten enthält; und Prüfprogramm- Ausführeinrichtungen, die jeden von den Prüfprogrammabschnitten ausführen, wobei jede von den Prüfprogrammeinrichtungen eine Änderung wenigstens eines von den anderen Prüfprogrammabschnitten erfasst.
  • In dem derartig konfigurierten Computerprogramm hat jede von den Prüfprogramm- Ausführeinrichtungen eine Funktion, die Veränderung wenigstens eines anderen Prüfprogrammabschnittes zu erfassen. Daher kann, wenn einer oder mehrere von den Prüfprogrammabschnitten verändert wird, dieses durch einen anderen Prüfprogrammabschnitt erfasst werden. Dieses kann die Verhinderung der Veränderung eines Programms und der Nutzung des veränderten Programms verbessern.
  • Das Computersystem kann ferner eine Speichereinrichtung zum Speichern wenigstens eines im voraus hergestellten Prüfprogramms umfassen. Der in der Speichereinrichtung gespeicherte Prüfprogrammabschnitt kann eine Veränderung wenigstens eines von der Vielzahl von Prüfprogrammabschnitten erfassen und wenigstens einer von der Vielzahl von Prüfprogrammabschnitten kann eine Veränderung des in der Speichereinrichtung gespeicherten Prüfprogrammabschnittes erfassen. Dadurch die Erfassung einer mehrfachen Veränderung durch den Prüfprogrammabschnitt nicht nur für die auf dem Speichermedium aufgezeichneten Prüfprogrammabschnitte sondern auch für die im voraus hergestellten Prüfprogrammabschnitte in dem Speichermedium des Computersystems erreicht werden. Daher kann die Veränderung eines Programms und die Nutzung des veränderten Programms effektiv vermieden werden.
  • Das Computersystem kann ferner eine Steuereinrichtung für die Freigabe der Ausführung des Computerprogramms enthalten, wenn die Prüfprogramm-Ausführeinrichtung keine Änderung eines der Prüfprogrammabschnitte nach Ausführung aller Prüfprogrammabschnitte erfasst. Dadurch kann einer von den Prüfprogrammabschnitten eine Veränderung erfassen, sofern nicht alle Prüfprogrammabschnitte erfolgreich verändert wurden. Daher kann die Veränderung eines Programms und die Nutzung des veränderten Programms effektiv verhindert werden.
  • Die Vielzahl der Prüfprogrammabschnitte kann so verknüpft werden, dass sie eine Schleifenstruktur in der Weise bilden, dass jeder von der Vielzahl von Prüfprogrammabschnitten die Veränderung eines anderen von den Prüfprogrammabschnitten erfasst. Alternativ kann die Vielzahl Prüfprogrammabschnitte so verknüpft werden, dass sie eine Baumstruktur in der Weise bilden, dass jeder von der Vielzahl von Programmabschnitten eine Änderung von Prüfprogrammabschnitten erfasst, die zu jedem der Vielzahl von Prüfprogrammabschnitten gehören. Durch eine komplizierte Ausführung der Verknüpfungsstruktur der mehreren Prüfprogramme wird die Veränderung eines Programms und die Nutzung des veränderten Programms praktisch unmöglich.
  • Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird ein Verfahren zum Ausführen eines Computerprogramms bereitgestellt, das die Schritte umfasst: Einen Leseschritt zum Lesen einer Vielzahl von Prüfprogrammabschnitten von einem Speichermedium, das das Computerprogramm einschließlich der Vielzahl von Prüfprogrammabschnitten enthält; und einen Prüfprogramm-Ausführschritt zum Ausführen aller Prüfprogrammabschnitte, wobei der Prüfprogramm-Ausführschritt eine Änderung wenigstens eines von den anderen Prüfprogrammabschnitten erfasst.
  • Gemäß dem vorstehenden Verfahren hat der Prüfprogramm-Ausführschritt eine Funktion, die Veränderung wenigstens eines anderen Prüfprogrammabschnittes zu erfassen. Daher kann, wenn einer oder mehrere von den Prüfprogrammabschnitten verändert werden, dieses von einem anderen Prüfprogrammabschnitt erfasst werden. Dieses kann die Verhinderung der Veränderung des Programms und der Nutzung des veränderten Programms verbessern.
  • Das Verfahren kann ferner einen Leseschritt zum Lesen des Prüfprogrammabschnittes aus einem Speichermedium, welches wenigstens eine im voraus hergestelltes Prüfprogramm enthält, umfassen. Der Prüfprogramm-Ausführschritt kann den in dem Speichermedium gespeicherten Prüfprogrammabschnitt ausführen, um eine Änderung von wenigstens einem von der Vielzahl von Prüfprogrammabschnitten zu erfassen und kann wenigstens einen von der Vielzahl von Prüfprogrammabschnitten ausführen, um die Änderung des in der Speichereinrichtung gespeicherten Prüfprogrammabschnittes zu erfassen. Dadurch kann die Erfassung einer mehrfachen Änderung durch mehrere Prüfprogrammabschnitte nicht nur für das auf dem Speichermedium aufgezeichnete Prüfprogramm sondern auch für das im voraus hergestellte Prüfprogramm in der Speichereinrichtung des Computersystems erreicht werden. Daher kann die Veränderung des Programms und die Nutzung des veränderten Programms effektiver vermieden werden.
  • Das Verfahren kann ferner einen Steuerschritt für die Freigabe einer Ausführung des Computerprogramms umfassen, wenn der Prüfprogramm-Ausführschritt keine Veränderung von irgendeinem von den Prüfprogrammabschnitten nach der Ausführung aller Prüfprogrammabschnitte erfasst. Dadurch kann einer von den Prüfprogrammabschnitten eine Veränderung detektieren, sofern nicht alle Prüfprogrammabschnitte erfolgreich verändert wurden. Daher kann die Veränderung des Programms und die Nutzung des veränderten Programms effektiv vermieden werden.
  • Gemäß noch einem weiteren Aspekt der vorliegenden Erfindung ist ein von einem Computer lesbares Speichermedium vorgesehen, welches umfasst: ein Computerprogramm, das speziell für die Ausführung der Schritte des unabhängigen Verfahrensanspruches angepasst ist; und eine Vielzahl von Prüfprogrammabschnitten, welche es dem Computer ermöglichen, als eine Prüfprogramm-Ausführeinrichtung zum Erfassen der Veränderung von wenigstens einem von anderen Prüfprogrammabschnitten zu arbeiten.
  • Somit hat jede von den Prüfprogramm-Ausführeinrichtungen eine Funktion, die Veränderung von wenigstens einem anderen Prüfprogrammabschnitt zu erfassen. Daher kann, wenn einer oder mehrere von den Prüfprogrammabschnitten verändert werden, dieses von einem anderen Prüfprogrammabschnitt erfasst werden. Diese kann die Verhinderung der Veränderung des Programms und der Verwendung des veränderten Programms verbessern.
  • Das Speichermedium kann ferner ein Programm umfassen, welches es dem Computer ermöglicht, als eine Steuereinrichtung für die Freigabe der Ausführung des Computerprogramms zu wirken, wenn die Prüfprogramm-Ausführeinrichtung keine Veränderung von irgendeinem der Prüfprogrammabschnitte nach der Ausführung aller Prüfprogrammabschnitte erfasst. Dadurch kann die Erfassung einer mehrfachen Veränderung durch mehrere Prüfprogrammabschnitte nicht nur für die Prüfprogrammabschnitte, die auf dem Speichermedium aufgezeichnet sind, sondern auch für den im voraus in der Speichereinrichtung des Computersystems hergestellten Prüfprogrammabschnitt erreicht werden. Daher kann die Veränderung des Programms und die Nutzung des veränderten Programms effektiver vermieden werden.
  • Die Art, der Nutzen und weitere Merkmale dieser Erfindung werden deutlicher aus der nachstehenden detaillierten Beschreibung unter Bezugnahme auf die bevorzugten Ausführungsformen der Erfindung ersichtlich, wenn diese in Verbindung mit den nachstehend kurz beschriebenen Zeichnungen gelesen wird.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • Fig. 1 ist eine Blockdarstellung, welche die Konfiguration eines Computersystems darstellt, auf welches die vorliegende Erfindung angewendet wird;
  • Fig. 2 ist eine schematische Darstellung, welche ein Beispiel der Mehrfachüberwachungsstruktur gemäß der vorliegenden Erfindung darstellt;
  • Fig. 3 ist eine schematische Darstellung, welche ein weiteres Beispiel der Mehrfachüberwachungsstruktur gemäß der vorliegenden Erfindung darstellt;
  • Fig. 4 ist eine schematische Darstellung, welche ein weiteres Beispiel der Mehrfachüberwachungsstruktur gemäß der vorliegenden Erfindung darstellt; und
  • Fig. 5 ist eine schematische Darstellung, welche noch ein weiteres Beispiel der Mehrfachüberwachungsstruktur gemäß der vorliegenden Erfindung darstellt.
  • Die bevorzugte Ausführung der vorliegenden Erfindung wird nun unter Bezugnahme auf die beigefügten Zeichnungen beschrieben.
  • Fig. 1 stellt eine schematische Konfiguration des Computersystems gemäß einer Ausführungsform der vorliegenden Erfindung dar. Gemäß Darstellung umfasst das Computersystem eine CPU 4, einen Rasterbildspeicher 10, eine Lautsprecheinheit 14, einem RAM 16, einen ROM 18, eine Eingabevorrichtung 20 und ein CD-ROM-Laufwerk 22. Diese Komponenten sind alle mit einem Bus 2 verbunden. Die CD-ROM 24, auf welcher das Programm aufgezeichnet ist, wird in das CD-ROM-Laufwerk eingeführt. Zum Zeitpunkt der Ausführung, wird das auf der CD-ROM 24 aufgezeichnete Programm in den RAM 16 geschrieben und wird dann unter der Steuerung der CPU 4 ausgeführt. Der ROM 18 speichert für den Betrieb des Systems notwendige Programme im voraus. Falls erforderlich, speichert der ROM 18 auch ein Modul (später im Detail beschrieben) für die Prüfung, ob das auf dem CD-ROM 24 aufgezeichnete Programm verändert wurde. Die Eingabevorrichtung 20 umfasst im allgemeinen eine Tastatur, eine Maus, usw. und wird von einem Benutzer zur Eingabe notwendiger Information und/oder Befehle verwendet. Wenn auf der CD-ROM 24 aufgezeichnete Simulationssoftware oder Spielsoftware ausgeführt wird, kann ein Joystick, oder eine Spiel-Steuervorrichtung als Eingabevorrichtung 20 verwendet werden. Der Rasterbildspeicher 10 ist mit der Anzeigevorrichtung 8 verbunden. Der Rasterbildspeicher 10 speichert kurzzeitig auf der Anzeigeeinrichtung 8 darzustellende Bilddaten. Die in dem Rasterbildspeicher 10 gespeicherten Bilddaten werden auf der Anzeigeeinrichtung 8 unter der Steuerung durch die CPU 4 angezeigt. Die Lautsprechereinheit 14 steuert die Tonausgabe unter der Steuerung durch die CPU 4.
  • Anschließend erfolgt eine Beschreibung des Mehrfachprogramm- Überwachungsverfahrens gemäß der vorliegenden Erfindung unter Bezugnahme auf Fig. 2. In der vorliegenden Erfindung werden eine Vielzahl von Prüfprogrammen zum Überwachen und Prüfen einer illegalen Veränderung eines Programms erzeugt, und jedes Prüfprogramm überwacht eines oder mehrere von den anderen Prüfprogrammen.
  • Fig. 2 stellt den einfachsten Fall dar, in welchem sich zwei Überwachungsmodule gegenseitig überwachen. Die Überwachungsmodule A und B enthalten Hauptprogramme A und B, welche jeweils Abschnitte der zu schützenden Programme sind. Beispielsweise können die Hauptprogramme A und B eine Beschreibung eines wichtigen Abschnittes des zu schützenden Programms sein. Die Überwachungsmodule A und B enthalten Prüfprogramme A bzw. B, um eine wechselseitige Überwachung auszuführen. Mit anderen Worten, das Prüfprogramm A in dem Überwachungsmodul A überwacht eine Veränderung des Hauptprogramms B und des Prüfprogramms B in dem Modul B, und das Prüfprogramm B in dem Überwachungsmodul B überwacht die Veränderung des Hauptprogramms A und des Prüfgramms A in dem Überwachungsmodul A. Das Überwachungsmodul B enthält Prüfinformation A, welche für die von dem Prüfprogramm A durchgeführte Prüfoperation erforderlich ist, und das Überwachungsmodul A enthält Prüfinformation B, welche für die von dem Prüfprogramm B durchgeführte Prüfoperation erforderlich ist. Es sei angemerkt, dass einige Programmarten keine Prüfinformation erfordern.
  • Nun werde angenommen, dass Bilder des Hauptprogramms als die Prüfinformation erzeugt werden, und dass das Prüfprogramm A und B die Veränderung durch Vergleichen oder Kollationieren der Hauptprogramme mit diesen Bildern prüfen. Die Prüfinformation A in dem Überwachungsmodul B ist nämlich das Bild des Hauptprogramms A, und die Prüfinformation B in dem Überwachungsmodul A ist das Bild des Hauptprogramms B. Zuerst vergleicht das Prüfprogramm A die Prüfinformation in dem Modul. B mit dem Hauptprogramm A, und stellt fest, dass eine Veränderung durchgeführt wurde, wenn diese zwei nicht identisch sind. Ebenso vergleicht das Prüfprogramm B die Prüfinformation B in dem Modul A mit dem Hauptprogramm B, und stellt fest, dass eine Veränderung vorgenommen wurde. Wenn diese zwei in diesem Stadium nicht identisch sind, ist es sehr wahrscheinlich, dass die Inhalte des auf dem Speichermedium, wie z. B. der CD- ROM, aufgezeichneten Programms verändert wurden. Dadurch kann durch dieses Überwachungsverfahren die Veränderung des Speichermediums selbst, wie z. B. der CD-ROM detektiert werden. Mit diesem Verfahren wird das Hauptprogramm nicht ausgeführt, sofern nicht beide von den Prüfprogrammen A und B erfolgreich von einem böswilligen Nutzer entschlüsselt und verändert worden sind.
  • Wenn keine Veränderung durch die vorstehend erwähnte Prüfung erfasst wurde, werden die Inhalte der Hauptprogramme A und B in den Speicher (d. h. in den in Fig. 1 dargestellten RAM 18) geschrieben, um diese Programme auszuführen. Dann vergleichen die Prüfprogramme A und B die Inhalte der in den Speicher geschriebenen Hauptprogramme A und B mit der Prüfinformation A und B. Wenn wenigstens eines von diesen nicht identisch ist, bedeutet dieses, dass die Inhalte des Speichers, d. h., dass das in den Speicher geschriebene Programm verändert wurde, nachdem das Programm in den Speicher geschrieben wurde. Daher wird die Ausführung der in den Speicher geschriebenen Hauptprogramme A und B verhindert. Somit wird die Ausführung des veränderten Programms verhindert. Zusätzlich kann durch die Ausführung der doppelten Prüfung für das Programm, so wie es in das Speichermedium geschrieben ist und nachdem es in den Speicher geschrieben wurde, eine Änderung, die in zwei unterschiedlichen Situationen möglich ist, erfasst werden, und dadurch eine zuverlässigere Änderungsverhinderung ermöglicht werden.
  • Anschließend werden Varianten der Mehrfachüberwachung durch mehrere Überwachungsmodule beschrieben. Die in Fig. 2 dargestellte wechselseitige Überwachung ist das einfachste Beispiel. In der vorliegenden Erfindung kann der Schutz des Prüfprogramms gegenüber illegaler Veränderung durch Kombination mehrerer Überwachungsmodule zum Aufbau einer komplizierteren Überwachungsstruktur verbessert werden.
  • Beispielsweise stellt Fig. 3 eine Ring-(oder Schleifen)-Überwachungsstruktur dar, in welcher vier Überwachungsmodule in einer Ring- oder Schleifenform miteinander verbunden sind, und Fig. 4 stellt eine baumartige Überwachungsstruktur dar, in welcher mehrere Überwachungsmodule kombiniert sind, um eine Baumstruktur auszubilden. Fig. 5 stellt eine komplexe Überwachungsstruktur mit mehreren Ringen oder Schleifen von Überwachungsmodulen dar. Durch Ausbilden der komplizierten Überwachungsstruktur durch eine Vielzahl von Überwachungsmodulen kann die Veränderung zuverlässig erfasst werden, sofern nicht alle Prüfprogramme in allen Überwachungsmodulen erfolgreich verändert wurden. Die Veränderung nur eines bestimmten von den Prüfprogrammen kann nämlich durch das Überwachungsmodul detektiert werden, welches das Überwachungsmodul überwacht, welches das so veränderte Prüfprogramm enthält. Daher kann irgendeines von den Überwachungsmodulen die Veränderung des Programms erfassen, sofern nicht ein böswilliger Nutzer, der versucht das Programm illegal zu verändern, erfolgreich das Vorhandensein aller Überwachungsmodule detektiert, analysiert und die Überwachungsstruktur (z. B. die spezifische Verknüpfungsart) erkennt und dann alte Prüfprogramme in allen Überwachungsmodulen zur gleichen Zeit deaktiviert. Indem man die Überwachungsstruktur komplizierter macht, indem sie mehrerer Überwachungsmodule enthält, wird es praktisch unmöglich alle Prüfprogramme erfolgreich zu verändern, und somit kann die illegale Veränderung der Programme und deren illegale Nutzung nahezu perfekt verhindert werden.
  • In dem in Fig. 2 dargestellten Beispiel enthält jedes Überwachungsmodul sowohl das zu schützende Hauptprogramm als auch das Prüfprogramm. Es ist jedoch nicht immer erforderlich, dass das Überwachungsmodul das Hauptprogramm enthält. Es kann nämlich ein Überwachungsmodul, das kein Hauptprogramm enthält, für den Zweck der Überwachung alleine erzeugt werden. Beispielsweise kann ein Programm so konfiguriert werden, dass es mehrere Überwachungsmodule enthält, wovon jedes nur Prüfprogramme in mehreren unterschiedlichen Abschnitten des Programms enthält, so dass, wenn eines von den Überwachungsmodulen eine Veränderung entdeckt, die Ausführung des Programms nach diesem Abschnitt blockiert wird.
  • Anschließend erfolgt die Beschreibung eines von dem Prüfprogramm ausgeführten konkreten Überwachungsverfahrens. In die vorliegende Erfindung kann jedes von den bereits bekannten verschiedenen Programmveränderungs-Prüfverfahren einbezogen werden. In dem Beispiel von Fig. 2 ist das Modul der überwachten Seite so konfiguriert, dass es ein Bild eines Programms enthält, das in einem Modul auf der überwachenden Seite enthalten ist, um so eine Veränderung durch Detektieren der Identität der Programme und ihres Bildes zu erfassen. Alternativ kann ein bestimmter Prüfcode in jedem Modul anstelle des vorgenannten Bildes enthalten sein, so dass eine Programmveränderung durch Detektieren der Identität dieser Prüfcodes erfasst werden kann. Ferner kann eine Veränderung durch Überprüfen einer Prüfsumme von einem Teil oder dem gesamten Programm erfasst werden.
  • Anschließend werden Betriebsbeispiele des Moduls in dem in Fig. 1 dargestellten System beschrieben. Das Modul kann im voraus auf der CD-ROM 24 oder in dem ROM 18 gespeichert sein.
  • Als ein Beispiel sind mehrere Überwachungsmodule in dem ROM 18 des Systems gespeichert. Ein Benutzer, welcher daran geht das Programm zu verändern, versucht das Prüfprogramm des in dem ROM 18 gespeicherten Moduls zu entziffern und zu verändern. Sofern er jedoch nicht erfolgreich die Überwachungsstruktur von allen von den mehreren Module entziffert und alle von den Prüfprogrammen verändert, entdeckt eines oder mehrere von den Modulen die Veränderung des Programms.
  • Als ein weiteres Beispiel wird ein Teil von mehreren Überwachungsmodulen in der CD- ROM 24 zusammen mit dem Hauptprogramm gespeichert, und die restlichen Teile der mehreren Überwachungsmodule werden in dem ROM 18 gespeichert. Das in der CD- ROM 24 gespeicherte Überwachungsmodul wird in den RAM 16 des Systems zusammen mit dem Hauptprogramm bei der Ausführung des Hauptprogramms geschrieben. Dann beginnt das Prüfprogramm jedes Überwachungsmoduls seinen Betrieb. In diesem Falle erfasst eines oder mehrere von den Überwachungsmodulen die Veränderung und blockiert die Ausführung des in der CD-ROM 24 gespeicherten Hauptprogramms, sofern nicht ein böswilliger Nutzer erfolgreich alle Prüfprogramme in den in den RAM 16 und in den ROM 18 geschriebenen mehreren Überwachungsmodulen ändert und deaktiviert.
  • Als ein noch weiteres Beispiel können alle von den mehreren Überwachungsmodulen auf der CD-ROM 24 aufgezeichnet sein. Auch in diesem Falle wird jedes von den Überwachungsmodulen in den RAM 16 geschrieben und der Prüfprozeß wird ausgeführt. Daher wird die Ausführung des Hauptprogramms verhindert, sofern nicht alle Prüfprogramme erfolgreich verändert und deaktiviert sind.
  • In jedem von den vorstehenden drei Fällen kann das Prüfprogramm die vorstehend erwähnte doppelte Prüfung gegenüber dem Programm, so wie es in der CD-ROM oder im ROM gespeichert ist und nachdem es in dem RAM geschrieben ist, ausführen.
  • Obwohl die vorstehend beschriebene Ausführungsform eine CD-ROM als ein Speichermedium des Programms verwendet, ist die Anwendung der vorliegenden Erfindung nicht auf dieses Merkmal beschränkt. Die vorliegende Erfindung ist nämlich auf weitere verschiedene Speichermedien wie z. B. MO, DVD usw. anwendbar, und sie ist auch auf ein Programm anwendbar, welches mittels einer bestimmten Kommunikationseinrichtung auf eine Festplatte übertragen wird.

Claims (10)

1. Computersystem, das umfasst:
eine Leseeinrichtung (22), die eine Vielzahl von Prüfprogrammabschnitten von einem Speichermedium (24) liest, das Computerprogramm einschließlich der Vielzahl von Prüfprogrammabschnitten enthält; und
Prüfprogramm-Ausführeinrichtungen (4), die jeden der Prüfprogrammabschnitte ausführen, wobei jede der Prüfprogrammeinrichtungen eine Änderung wenigstens eines anderer Prüfprogrammabschnitte erfasst.
2. Computersystem nach Anspruch 1, das des Weiteren eine Speichereinrichtung (18) umfasst, die wenigstens ein Prüfprogramm speichert, das im Voraus hergestellt wird, wobei der Prüfprogrammabschnitt, der in der Speichereinrichtung (18) gespeichert ist, Änderung wenigstens eines der Vielzahl von Prüfprogrammabschnitten erfasst, und wobei wenigstens einer der Vielzahl von Prüfgrogrammabschnitten Änderung des Prüfprogrammabschnitts erfasst, der in der Speichereinrichtung (28) gespeichert ist.
3. Computersystem nach Anspruch 1, das des Weiteren eine Steuereinrichtung (4) umfasst, die Ausführung des Computerprogramms ermöglicht, wenn die Prüfprogramm-Ausführeinrichtung (4) keine Änderung eines der Prüfprogrammabschnitte nach Ausführung aller Prüfprogrammabschnitte erfasst.
4. Computersystem nach Anspruch 1, wobei die Vielzahl von Prüfprogrammabschnitten so verknüpft sind, dass sie eine Schleifenstruktur bilden, so dass jeder der Vielzahl von Prüfprogrammabschnitten Änderung eines anderen Prüfprogrammabschnitts erfasst.
5. Computersystem nach Anspruch 1, wobei die Vielzahl von Prüfprogrammabschnitten so verknüpft sind, dass sie eine Baumstruktur bilden, so dass jeder der Vielzahl von Prüfprogrammabschnitten Änderung von Prüfprogrammabschnitten erfasst, die zu jedem der Vielzahl von Prüfprogrammabschnitten gehören.
6. Verfahren zum Ausführen von Computerprogramm, das die folgenden Schritte umfasst:
einen Leseschritt zum Lesen einer Vielzahl von Prüfprogrammabschnitten von einem Speichermedium (24), das Computerprogramm einschließlich der Vielzahl von Prüfprogrammabschnitten enthält; und
einen Prüfprogramm-Ausführschritt zum Ausführen aller Prüfprogrammabschnitte, wobei der Prüfprogramm-Ausführschritt Änderung wenigstens eines anderer Prüfprogrammabschnitte erfasst.
7. Verfahren nach Anspruch 6, das des Weiteren einen Leseschritt zum Lesen des Prüfprogrammabschnitts aus einer Speichereinrichtung (18) umfasst, die wenigstens ein Prüfprogramm speichert, das im Voraus hergestellt wird, wobei der Prüfprogramm-Ausführschritt den Prüfprogrammabschnitt ausführt, der in der Speichereinrichtung (18) gespeichert ist, um Änderung wenigstens eines der Vielzahl von Prüfprogrammabschnitten zu erfassen, und wenigstens einen der Vielzahl von Prüfprogrammabschnitten ausführt, um Änderung des Prüfprogrammabschnitts zu erfassen, der in der Speichereinrichtung (18) gespeichert ist.
8. Verfahren nach Anspruch 6, der des Weiteren einen Steuerschritt umfasst, der Ausführung des Computerprogramms ermöglicht, wenn der Prüfprogramm-Ausführschritt keine Änderung eines der Prüfprogrammabschnitte nach Ausführung aller der Prüfprogrammabschnitte erfasst.
9. Speichermedium (24), das von einem Computer gelesen werden kann, und das umfasst:
ein Computerprogramm, das speziell zum Durchführen der Schritte des Verfahrensanspruchs 6 eingerichtet ist; und
eine Vielzahl von Prüfprogrammabschnitten, die es dem Computer ermöglichen, als eine Prüfprogramm-Ausführeinrichtung (4) zu arbeiten, um Änderung wenigstens eines anderer Prüfprogrammabschnitte zu erfassen.
10. Speichermedium nach Anspruch 9, das des Weiteren ein Programm umfasst, das es dem Computer ermöglicht, als Steuereinrichtung (4) zu arbeiten, die Ausführung des Computerprogramms ermöglicht, wenn die Prüfprogramm-Ausführeinrichtung keine Änderung eines der Prüfprogrammabschnitte nach Ausführung aller der Prüfprogrammabschnitte erfasst.
DE60003253T 1999-04-09 2000-04-05 Vorrichtung und Verfahren zur Vorbeugung von Computerprogrammänderungen und entsprechender Computerprogrammdatenträger. Expired - Lifetime DE60003253T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP11103256A JP3056732B1 (ja) 1999-04-09 1999-04-09 コンピュ―タシステム、コンピュ―タプログラムの実行方法及びコンピュ―タプログラム記録媒体

Publications (2)

Publication Number Publication Date
DE60003253D1 DE60003253D1 (de) 2003-07-17
DE60003253T2 true DE60003253T2 (de) 2003-12-04

Family

ID=14349374

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60003253T Expired - Lifetime DE60003253T2 (de) 1999-04-09 2000-04-05 Vorrichtung und Verfahren zur Vorbeugung von Computerprogrammänderungen und entsprechender Computerprogrammdatenträger.

Country Status (5)

Country Link
US (1) US6539266B1 (de)
EP (1) EP1043659B1 (de)
JP (1) JP3056732B1 (de)
AT (1) ATE242894T1 (de)
DE (1) DE60003253T2 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6874087B1 (en) 1999-07-13 2005-03-29 International Business Machines Corporation Integrity checking an executable module and associated protected service provider module
WO2003090050A2 (en) * 2002-04-13 2003-10-30 Computer Associates Think, Inc. System and method for detecting malicicous code
JP4729890B2 (ja) * 2004-09-07 2011-07-20 富士ゼロックス株式会社 ファイル管理装置
US8272058B2 (en) 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
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
JP4932034B2 (ja) 2008-03-28 2012-05-16 パナソニック株式会社 ソフトウェア更新装置、ソフトウェア更新システム、無効化方法、及び無効化プログラム
US8464347B2 (en) 2008-03-28 2013-06-11 Panasonic Corporation Software updating apparatus, software updating system, alteration verification method and alteration verification program
WO2010061561A1 (ja) * 2008-11-26 2010-06-03 パナソニック株式会社 監視システム、プログラム実行装置、監視プログラム、記録媒体及び集積回路
JP5405986B2 (ja) 2008-11-26 2014-02-05 パナソニック株式会社 ソフトウェア更新システム、管理装置、記録媒体及び集積回路
US8544093B2 (en) 2009-02-16 2013-09-24 Panasonic Corporation Illegal module identifying device, information processing device, illegal module identifying method, illegal module identifying program, integrated circuit, illegal module disabling system, and illegal module disabling method
WO2010092830A1 (ja) * 2009-02-16 2010-08-19 パナソニック株式会社 改竄監視システム、管理装置及び改竄管理方法
US20100268521A1 (en) * 2009-04-17 2010-10-21 Rainer Heller Monitoring An Automation System
JP5411282B2 (ja) * 2009-09-17 2014-02-12 パナソニック株式会社 情報処理装置、管理装置、不正モジュール検知システム、不正モジュール検知方法、不正モジュール検知プログラムを記録している記録媒体、管理方法、管理プログラムを記録している記録媒体および集積回路
WO2011135797A1 (ja) * 2010-04-26 2011-11-03 パナソニック株式会社 改ざん監視システム、管理装置及び改ざん管理方法
JP5681028B2 (ja) * 2010-04-26 2015-03-04 パナソニック株式会社 改ざん監視システム、管理装置及び管理方法
JP5723361B2 (ja) 2010-10-28 2015-05-27 パナソニック株式会社 改ざん監視システム、保護制御モジュール及び検知モジュール
EP2979211B1 (de) * 2013-03-27 2020-09-09 Irdeto B.V. Schutz einer softwareanwendung
JP2014235326A (ja) * 2013-06-03 2014-12-15 富士通セミコンダクター株式会社 システム、情報処理装置、セキュアモジュール、および検証方法
JP6149523B2 (ja) * 2013-06-12 2017-06-21 株式会社島津製作所 ファイル改ざん検知システム
KR101482700B1 (ko) * 2013-09-27 2015-01-14 (주)잉카엔트웍스 해시를 이용한 프로그램의 무결성 검증 방법

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4251885A (en) * 1979-03-09 1981-02-17 International Business Machines Corporation Checking programmed controller operation
US5027273A (en) * 1985-04-10 1991-06-25 Microsoft Corporation Method and operating system for executing programs in a multi-mode microprocessor
US5442645A (en) * 1989-06-06 1995-08-15 Bull Cp8 Method for checking the integrity of a program or data, and apparatus for implementing this method
JPH06242957A (ja) 1993-02-16 1994-09-02 Fujitsu Ltd プログラム実行制御装置
JP2621799B2 (ja) 1994-05-23 1997-06-18 日本電気株式会社 コンピュータウィルス感染監視・防止方式
JP3563768B2 (ja) * 1994-05-31 2004-09-08 株式会社ルネサステクノロジ Romプログラム変更装置
US5564017A (en) * 1994-06-30 1996-10-08 International Business Machines Corporation Procedure for safely terminating network programs during network logoff
GB9514433D0 (en) * 1995-07-14 1995-09-13 Sgs Thomson Microelectronics Computer instruction execution
RU2115159C1 (ru) * 1995-10-24 1998-07-10 Владимир Олегович Сафонов Способ и устройство для проверки использования полей записей во время компиляции
JP2738375B2 (ja) 1995-12-25 1998-04-08 株式会社セガ・エンタープライゼス ビデオゲームシステム、情報処理装置、及びそのソフトウエア貯蔵手段
US5953502A (en) * 1997-02-13 1999-09-14 Helbig, Sr.; Walter A Method and apparatus for enhancing computer system security

Also Published As

Publication number Publication date
EP1043659B1 (de) 2003-06-11
ATE242894T1 (de) 2003-06-15
JP3056732B1 (ja) 2000-06-26
EP1043659A2 (de) 2000-10-11
DE60003253D1 (de) 2003-07-17
EP1043659A3 (de) 2001-08-22
US6539266B1 (en) 2003-03-25
JP2000293370A (ja) 2000-10-20

Similar Documents

Publication Publication Date Title
DE60003253T2 (de) Vorrichtung und Verfahren zur Vorbeugung von Computerprogrammänderungen und entsprechender Computerprogrammdatenträger.
EP3274825B1 (de) Verfahren und ausführungsumgebung zum gesicherten ausführen von programmbefehlen
DE69626530T2 (de) Schutz von software gegen benutzung ohne erlaubnis
DE69627270T2 (de) Sicherheitssystem zum Schutz von Informationen auf Speichermedien
DE69634880T2 (de) Verfahren und gerät zum kontrollierten zugriff zu verschlüsselten datenakten in einem computersystem
DE60127310T2 (de) Vorrichtung zum schutz digitaler daten
DE10023820B4 (de) Software-Schutzmechanismus
DE102018220711A1 (de) Messung der Anfälligkeit von KI-Modulen gegen Täuschungsversuche
EP2362321A1 (de) Verfahren und System zum Erkennen einer Schadsoftware
EP2510475B1 (de) Hardware-einrichtung
WO2016146504A1 (de) Verfahren und vorrichtung zum verarbeiten und übertragen von daten innerhalb eines funktional sicheren elektrischen, elektronischen und/oder programmierbar elektronischen systems
EP2405317B1 (de) Verfahren zur sicheren Parametrierung eines Sicherheitsgeräts
EP1439446A1 (de) Verfahren zum Erweitern eines Programms um eine Kopierschutzfunktion
DE60212169T2 (de) Laden von software
EP3884636A1 (de) Verfahren zum bearbeiten von anwendungsprogrammen auf einem verteilten automatisierungssystem
DE602004001293T2 (de) Programmintegritätsprüfung mittels Statistiken
DE69029593T2 (de) Verfahren und Gerät zur elektronischen Datenverarbeitung
DE4019652A1 (de) Verfahren zum schutz von software gegen unzulaessiges kopieren
EP2503483A1 (de) Kommunikationssystem mit Sicherheitsvorrichtung, sowie Verfahren hierzu
DE102020210874A1 (de) Vorrichtung, System und Verfahren zur Verhinderung böswilliger Angriffe durch Programmcodes auf ein Fahrzeug
DE19931047A1 (de) Verfahren zum Sichern von Daten in einer Maschine zum Testen elektronischer Bauteile
EP4297334B1 (de) Verfahren zur implementierung und nutzung von kryptografischem material in wenigstens einer systemkomponente eines informationstechnischen systems
DE102024210364A1 (de) Verfahren zum Erkennen eines Angriffs auf eine Betriebssoftware eines technischen Systems
DE102005046696A1 (de) Verfahren zum Erzeugen von geschütztem Programmcode und Verfahren zum Ausführen von Programmcode eines geschützten Computerprogramms sowie Computerprogrammprodukt
WO2022189214A1 (de) Verfahren zur bestimmung der integrität einer datenverarbeitung, vorrichtung, datenverarbeitungsanlage und anlage

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: KONAMI DIGITAL ENTERTAINMENT CO., LTD., TOKYO, JP