DE102006004240A1 - Verfahren und Vorrichtung zum Nachweis einer Raubkopie - Google Patents

Verfahren und Vorrichtung zum Nachweis einer Raubkopie Download PDF

Info

Publication number
DE102006004240A1
DE102006004240A1 DE102006004240A DE102006004240A DE102006004240A1 DE 102006004240 A1 DE102006004240 A1 DE 102006004240A1 DE 102006004240 A DE102006004240 A DE 102006004240A DE 102006004240 A DE102006004240 A DE 102006004240A DE 102006004240 A1 DE102006004240 A1 DE 102006004240A1
Authority
DE
Germany
Prior art keywords
document
software
procedure
writing
reading
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.)
Withdrawn
Application number
DE102006004240A
Other languages
English (en)
Inventor
Bernhard Agthe
Gero BÄSE
Ivan Dr. Kopilovic
Norbert Oertel
Marcel Dr. Wagner
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.)
Unify GmbH and Co KG
Original Assignee
Siemens AG
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 Siemens AG filed Critical Siemens AG
Priority to DE102006004240A priority Critical patent/DE102006004240A1/de
Priority to EP06793013A priority patent/EP1979848A1/de
Priority to CN200680052033.4A priority patent/CN101517585B/zh
Priority to PCT/EP2006/065680 priority patent/WO2007085308A1/de
Publication of DE102006004240A1 publication Critical patent/DE102006004240A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

Die Erfindung betrifft ein Verfahren zum Nachweis einer Raubkopie, bei der eine erste Software eine Kopie von zumindest einem Teil einer zweiten Software umfasst, werden folgende Schritte ausgeführt, bei dem die erste Software ausgeführt wird, wobei bei einem während eines Prozedurwechsels stattfindenden Schreib- und/oder Lesevorgang einer Parametergruppe einer Prozedurinstanz auf einen und/oder von einem Stapelspeicher zumindest ein für diesen Schreib- und/oder Lesevorgang charakteristischen Parameter in einer für ein Auftreten der Schreib- und/oder Lesevorgänge zeitlichen Reihenfolge in einem ersten Dokument aufgenommen wird, die zweite Software ausgeführt wird, wobei bei einem während eines Prozedurwechsels stattfindenen Schreib- und/oder Lesevorgang einer Parametergruppe einer Prozedurinstanz auf einen bzw. von einem Stapelspeicher zumindest ein für diesen Schreib- und/oder Lesevorgang charakteristischer Parameter in einer für ein Auftreten der Schreib- und/oder Lesevorgänge zeitlichen Reihenfolge in einem zweiten Dokument aufgenommen wird, der zumindest eine Korrelationswert durch Korrelation zumindest einer der charakteristischen Parameter zumindest eines Abschnitts des zweiten Dokuments mit zumindest einem der dazugehörigen charakteristischen Parameter zumindest eines Abschnitts des ersten Dokuments gebildet wird und ein Vorhandensein der Raubkopie angezeigt wird, falls der Korrelationswert größer als ein Schwellenwert ist. Ferner betrifft die Erfindung auch eine ...

Description

  • Die Erfindung betrifft ein Verfahren gemäß dem Anspruch 1 sowie eine Vorrichtung gemäß dem Anspruch 6.
  • Die Entwicklung von Software stellt bei der Herstellung von Produkten, wie zum Beispiel bei Mobiltelefonen oder bei Autos, einen erheblichen Kostenfaktor dar. Da Software aber leicht zu kopieren ist, beispielsweise durch Kopieren einer CD (CD – Compact Disc), welche die zu kopierende Software umfasst, entstehen für Software-Hersteller hohe Umsatzverluste. Neben dem Kopieren ganzer Software-Pakete, wie beispielsweise einer kompletten Betriebssystem-CD, können auch Teile derartiger Software, wie zum Beispiel einzelne Dynamic Link Libraries (DLL – Dynamic Link Library) in weiteren Software-Produkten als Raubkopie benutzt werden.
  • Der Erfindung liegt die Aufgabe zu Grunde, ein Verfahren und eine Vorrichtung anzugeben, mit der eine zumindest teilweise Kopie einer zweiten Software in einer ersten Software nachgewiesen wird, wobei das Verfahren und die Vorrichtung sowohl robust gegenüber Änderungen der Kopie als auch auf bestehende Software anwendbar ist.
  • Diese Aufgabe wird durch die unabhängigen Ansprüche gelöst. Weiterbildungen der Erfindung finden sich in den abhängigen Ansprüchen.
  • Bei einem Verfahren zum Nachweis einer Raubkopie, bei der eine erste Software eine Kopie von zumindest einem Teil einer zweiten Software umfasst, werden folgende Schritte ausgeführt.
    • a) Ausführen der ersten Software, wobei bei einem während eines Prozedurwechsels stattfindenden Schreib- und/oder Lesevorgang einer Parametergruppe einer Prozedurinstanz auf einen und/oder von einem Stapelspeicher zumindest ein für diesen Schreib- und/oder Lesevorgang charakteristischer Parameter in einer für ein Auftreten der Schreib- und/oder Lesevorgänge zeitlichen Reihenfolge in einem ersten Dokument aufgenommen wird;
    • b) Ausführen der zweiten Software, wobei bei einem während eines Prozedurwechsels stattfindenden Schreib- und/oder Lesevorgang einer Parametergruppe einer Prozedurinstanz auf einen und/oder. von einem Stapelspeicher zumindest ein für diesen Schreib- und/oder Lesevorgang charakteristischer Parameter in einer für ein Auftreten der Schreib- und/oder Lesevorgänge zeitlichen Reihenfolge in einem zweiten Dokument aufgenommen wird;
    • c) Bilden zumindest eines Korrelationswerts durch Korrelation zumindest einer der charakteristischen Parameter zumindest eines Abschnitts des zweiten Dokuments mit zumindest einem der dazugehörigen charakteristischen Parameter zumindest eines Abschnitts des ersten Dokuments;
    • d) Anzeige eines Vorhandenseins der Raubkopie, falls der Korrelationswert größer als ein Schwellenwert ist.
  • Dieses Verfahren ermöglicht eine Raubkopie einer zweiten Software bzw. Teile einer zweiten Software in einer ersten Software durch Aufnahme von charakteristischen Parametern während der jeweiligen Ausführung nachzuweisen. Dabei wird zum einen durch Verwendung des Korrelationswert ermöglicht, dass trotz Änderungen in der ersten Software gegenüber der zweiten Software die Raubkopie dennoch erkannt wird, weil der Korrelationswert eine Ähnlichkeit zweier Abschnitte der ersten und der zweiten Software beschreibt. Zum anderen sind in der ersten bzw. zweiten Software keinerlei Änderungen erforderlich, da die Aufnahme bzw. Erfassung der charakteristischen Parameter mittels eines eigenständigen Programms, welches Funktionen des Betriebssystems auswertet, erfolgen kann. Somit kann auch bestehende Software auf Raubkopien untersucht werden.
  • Vorzugsweise werden als charakteristischer Parameter ein Wert der Parametergruppe und/oder ein Ausführungszeitpunkt des Prozedurwechsels verwendet. Bei Benutzung eines der Werte der Parametergruppe können spezifische Verhalteneigenschaften von aufzurufender und/oder aufgerufener Prozedurinstanz genau analysiert werden. Bei Verwendung des Ausführungszeitpunkts kann ein Zeitdiagramm erstellt werden, welches angibt, zu welchen Zeitpunkten der Prozedurwechsel stattgefunden hat. Mit Hilfe dieser charakteristischen Parameter kann ein charakteristisches Verhalten der Prozedurinstanzen genau beschrieben werden. Insbesondere können folgende charakteristischen Parameter der Parametergruppe benutzt werden:
    • – Anzahl an Variablen einer aufgerufenen Prozedurinstanz;
    • – Anzahl an Bytes der Variablen der aufgerufenen Prozedurinstanz;
    • – Anzahl an lokalen Variablen einer aufrufenden Prozedurinstanz;
    • – Anzahl an Bytes der lokalen Variablen der aufrufenden Prozedurinstanz;
    • – Angabe, ob ein rekursiver Aufruf zwischen aufgerufener und aufzurufender Prozedurinstanz stattfindet;
    • – Angabe einer jeweiligen Speicheradresse der aufgerufenen und/oder der aufzurufenden Prozedurinstanz.
  • Diese charakteristischen Parameter der Parametergruppe können in einfacher Weise bei dem Prozedurwechsel erfasst werden.
  • Vorzugsweise werden mehrere Abschnitte des zweiten Dokuments mit den dazugehörigen charakteristischen Parametern zumindest mit einem Abschnitt des ersten Dokuments korreliert und daraus für jeden korrelierten Abschnitt des zweiten Dokuments als Ergebnis ein dazugehöriger Korrelationswert gebildet und eine Kopie angezeigt, falls eine Mehrzahl der Korrelationswerte größer als ein jeweiliger Schwellenwert ist. Somit kann eine Reduzierung einer Rate von irrtümlicherweise erkannten Raubkopien erreicht werden, da mehr als ein Korrelationswert für die Bestimmung ob Raubkopie oder nicht Raubkopie in Betracht gezogen wird.
  • In einer alternativen Weiterbildung werden mehrere Abschnitte des zweiten Dokuments mit den dazugehörigen charakteristi schen Parametern mit zumindest einem Abschnitt des ersten Dokuments korreliert und daraus für jeden korrelierten Abschnitt des zweiten Dokuments als Ergebnis ein dazugehöriger Korrelationswert gebildet und eine Kopie angezeigt, falls zumindest einer der Korrelationswerte größer als ein erster Schwellenwert und die weiteren Korrelationswerte jeweils größer als ein zweiter Schwellenwert sind. Diese Alternative ermöglicht auch eine Reduzierung irrtümlicherweise erkannter Raubkopien.
  • Die Erfindung betrifft auch eine Vorrichtung zum Nachweis einer Raubkopie, bei der eine erste Software eine Kopie von zumindest einem Teil einer zweiten Software umfasst, mit
    • – einem ersten Mittel zum Ausführen der ersten Software, wobei bei einem während eines Prozedurwechsels stattfindenden Schreib- und/oder Lesevorgang einer Parametergruppe einer Prozedurinstanz auf einen und/oder von einem Stapelspeicher zumindest ein für diesen Schreib- und/oder Lesevorgang charakteristischer Parameter in einer für ein Auftreten der Schreib- und/oder Lesevorgänge zeitlichen Reihenfolge in einem ersten Dokument aufgenommen wird;
    • – einem zweiten Mittel zum Ausführen der zweiten Software, wobei bei einem während eines Prozedurwechsels stattfindenden Schreib- und/oder Lesevorgang einer Parametergruppe einer Prozedurinstanz auf einen und/oder von einem Stapelspeicher zumindest ein für diesen Schreib- und/oder Lesevorgang charakteristischer Parameter in einer für ein Auftreten der Schreib- und/oder Lesevorgänge zeitlichen Reihenfolge in einem zweiten Dokument aufgenommen wird;
    • – einem dritten Mittel zum Bilden zumindest eines Korrelationswerts durch Korrelation zumindest einer der charakteristischen Parameter zumindest eines Abschnitts des zweiten Dokuments mit zumindest einem der dazugehörigen charakteristischen Parameter zumindest eines Abschnitts des ersten Dokuments;
    • – einem vierten Mittel zum Vergleichen des zumindest einen Korrelationswert mit zumindest einem Schwellenwert;
    • – einem fünften Mittel zum Anzeige eines Vorhandenseins der Raubkopie, falls der Korrelationswert größer als ein Schwellenwert ist.
  • Mit Hilfe dieser Vorrichtung ist das Verfahren implementier- und ausführbar. Das Verfahren bzw. die Vorrichtung können als Hardware, als Software ablaufend auf einem Prozessor oder als Kombination aus Hardware und Software realisiert sein.
  • Die Erfindung und ihre Weiterbildungen werden nachfolgend anhand der Zeichnung näher erläutert:
  • Es zeigen:
  • 1 ein Programmablauf einer Software, bei dem mehrere Prozedureinheiten aufgerufen werden;
  • 2 eine Belegung eines Stapelspeichers während eines Programmablaufs;
  • 3 ein Ablaufdiagramm eines Ausführungsbeispiels;
  • 4A, B, C, D Ausschnitte eines Füllstands des Stapelspeichers für eine erste bzw. eine zweite Software, ein zu suchendes Muster innerhalb der jeweiligen Füllstandsverläufe des Stapelspeichers und Verteilung des Korrelationswerts über der Zeit;
  • 5 eine Vorrichtung zur Durchführung des Verfahrens zum Nachweis einer Raubkopie.
  • Elemente mit gleicher Funktion und Wirkungsweise sind in den 1 bis 5 mit denselben Bezugszeichen versehen.
  • In 1 ist ein Programmablauf einer Software zu sehen. Dabei liegt die Software in Form einer Abfolge von Maschinenbefehlen vor und wird beispielsweise auf einem Mikroprozessor oder einem digitalen Signalprozessor ausgeführt. Diese Soft ware mit den Maschinenbefehlen kann durch Kompilieren und Linken eines C-Programms mit Hilfe eines Entwicklungspakets, beispielsweise dem Microsoft Visual Studio, erstellt werden.
  • Die Software kann in mehrere Prozedurinstanzen PI unterteilt werden. Innerhalb jeder Prozedurinstanz PI werden Maschinenbefehle sequenziell ausgeführt. Dabei werden während oder am Ende der jeweiligen Prozedurinstanz andere Prozedurinstanzen aufgerufen, d.h. ein Prozedurwechsel findet statt. Diese Aufrufe bewirken, dass Daten, wie beispielsweise Registerinhalte des Mikroprozessors von einem oder auf einen Stapelspeicher (Stack) gelesen bzw. geschrieben werden.
  • Der Prozedurwechsel mit den Lese- und Schreibvorgängen LV, SV werden anhand der 1 näher erläutert. Dabei wird während des Ablaufs einer ersten Prozedurinstanz PI1 eine zweite Prozedurinstanz PI2 aufgerufen. Hierbei werden die Registerinhalte des Mikroprozessors zum Zeitpunkt vor dem Prozedurwechsel auf den Stapelspeicher SP mittels des Schreibvorgangs SV geschrieben. Ferner können auch Werte lokaler Variablen der ersten Prozedurinstanz PI1 auf dem Stapelspeicher abgelegt werden. Im Allgemeinen wird eine Parametergruppe PG der Prozedurinstanz PI, PI1 auf den bzw. von dem Stapelspeicher SP geschrieben bzw. gelesen. In diesem Ausführungsbeispiel umfasst die Parametergruppe PG die Registerinhalte und lokale Variablen der ersten Prozedurinstanz PI1. Ferner stellt die erste Prozedurinstanz PI1 eine aufrufende Prozedurinstanz und die zweite Prozedurinstanz PI2 eine aufgerufene Prozedurinstanz dar.
  • Nach Aufruf der zweiten Prozedurinstanz PI2 werden die einzelnen Maschinenbefehle der zweiten Prozedurinstanz abgearbeitet. Bei Erreichen des Endes der zweiten Prozedurinstanz PI2 kehrt der Programmablauf zur ersten Prozedurinstanz PI1 zurück. Dabei werden die zum Zeitpunkt des Prozedurwechsels von der ersten zur zweiten Prozedurinstanz abgelegten Daten von dem Stapelspeicher SP mittels des Lesevorgangs LV gelesen. Diese gelesenen Daten umfassen beispielsweise Register inhalte, die in die entsprechenden Register des Mikroprozessors geschriebenen werden oder auch Inhalte lokaler Daten, die den lokalen Variablen der einen Prozedurinstanz PI1 zugeordnet werden.
  • Nachdem innerhalb der ersten Prozedurinstanz PI1 weitere Maschinenbefehle ausgeführt worden sind, soll im Folgenden zu einer dritten Prozedurinstanz PI3 gesprungen werden. Dabei findet bei dem Wechsel von der ersten zur dritten Prozedurinstanz ein Schreibvorgang SV gemäß der obigen Beschreibung statt. Innerhalb der dritten Prozedurinstanz wird eine vierte Prozedurinstanz PI4 aufgerufen, wobei wiederum ein Schreibvorgang SV ausgeführt wird. Bei Beendigung des Programmablaufs der vierten Prozedurinstanz PI4 wird zur dritten Prozedurinstanz PI3 zurückgesprungen, wobei ein Lesevorgang durchgeführt wird. Diese dritte Prozedurinstanz PI3 wird fortgesetzt bis zu ihrem Ende und dann mit Hilfe eines weiteren Lesevorgangs die erste Prozedurinstanz PI1 aufgerufen. Während der jeweiligen Prozedurwechsel werden die zu den jeweiligen Prozedurinstanzen gehörenden Daten auf den Stapelspeicher SP geschrieben bzw. von dem Stapelspeicher SP gelesen. Diese Lese- und Schreibvorgänge LV, SV sind in 1 symbolisch mit Pfeilen wiedergegeben, wobei mit Hilfe dieser Pfeile die während des Programmablaufs der Software durchgeführten Sprünge zwischen den Prozedurinstanzen PI wiedergegeben sind. Die Verwendung von Stapelspeichern sind einem Fachmann bekannt, siehe beispielsweise [1].
  • Mit Hilfe von 2 wird im Folgenden ein Füllstand des Stapelspeichers während des Ablaufs einer Software mit den einzelnen Prozedurinstanzen über einer Zeitachse T näher erläutert. Die einzelnen Prozedurinstanzen PI1, ..., PI4 wurden in dem Ausführungsbeispiel gemäß 1 in der folgenden Reihenfolge aufgerufen:
    PI1 → PI2 → PI1 → PI3 → PI4 → PI3 → PI1.
  • Diese Abfolge der einzelnen Prozedurinstanzen ist im unteren Bildteil von 2 abgedruckt. Im oberen Bildteil der 2 ist ein Füllstandsdiagramm mit dem Füllstand F des Stapelspeichers SP in Abhängigkeit des Ablaufs der Software, d.h. in Abhängigkeit von den ausgeführten Prozedurinstanzen, wiedergegeben. Der Füllstand F wird beispielsweise in Bytes angegeben, wobei jeder Teilstrich des Füllstands F in 2 jeweils 100 Bytes entspricht. Somit werden beispielsweise beim Aufruf der zweiten Prozedurinstanz PI2 durch den Schreibvorgang SV 250 Bytes in den Stapelspeicher geschrieben. Bei Beendigung der zweiten Prozedurinstanz PI2 werden bei dem folgenden Lesevorgang LV die 250 Bytes von dem Stapelspeicher gelesen. Bei den nachfolgenden Prozedurwechseln wird in analoger Weise verfahren. In dem Füllstanddiagramm des Stapelspeichers ist zu erkennen, dass bei einem Schreibvorgang der Füllstand des Stapelspeichers zunimmt, wohingegen bei einem Lesevorgang der Füllstand reduziert wird.
  • Das erfindungsgemäße Verfahren erfasst zu denjenigen Ausführungszeitpunkten AZ, an denen ein Prozedurwechsel stattfindet, charakteristische Parameter CP1, ..., CP4. Diese charakteristischen Parameter repräsentieren spezifische Eigenschaften der aufrufenden und/oder der aufgerufenen Prozedurinstanz. Die charakteristischen Parameter können beispielsweise einem oder mehreren Werten der Parametergruppe PG entsprechen, wie zum Beispiel einem spezifischen Registerinhalt. Ferner kann ein charakteristischer Parameter auch aus einer Zusammenfassung bzw. Auswertung der zum Prozedurwechsel erfassten Parametergruppe PG generiert werden. Hierbei kann ein erster charakteristischer Parameter CP1 einer Anzahl an Bytes aller lokalen Variablen der aufrufenden Prozedurinstanz PI1 entsprechen. Im Ausführungsbeispiel gemäß 1 wurden bei dem Prozedurwechsel von PI1 nach PI2 250 Bytes auf den Stapelspeicher geschrieben. Diese 250 Bytes umfassen beispielsweise 64 Bytes, welche die Registerwerte umfassen, und 186 Bytes, die Werte der lokalen Variablen der ersten Prozedurinstanz PI1 beinhalten. Somit beschreibt der erste charakteristische Parameter CP1 die Anzahl an Bytes der lokalen Variab len der ersten Prozedurinstanz PI1, das heißt der aufrufenden Prozedurinstanz, welche im vorliegenden Ausführungsbeispiel CP1 = 186 beträgt.
  • Eine Erfassung der Parametergruppe PG wird beispielsweise dadurch realisiert, dass bei Aufruf einer Funktion der Software, die den Lese- bzw. Schreibvorgang LV, SV durchführt, Daten der aufrufenden und/oder der aufgerufenen Prozedurinstanz, das heißt die Parametergruppe, erfasst werden. Ferner kann im Rahmen der Durchführung des Verfahrens nur ein Teil der Parametergruppe oder auch eine Information, die durch Auswertung einer oder mehrerer Daten der Parametergruppe gewonnen wird, erzeugt werden. Die bei einem Lese- bzw. Schreibvorgang gewonnenen Daten bzw. Informationen werden in einem Dokument zur späteren Weiterbearbeitung organisiert abgelegt. Ferner ist es in der Praxis zweckmäßig, zu jeder gespeicherten Information bzw. gespeicherten Daten den Ausführungszeitpunkt der Erfassung dieser Information bzw. Daten mit zu protokollieren. Im Allgemeinen werden diese Informationen, die zu einem Prozedurwechsel zuordenbar sind, als charakteristische Parameter CP1, ..., CP4 bezeichnet.
  • In 3 ist ein Ablaufdiagramm für ein Ausführungsbeispiel dargestellt. Nach dem Start des Ablaufdiagramms im Zustand STA wird mit Hilfe des ersten Schritts X1 ein erstes Dokument D1 für die erste Software S1 erzeugt. In dem ersten Schritt X1 wird während des Ausführens der ersten Software S1 bei Schreib- und/oder Lesevorgängen zumindest ein erster charakteristischer Parameter CP1 für den Prozedurwechsel in dem ersten Dokument D1 erfasst. Dabei kann das erste Dokument beispielsweise den Füllstand F des Stapelspeichers SP über der Zeit des Ausführens der ersten Software umfassen. Dies ist bereits anhand von 2 näher erläutert worden. Das erste Dokument kann den Füllstand F über der Zeit in folgender Form wiedergeben:
    Figure 00090001
  • Die erste Zeile dieser Tabelle gibt die Ausführungszeitpunkte AZ über der Zeit T beispielsweise in Millisekunden ms an. Die zweite Zeile spiegelt den Füllstand des Stapelspeichers in Bytes wieder. Dabei beinhaltet der Füllstand zwischen 0 und 40 ms 0 Bytes, zwischen 40 und 80 ms 250 Bytes usw.
  • In einem zweiten Schritt X2 wird für die zweite Software S2 ein zweites Dokument D2 erzeugt. Die Vorgehensweise ist dabei analog zum ersten Schritt X1. Auch die Darstellung des zweiten Dokuments D2 ist analog zum ersten Dokument D1. In einem dritten Schritt X3 wird durch Korrelation des zumindest einem charakteristischen Parameter CP1 zumindest eines Abschnitts des zweiten Dokuments D2 mit zumindest einem der charakteristischen Parameter CP1 zumindest eines Abschnitts des ersten Dokuments D1 ein Korrelationswert KW gebildet. Der Korrelationswert KW gibt an, inwieweit korrelierte Abschnitte des ersten und des zweiten Dokuments D1, D2 ähnlich sind. Eine exemplarische Vorgehensweise des dritten Schritts zur Bildung des Korrelationswertes KW wird nachfolgend anhand von 4 näher ausgeführt. 4A zeigt den Verlauf des Füllstands des Stapelspeichers beim Ausführen der ersten Software über der Zeit T. Dieser Verlauf ist im ersten Dokument gespeichert. 4B zeigt einen weiteren Verlauf des Stapelspeichers beim Ausführen der zweiten Software S2. Dieser Verlauf ist im zweiten Dokument gespeichert. Zur Bildung des Korrelationswerts KW wird ein erster Abschnitt A1 im Verlauf des Füllstands F aus 4A ausgewählt. Dieser ausgewählte erste Abschnitt A1 ist in 4C wiedergegeben. Innerhalb des Verlaufs des Füllstands, der sich beim Ausführen der zweiten Software S2 ergibt, siehe 4B, wird nun dieser erste Abschnitt A1 gesucht. Hierzu sind statistische Methoden einem Fachmann geläufig, mit Hilfe derer der Verlauf des Füllstands des ersten Abschnitts A1 mit dem Füllstandsverlauf aus 4B korreliert werden kann. Hierbei ergibt sich, wie in 4D gezeigt, zum Zeitpunkt T1 ein hoher Korrelationswert. Zu den Zeitpunkten, die nicht dem ersten Zeitpunkt T1 entsprechen, ergeben sich Korrelationswerte, die 0 oder klein sind.
  • Wie in 4D zu sehen, überschreitet zum ersten Zeitpunkt T1 der Korrelationswert KW einen vorgebbaren Schwellenwert SW. Beispielsweise beträgt der Schwellenwert SW = 0,5 und der Korrelationswert KW = 0,75. Somit ist in dem Füllstandsverlauf, der beim Ausführen der zweiten Software S2 entsteht, ein ähnliches Verhalten der zweiten Software wie beim Ausführen der ersten Software entdeckt worden.
  • Wie in 3 in einem vierten Schritt angegeben, wird zumindest der eine in dem dritten Schritt X3 erzeugte Korrelationswert KW mit einem vorgebbaren Schwellenwert SW verglichen. Ist der Korrelationswert KW größer als der Schwellenwert SW, so wird das Ablaufdiagramm im Pfad J fortgesetzt. In diesem Pfad wird in einem fünften Schritt X5 beispielsweise einem Benutzer angezeigt, dass ein Korrelationswert gefunden wurde, der größer als der Schwellenwert ist. Dies bedeutet, dass zumindest ein Teil der ersten Software in der zweiten Software S2 gefunden werden konnte und somit zumindest Teile der ersten Software aus der zweiten Software kopiert worden sind, d.h. eine Raubkopie ist somit entdeckt worden. Der fünfte Schritt wird anschließend im Zustand END beendet.
  • Findet sich jedoch im vierten Schritt X4 kein Korrelationswert KW, der größer als der vorgebbare Schwellenwert SW ist, so wird das Ablaufdiagramm im Pfad N fortgesetzt, welcher das Ablaufdiagramm im Zustand END terminiert.
  • Im vorliegenden Ausführungsbeispiel wurde ein Abschnitt des Verlaufs des Füllstands des Stapelspeichers beim Ausführen der ersten Software mit dem Verlauf des Füllstands beim Ausführen der zweiten Software verglichen. Im Allgemeinen kann ein zu vergleichender Abschnitt an Stelle aus dem Füllstandsverlauf der ersten Software auch aus dem Füllstandsverlauf der zweiten Software benutzt werden. Dies ist exemplarisch mit einem zweiten Abschnitt A2 in 4B wiedergegeben. Im Allgemeinen wird zumindest eine Ähnlichkeit eines Abschnitts des ersten bzw. zweiten Dokuments in dem zweiten bzw. ersten Dokument gesucht.
  • Des Weiteren ist es in der Praxis zweckmäßig, mehrere Abschnitte in dem zweiten Dokument D2 festzulegen, für die eine Korrelation mit Abschnitten des ersten Dokuments D1 durchgeführt werden soll. Erst wenn für mehrere Abschnitte des zweiten Dokuments ein Korrelationswert gefunden wird, der größer als ein jeweils vorgebbarer Schwellenwert SW ist, wird im Schritt X5 dem Benutzer angezeigt, dass es sich bei der ersten Software um eine Raubkopie der zweiten Software handelt.
  • Im Ausführungsbeispiel gemäß 4 wurde der Füllstand des Stapelspeichers über der Ausführungszeit der jeweiligen Software verwendet. Im Allgemeinen können verschiedenste charakteristische Parameter CP1, ..., CP4 herangezogen werden, die einen Prozedurwechsel charakterisieren. Neben dem Füllstand des Stapelspeichers können eine Anzahl an Variablen der aufgerufenen Prozedurinstanz, eine Anzahl an Bytes der Variablen der aufgerufenen Prozedurinstanz, einen Anzahl an lokalen Variablen einer aufrufenden Prozedurinstanz, eine Anzahl an lokalen Variablen einer aufrufenden Prozedurinstanz oder auch eine Anzahl an Bytes der lokalen Variablen der aufrufenden Prozedurinstanz als charakteristische Parameter in Betracht gezogen werden. Ferner können alternativ oder zusätzlich als charakteristische Parameter eine Angabe verwendet werden, die anzeigt, ob der Prozedurwechsel einem rekursiven Aufruf entspricht oder die jeweiligen Speicheradressen der aufgerufenen und/oder der aufzurufenden Prozedurinstanz benutzt werden.
  • Ferner können auch Kombinationen von charakteristischen Parametern bei der Bildung des Korrelationswerts berücksichtigt werden. Beispielsweise werden neben dem reinen Füllstand des Stapelspeichers auch eine Anzahl an Variablen der aufgerufenen Prozedurinstanz berücksichtigt. Somit beschreibt der Korrelationswert eine Korrelation mehrerer charakteristischer Parameter, die beispielsweise jeweils separat korreliert und mittels einer gewichteten Addition zu einem Korrelationswert verknüpft werden. Dem Fachmann sind weitere statistische Methoden zur Durchführung von Korrelationen mit einem oder meh reren charakteristischen Parametern bekannt, so dass hierauf nicht weiter eingegangen wird. Werden mehrere Korrelationswerte KW1, KW2, KW3 verwendet, so wird eine Raubkopie angezeigt, falls eine Mehrzahl an Korrelationswerten jeweils größer als ein dazugehöriger Schwellenwert ist. Folgendes Zahlenbeispiel verdeutlicht dies:
    KW1 = 0,5; KW2 = 0,3; KW3 = 0,25
    SW1 = 0,4; SW2 = 0,4; SW3 = 0,4
  • Hierbei ist nur der zweite Korrelationswert KW2 > SW2, so dass keine Raubkopie detektiert wird. Ist SW3 = 0,2, so sind KW2 > SW2 und KW3 > SW3. So wird eine Raubkopie erkannt.
  • In einer alternativen Ausführungsform wird eine Raubkopie bereits erkannt, falls zumindest einer der Korrelationswerte größer als der dazugehörige Schwellenwert ist. Für die im obigen Absatz genannten 2 Beispiele bedeutet dies, dass für jedes Beispiel eine Raubkopie detektiert wird.
  • Eine Auswahl des bzw. der Schwellenwerte SW, S1, ..., SW3 hängt von folgenden Aspekten ab:
    • a) Soll eine Übereinstimmung zwischen zu vergleichenden Abschnitten der ersten und der zweiten Software sehr genau sein, so wird der jeweilige Schwellenwert nahe dem maximalen Korrelationswert gewählt. Hierbei ist zu beachten, dass kleine Änderungen, z.B. aufgrund von Änderungen der Maschinenbefehle in den Abschnitten oder wegen Laufzeitschwankungen während des Ausführens der ersten und zweiten Software, einen niedrigen Korrelationswert d.h. eine niedrige Ähnlichkeit, ergibt und somit kopierte Abschnitte bzw. die Raubkopie nicht erkannt wird.
    • b) Wird ein niedriger Schwellenwert SW als der maximale Korrelationswert ausgewählt, so können Raubkopien auch dann nachgewiesen werden, wenn Änderungen im Laufzeitverhalten der Abschnitte der ersten und zweiten Software auftreten. Wird der Schwellenwert zu niedrig gewählt, so werden Ab schnitte als Kopien erkannt, die in Wirklichkeit keine Kopien sind.
  • Nimmt der Korrelationswert KW bspw. einen Wertebereich von –1 bis 1 ein, wobei der Wert 1 exakte Übereinstimmung und der Wert –1 vollständige Nicht-Übereinstimmung darstellt, so ergibt bspw. ein Wert von KW = 0,8 eine niedrige Rate bei einer Angabe einer irrtümlicherweise erkannten Raubkopie und gleichzeitig erlaubt dieser Wert eine Toleranz gegen kleine Änderungen im Maschinencode und gegen Änderungen im Laufzeitverhalten. Ein konkreter Schwellenwert SW hängt bspw. von dem Laufzeitverhalten eines Rechners ab, auf dem die erste und zweite Software ausgeführt wird. Verwendet der Rechner ein Multitasking-Betriebssystem, so können Änderungen im Laufzeitverhalten auftreten, so dass in diesem Fall ein niedrigerer Schwellenwert einzustellen ist, als bei einem Realtime Betriebssystem.
  • 5 zeigt eine Ausführungsform der Vorrichtung in Form eines Geräts G, welches beispielsweise als tragbares Gerät in einem Mobilfunkgerät oder als stationär betriebenes Gerät ausgeführt ist. Das Gerät G verfügt über ein erstes Mittel M1, mit dem die erste Software S1 ausgeführt wird. Dabei werden während des Prozedurwechsels bei Schreib- und/oder Lesevorgängen charakteristische Parameter in einem ersten Dokument D1 aufgenommen. In dem zweiten Mittel M2 wird die zweite Software S2 ausgeführt. Während des Ausführens werden charakteristische Parameter bei einem Schreib- und/oder Lesevorgang der Parametergruppe einer Prozedurinstanz in einem zweiten Dokument D2 erfasst. Das zweite Dokument kann mittels des Verbindungsnetzwerks X gelesen oder beschrieben werden. In dem dritten Mittel M3 werden auf Basis der erfassten Informationen des ersten und des zweiten Dokuments ein oder mehrere Korrelationswerte KW1, ..., KW3 erfasst. Diese ermittelten Korrelationswerte werden in dem vierten Mittel M4 mit einem oder mehreren vorgebbaren Schwellenwerten SW1, ..., SW4 verglichen. Sollten ein oder mehrere Korrelationswerte größer als der jeweilige Schwellenwert sein, so kann mit Hilfe des fünften Mittels M5 das Vorhandensein der Kopie, das heißt, das zumindest Abschnitte der ersten Software mit Abschnitten der zweiten Software nahezu oder ganz identisch sind, angezeigt werden. Diese Anzeige kann beispielsweise für einen Benutzer auf einem Display DD wiedergegeben werden. Die Mittel M1, ..., M5, das erste und zweite Dokument D1, D2, der Stapelspeicher SP und das Display DD sind über das Verbindungsnetzwerk X zum Austausch von Informationen und Daten miteinander verbunden.
  • Literatur
    • [1] Stapelspeicher, Wikipedia-Enzyklopädie, siehe http://de.wikipedia.org/wiki/stack

Claims (6)

  1. Verfahren zum Nachweis einer Raubkopie, bei der eine erste Software (S1) eine Kopie von zumindest einem Teil einer zweiten Software (S2) umfasst, mit folgenden Schritten a) Ausführen der ersten Software (S1), wobei bei einem während eines Prozedurwechsels stattfindenden Schreib- und/oder Lesevorgang einer Parametergruppe (PG) einer Prozedurinstanz (PI) auf einen und/oder von einem Stapelspeicher (SP) zumindest ein für diesen Schreib- und/oder Lesevorgang charakteristischer Parameter (CP1, ..., CP4) in einer für ein Auftreten der Schreib- und/oder Lesevorgänge zeitlichen Reihenfolge in einem ersten Dokument (D1) aufgenommen wird; b) Ausführen der zweiten Software (S2), wobei bei einem während eines Prozedurwechsels stattfindenden Schreib- und/oder Lesevorgang einer Parametergruppe (PG) einer Prozedurinstanz (PI) auf einen und/oder von einem Stapelspeicher (SP) zumindest ein für diesen Schreib- und/oder Lesevorgang charakteristischer Parameter (CP1, ..., CP4) in einer für ein Auftreten der Schreib- und/oder Lesevorgänge zeitlichen Reihenfolge in einem zweiten Dokument (D2) aufgenommen wird; c) Bilden zumindest eines Korrelationswerts (KW) durch Korrelation zumindest einer der charakteristischen Parameter (CP1) zumindest eines Abschnitts des zweiten Dokuments (D2) mit zumindest einem der dazugehörigen charakteristischen Parameter (CP1) zumindest eines Abschnitts des ersten Dokuments (D2); d) Anzeige eines Vorhandenseins der Raubkopie, falls der Korrelationswert (KW) größer als ein Schwellenwert (SW) ist.
  2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass als charakteristischer Parameter (CP1, ..., CP4) ein Wert der Parametergruppe (PG) oder ein Ausführungszeitpunkt (AZ) des Prozedurwechsels verwendet wird.
  3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass zumindest einer der folgenden Parameter von der Parametergruppe (PG) umfasst wird: – Anzahl an Variablen einer aufgerufenen Prozedurinstanz (PI1); – Anzahl an Bytes der Variablen der aufgerufenen Prozedurinstanz (PI1); – Anzahl an lokalen Variablen einer aufrufenden Prozedurinstanz (PI2); – Anzahl an Bytes der lokalen Variablen der aufrufenden Prozedurinstanz (PI2); – Angabe, ob ein rekursiver Aufruf zwischen aufgerufener und aufzurufender Prozedurinstanz (PI1, PI2) stattfindet; – Angabe einer jeweiligen Speicheradresse der aufgerufenen und/oder der aufzurufenden Prozedurinstanz (PI1, PI2).
  4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass mehrere Abschnitte des zweiten Dokuments (D2) mit den dazugehörigen charakteristischen Parametern (CP1) zumindest mit einem Abschnitt des ersten Dokuments (D1) korreliert und daraus für jeden korrelierten Abschnitt des zweiten Dokuments (D2) als Ergebnis ein dazugehöriger Korrelationswert (KW1, KW2, KW3) gebildet wird, eine Kopie angezeigt wird, falls eine Mehrzahl der Korrelationswerte (KW1, KW2, KW3) größer als ein jeweiliger Schwellenwert (SW1, SW2, SW3) ist.
  5. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass mehrere Abschnitte des zweiten Dokuments (D2) mit den dazugehörigen charakteristischen Parametern (CP1) mit zumindest einem Abschnitt des ersten Dokuments (D2) korreliert und daraus für jeden korrelierten Abschnitt des zweiten Dokuments (D2) als Ergebnis ein dazugehöriger Korrelationswert (KW1, KW2, KW3) gebildet wird, eine Kopie angezeigt wird, falls zumindest einer der Korrelationswerte (KW1) größer als ein erster Schwellenwert (SW1) und die weiteren Korrelationswerte (KW2, KW3) jeweils größer als ein zweiter Schwellenwert (SW2) sind.
  6. Vorrichtung zum Nachweis einer Raubkopie, bei der eine erste Software (S1) eine Kopie von zumindest einem Teil einer zweiten Software (S2) umfasst, insbesondere zur Durchführen eines Verfahrens gemäß einem der vorhergehenden Ansprüche, mit – einem ersten Mittel (M1) zum Ausführen der ersten Software (S1), wobei bei einem während eines Prozedurwechsels stattfindenden Schreib- und/oder Lesevorgang einer Parametergruppe (PG) einer Prozedurinstanz (PI) auf einen und/oder von einem Stapelspeicher (SP) zumindest ein für diesen Schreib- und/oder Lesevorgang charakteristischer Parameter (CP1, ..., CP4) in einer für ein Auftreten der Schreib- und/oder Lesevorgänge zeitlichen Reihenfolge in einem ersten Dokument (D1) aufnehmbar ist; – einem zweiten Mittel (M2) zum Ausführen der zweiten Software (S2), wobei bei einem während eines Prozedurwechsels stattfindenden Schreib- und/oder Lesevorgang einer Parametergruppe (PG) einer Prozedurinstanz (PI) auf einen bzw. von einem Stapelspeicher (SP) zumindest ein für diesen Schreib- und/oder Lesevorgang charakteristischer Parameter (CP1, ..., CP4) in einer für ein Auftreten der Schreib- und/oder Lesevorgänge zeitlichen Reihenfolge in einem zweiten Dokument (D2) aufnehmbar ist; – einem dritten Mittel (M3) zum Bilden zumindest eines Korrelationswerts (KW) durch Korrelation zumindest einer der charakteristischen Parameter (CP1) zumindest eines Abschnitts des zweiten Dokuments (D2) mit zumindest einem der dazugehörigen charakteristischen Parameter (CP1) zumindest eines Abschnitts des ersten Dokuments (D2); – einem vierten Mittel (M4) zum Vergleichen des zumindest einen Korrelationswert (KW) mit zumindest einem Schwellenwert (SW); – einem fünften Mittel (M5) zum Anzeige eines Vorhandenseins der Raubkopie, falls der Korrelationswert (KW) größer als ein Schwellenwert (SW) ist.
DE102006004240A 2006-01-30 2006-01-30 Verfahren und Vorrichtung zum Nachweis einer Raubkopie Withdrawn DE102006004240A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102006004240A DE102006004240A1 (de) 2006-01-30 2006-01-30 Verfahren und Vorrichtung zum Nachweis einer Raubkopie
EP06793013A EP1979848A1 (de) 2006-01-30 2006-08-25 Verfahren und vorrichtung zum nachweis einer raubkopie
CN200680052033.4A CN101517585B (zh) 2006-01-30 2006-08-25 用于检测盗版复制品的方法和装置
PCT/EP2006/065680 WO2007085308A1 (de) 2006-01-30 2006-08-25 Verfahren und vorrichtung zum nachweis einer raubkopie

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102006004240A DE102006004240A1 (de) 2006-01-30 2006-01-30 Verfahren und Vorrichtung zum Nachweis einer Raubkopie

Publications (1)

Publication Number Publication Date
DE102006004240A1 true DE102006004240A1 (de) 2007-08-09

Family

ID=37671191

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102006004240A Withdrawn DE102006004240A1 (de) 2006-01-30 2006-01-30 Verfahren und Vorrichtung zum Nachweis einer Raubkopie

Country Status (4)

Country Link
EP (1) EP1979848A1 (de)
CN (1) CN101517585B (de)
DE (1) DE102006004240A1 (de)
WO (1) WO2007085308A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104424402B (zh) * 2013-08-28 2019-03-29 卓易畅想(北京)科技有限公司 一种用于检测盗版应用程序的方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6971019B1 (en) * 2000-03-14 2005-11-29 Symantec Corporation Histogram-based virus detection
US6973577B1 (en) * 2000-05-26 2005-12-06 Mcafee, Inc. System and method for dynamically detecting computer viruses through associative behavioral analysis of runtime state
WO2002082280A1 (fr) * 2001-04-05 2002-10-17 Ed-Contrive Inc. Procede pour interdire l'execution de programme d'application de copie non-autorisee, son programme, son appareil d'enregistrement de programmes et son support d'enregistrement de programmes
US7346780B2 (en) * 2002-04-03 2008-03-18 Microsoft Corporation Integrity ordainment and ascertainment of computer-executable instructions
US7287159B2 (en) * 2004-04-01 2007-10-23 Shieldip, Inc. Detection and identification methods for software

Also Published As

Publication number Publication date
CN101517585B (zh) 2012-10-10
EP1979848A1 (de) 2008-10-15
CN101517585A (zh) 2009-08-26
WO2007085308A1 (de) 2007-08-02

Similar Documents

Publication Publication Date Title
DE69909945T2 (de) Verfahren und Anordnung zur Korrelation von Profildaten dynamisch erzeugt durch ein optimiertes ausführbares Programm mit Quellcodeanweisungen
DE69918334T2 (de) Erzeugung von kompilierten programmen für interpretative laufzeitumgebungen
EP2095238B1 (de) Verfahren zum testen eines computerprogramms
DE69932371T2 (de) Verschiebbare Instrumentationskennzeichen für die Prüfung und die Fehlerbeseitigung eines Computerprogramms
DE60010420T2 (de) Automatisches Regressionstesten von Arbeitsplatz-Software
DE10233648A1 (de) Dynamischer Fehlerkorrekturcode mit variabler Länge
DE69905776T2 (de) Sprachenverarbeitungsverfahren mit geringem Aufwand und Speicherbedarf bei der Profildatensammlung
DE102016107718A1 (de) Auslesen von Fehlervektoren aus einer Speichereinheit
EP1067460B1 (de) Datenträger mit wiederherstellbarem Basisdatengrundzustand und Verfahren zu dessen Herstellung
WO2015086357A1 (de) Verfahren zur beeinflussung eines steuerprogramms eines steuergeräts
EP1622022A1 (de) Automatische Erzeugung von Testfällen
DE102006004240A1 (de) Verfahren und Vorrichtung zum Nachweis einer Raubkopie
DE102012210482A1 (de) Verfahren und System zum Migrieren von Geschäftsprozessinstanzen
DE102007015507B4 (de) Prozessor mit einem ersten und einem zweiten Betriebsmodus und Verfahren zu seinem Betrieb
DE102005033698A1 (de) Verfahren zum Export von Nutzungsrechten an elektronischen Datenobjekten
EP2990941B1 (de) Computerimplementiertes verfahren zur erzeugung eines steuergeräteprogrammcodes und diesbezügliche meldungsverwaltungsumgebung
EP1297425A2 (de) Verfahren und vorrichtung für die optimierung eines testprogramms
EP1505399B1 (de) Verfahren zum Erzeugen von Testdaten zum Austesten der Funktionsfähigkeit einer datenverarbeitenden Schaltung
DE10325513B4 (de) Verfahren und Vorrichtung zum Erstellen eines Verhaltensaspekts einer Schaltung zur formalen Verifikation
DE10325843A1 (de) Verfahren, Computer und Computerprogramm zum Verwalten von Resourcen zur Verwendung in einem resourcenbasierten Dokumentendatenstrom
DE10300541A1 (de) Erzeugen einer ausführbaren Datei
EP1675044A1 (de) Engineering-System für verteilte Entwicklung und Entwicklung durch mehrere Nutzer
DE2702586A1 (de) Schaltungsanordnung zur steuerung des speicherzugriffs fuer einen rechner
EP4036739A1 (de) Fehleranfälligkeit einer build-pipeline
EP0560342A1 (de) Verfahren zum Untersuchen des Ablaufs eines in einer Hardware-Beschreibungssprache geschriebenen Programms

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06F0012140000

Ipc: G06F0021120000

Effective date: 20121206

R081 Change of applicant/patentee

Owner name: UNIFY GMBH & CO. KG, DE

Free format text: FORMER OWNER: SIEMENS AKTIENGESELLSCHAFT, 80333 MUENCHEN, DE

Effective date: 20130314

Owner name: SIEMENS ENTERPRISE COMMUNICATIONS GMBH & CO. K, DE

Free format text: FORMER OWNER: SIEMENS AKTIENGESELLSCHAFT, 80333 MUENCHEN, DE

Effective date: 20130314

R082 Change of representative

Representative=s name: FRITZSCHE PATENTANWAELTE, DE

Effective date: 20130314

Representative=s name: FRITZSCHE PATENT, DE

Effective date: 20130314

R082 Change of representative

Representative=s name: FRITZSCHE PATENT, DE

R081 Change of applicant/patentee

Owner name: UNIFY GMBH & CO. KG, DE

Free format text: FORMER OWNER: SIEMENS ENTERPRISE COMMUNICATIONS GMBH & CO. KG, 81379 MUENCHEN, DE

Effective date: 20131111

R082 Change of representative

Representative=s name: FRITZSCHE PATENT, DE

Effective date: 20131111

Representative=s name: FRITZSCHE PATENTANWAELTE, DE

Effective date: 20131111

R016 Response to examination communication
R081 Change of applicant/patentee

Owner name: UNIFY GMBH & CO. KG, DE

Free format text: FORMER OWNER: UNIFY GMBH & CO. KG, 81379 MUENCHEN, DE

R082 Change of representative

Representative=s name: FRITZSCHE PATENTANWAELTE, DE

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee