DE102006004240A1 - Method and device for detecting pirated copy - Google Patents
Method and device for detecting pirated copy Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 135
- 230000008859 change Effects 0.000 claims abstract description 27
- 230000008569 process Effects 0.000 claims abstract description 13
- 230000002596 correlated effect Effects 0.000 claims description 8
- 230000006399 behavior Effects 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 230000018109 developmental process Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000007619 statistical method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 210000002023 somite Anatomy 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000000007 visual effect Effects 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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
-
- 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]
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/566—Dynamic 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 ...The invention relates to a method for detecting a pirated copy, in which a first software comprises a copy of at least part of a second software, the following steps are carried out in which the first software is executed, with a write and / or change taking place during a procedure change. or reading process of a parameter group of a procedure instance to and / or from a stack memory at least one parameter characteristic of this writing and / or reading process is recorded in a first document in a chronological order for the occurrence of the writing and / or reading processes, the second software is carried out, with a write and / or read process of a parameter group of a procedure instance to or from a stack memory taking place during a procedure change at least one parameter characteristic of this write and / or read process in a for an occurrence of the write and / or Read processes timed chen sequence is recorded in a second document, the at least one correlation value is formed by correlating at least one of the characteristic parameters of at least one section of the second document with at least one of the associated characteristic parameters of at least one section of the first document and the presence of the pirated copy is indicated if the correlation value is greater than a threshold value. The invention also relates to a ...
Description
Die Erfindung betrifft ein Verfahren gemäß dem Anspruch 1 sowie eine Vorrichtung gemäß dem Anspruch 6.The The invention relates to a method according to claim 1 and a Device according to the claim 6th
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.The Development of software poses in the manufacture of products, such as cell phones or cars, a significant Cost factor dar. Since software is easy to copy, for example by copying a CD (Compact Disc Disc), which includes the software to be copied, are created for software manufacturers high sales losses. Besides copying entire software packages, such as a complete operating system CD, too Parts of such software, such as single Dynamic Link Libraries (DLL - Dynamic Link Library) in other software products as pirated copy become.
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.Of the The invention is based on the object, a method and a device to provide an at least partial copy of a second Software is detected in a first software, the procedure and the device is both robust to changes in the copy as well applicable to existing software.
Diese Aufgabe wird durch die unabhängigen Ansprüche gelöst. Weiterbildungen der Erfindung finden sich in den abhängigen Ansprüchen.These Task is by the independent claims solved. Further developments of the invention can be found in the dependent claims.
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.
- a) executing the first software, wherein in a occurring during a procedure change writing and / or reading a parameter group of a procedure instance on and / or from a stack at least one characteristic of this writing and / or reading operation parameters in one for an occurrence of Write and / or read temporal order is recorded in a first document;
- b) executing the second software, wherein at a taking place during a procedure change writing and / or reading a parameter group of a procedure instance on and / or. at least one parameter characteristic of this writing and / or reading process is recorded in a second document by a stack memory in a chronological order for an occurrence of the writing and / or reading operations;
- c) forming at least one correlation value by correlating at least one of the characteristic parameters of at least a portion of the second document with at least one of the associated characteristic parameters of at least a portion of the first document;
- d) indicating the presence of piracy if the correlation value is greater than a threshold.
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.This Procedure allows a pirated copy of a second software or parts of a second software in a first software by recording characteristic parameters while the respective execution demonstrated. This is done by using the correlation value allows that despite changes in the first software opposite the second software the pirated copy is nevertheless recognized, because of the Correlation value a similarity describes two sections of the first and the second software. On the other hand, there are no changes in the first or second software required because the recording or capture of the characteristic Parameter by means of a stand-alone Program, which evaluates functions of the operating system, take place can. Thus, even existing software can be examined for pirated copies.
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.
- - number of variables of a called procedure instance;
- - Number of bytes of the variables of the called procedure instance;
- - number of local variables of a calling procedure instance;
- Number of bytes of the local variables of the calling procedure instance;
- - Specifies whether a recursive call takes place between the called and the invoked procedure instance;
- - Specification of a respective memory address of the called and / or the procedure instance to be called.
Diese charakteristischen Parameter der Parametergruppe können in einfacher Weise bei dem Prozedurwechsel erfasst werden.These characteristic parameters of the parameter group can be found in be easily detected at the procedure change.
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.Preferably be several sections of the second document with the associated characteristic Parameters correlated at least with a portion of the first document and from it for each correlated section of the second document as a result an associated Correlation value formed and a copy displayed, if a plurality the correlation values are greater than is a respective threshold. Thus, a reduction of a Rate of erroneously detected pirated copies can be achieved because more than one correlation value for the Determining whether pirated or not pirated is considered becomes.
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.In an alternative training will be several sections of the second Document with the corresponding Characteristic parameters with at least a portion of first document correlates and therefrom for each correlated section of the second document, as a result, an associated correlation value is formed and display a copy if at least one of the correlation values greater than a first threshold and the other correlation values, respectively greater than a second threshold. This alternative also allows a reduction by mistake detected pirated copies.
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.
- A first means for executing the first software, wherein during a procedure change takes place writing and / or reading operation of a parameter group of a procedure instance on and / or from a stack at least one characteristic of this writing and / or reading operation parameters in a for an occurrence of the writing and / or reading operations in chronological order is recorded in a first document;
- A second means for executing the second software, wherein, during a write and / or read operation of a parameter group of a procedure instance to and / or from a stack memory, at least one parameter characteristic of this writing and / or reading process is stored in one for a an occurrence of the writing and / or reading in chronological order is recorded in a second document;
- A third means for forming at least one correlation value by correlating at least one of the characteristic parameters of at least a portion of the second document with at least one of the associated characteristic parameters of at least a portion of the first document;
- A fourth means for comparing the at least one correlation value with at least one threshold value;
- - a fifth means for indicating the presence of the pirated copy, if the correlation value is greater than a threshold value.
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.With Using this device, the method is implementable and executable. The Method and the device can as hardware, as software running on a processor or as Combination of hardware and software.
Die Erfindung und ihre Weiterbildungen werden nachfolgend anhand der Zeichnung näher erläutert:The Invention and its developments are described below with reference to the Drawing closer explains:
Es zeigen:It demonstrate:
Elemente
mit gleicher Funktion und Wirkungsweise sind in den
In
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.The Software can be divided into multiple procedure instances PI. Within each procedure instance PI, machine instructions become sequential executed. It will be during or other procedure instances at the end of each procedure instance called, i. a procedure change takes place. These calls cause data, such as register contents of the microprocessor read or written from one or to a stack become.
Der
Prozedurwechsel mit den Lese- und Schreibvorgängen LV, SV werden anhand der
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.To Calling the second procedure instance PI2 will be the individual machine commands the second procedure instance processed. Upon reaching the end the second procedure instance PI2 returns the program flow to the first Procedure instance PI1 back. At the time of the procedure change from the first to the second procedure instance stored data from the stack SP read by reading LV. These read data include For example, register contents contained in the corresponding registers written by the microprocessor or even local content Data associated with the local variables of a procedure instance PI1 become.
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
Mit
Hilfe von
PI1 → PI2 → PI1 → PI3 → PI4 → PI3 → PI1.With the help of
PI1 → PI2 → PI1 → PI3 → PI4 → PI3 → PI1.
Diese
Abfolge der einzelnen Prozedurinstanzen ist im unteren Bildteil
von
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äß
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.A Detecting the parameter group PG is realized, for example, by that when calling a function of the software that the read or Write operation LV, SV performs, Data of the calling and / or the called procedure instance, this means the parameter group, are detected. Furthermore, in the context of the implementation of the Method only a part of the parameter group or also an information, by evaluating one or more data of the parameter group is obtained. The one in a read or write obtained data or information are in a document for later further processing organized. Furthermore, it is useful in practice, too each stored information or stored data the execution time the recording of this information or data to log. In general, this information becomes a procedure change can be assigned, referred to as characteristic parameters CP1, ..., CP4.
In
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.The first line of this table gives the execution times AZ above the Time T for example in milliseconds ms. The second line reflects the level the stack in bytes again. This includes the level between 0 and 40 ms 0 bytes, between 40 and 80 ms 250 bytes etc.
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
Wie
in
Wie
in
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.finds However, in the fourth step X4 no correlation value KW, the greater than is the predetermined threshold SW, the flowchart becomes continued in the path N, which the flowchart in the state END terminated.
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
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.Of Furthermore, it is useful in practice, several sections in the second document D2 for which there is a correlation with Sections of the first document D1 should be performed. Only when for many Sections of the second document a correlation value is found the bigger than is a definable threshold SW, in step X5 the user is shown that the first software is a pirated copy of the second software.
Im
Ausführungsbeispiel
gemäß
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,4Furthermore, combinations of characteristic parameters can also be taken into account in the formation of the correlation value. For example, in addition to the pure level of the stack, a number of variables of the called procedure instance are taken into account. Thus, the correlation value describes a correlation of a plurality of characteristic parameters, which are correlated separately, for example, and linked to a correlation value by means of a weighted addition. The skilled person is familiar with further statistical methods for carrying out correlations with one or more characteristic parameters, so that this will not be discussed further. If a plurality of correlation values KW1, KW2, KW3 are used, a pirated copy is displayed if a plurality of correlation values are each greater than an associated threshold value. The following numerical example illustrates this:
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 this connection is only the second correlation value KW2> SW2, so that no pirated copy is detected becomes. If SW3 = 0.2, then KW2> SW2 and KW3> SW3. So a pirate copy is detected.
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.In an alternative embodiment a pirated copy is already detected if at least one of the correlation values greater than the associated one Threshold is. For the 2 examples mentioned in the above paragraph mean that for each Example, a pirated copy is detected.
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.
- a) If a match between sections of the first and the second software to be compared is to be very accurate, the respective threshold value is chosen close to the maximum correlation value. It should be noted that small changes, eg due to changes in the machine instructions in the sections or due to runtime fluctuations during the execution of the first and second software, a low correlation value ie a low similarity results, and thus copied sections or pirated copy is not recognized ,
- b) If a low threshold SW is selected as the maximum correlation value, pirate copies can be detected even if changes occur in the runtime behavior of the sections of the first and second software. If the threshold is set too low, sections will be recognized as copies that are not actually copies.
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.takes the correlation value KW, for example, a value range of -1 to 1 a, where the value is 1 exact match and the value -1 full Disagreement represents, for example, a value of KW = 0.8 a low rate with an indication of one mistakenly detected pirated copy and at the same time this value allows a tolerance against small changes in machine code and against changes in the runtime behavior. A concrete threshold SW depends, for example. from the runtime behavior of a computer on which the first and run second software becomes. If the computer uses a multitasking operating system, then can changes occur in runtime behavior, so that in this case a lower Threshold is set as with a real-time operating system.
Literaturliterature
- [1] Stapelspeicher, Wikipedia-Enzyklopädie, siehe http://de.wikipedia.org/wiki/stack[1] Stack Memory, Wikipedia Encyclopedia, see http://de.wikipedia.org/wiki/stack
Claims (6)
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102006004240A DE102006004240A1 (en) | 2006-01-30 | 2006-01-30 | Method and device for detecting pirated copy |
PCT/EP2006/065680 WO2007085308A1 (en) | 2006-01-30 | 2006-08-25 | Method and device for the detection of a pirated copy |
CN200680052033.4A CN101517585B (en) | 2006-01-30 | 2006-08-25 | Method and device for the detection of a pirated copy |
EP06793013A EP1979848A1 (en) | 2006-01-30 | 2006-08-25 | Method and device for the detection of a pirated copy |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE102006004240A DE102006004240A1 (en) | 2006-01-30 | 2006-01-30 | Method and device for detecting pirated copy |
Publications (1)
Publication Number | Publication Date |
---|---|
DE102006004240A1 true DE102006004240A1 (en) | 2007-08-09 |
Family
ID=37671191
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102006004240A Withdrawn DE102006004240A1 (en) | 2006-01-30 | 2006-01-30 | Method and device for detecting pirated copy |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP1979848A1 (en) |
CN (1) | CN101517585B (en) |
DE (1) | DE102006004240A1 (en) |
WO (1) | WO2007085308A1 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104424402B (en) * | 2013-08-28 | 2019-03-29 | 卓易畅想(北京)科技有限公司 | It is a kind of for detecting the method and device of pirate application program |
Family Cites Families (5)
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 |
EP1387280A1 (en) * | 2001-04-05 | 2004-02-04 | Ed-Contrive Inc. | Method for preventing unauthorized copy application program execution, its program, its program recording apparatus, and its program recording medium |
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 |
-
2006
- 2006-01-30 DE DE102006004240A patent/DE102006004240A1/en not_active Withdrawn
- 2006-08-25 CN CN200680052033.4A patent/CN101517585B/en not_active Expired - Fee Related
- 2006-08-25 EP EP06793013A patent/EP1979848A1/en not_active Ceased
- 2006-08-25 WO PCT/EP2006/065680 patent/WO2007085308A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2007085308A1 (en) | 2007-08-02 |
CN101517585B (en) | 2012-10-10 |
EP1979848A1 (en) | 2008-10-15 |
CN101517585A (en) | 2009-08-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE69909945T2 (en) | Method and arrangement for correlating profile data dynamically generated by an optimized executable program with source code instructions | |
DE69918334T2 (en) | GENERATION OF COMPILED PROGRAMS FOR INTERPRETATE TIME ENVIRONMENTS | |
EP2095238B1 (en) | Method for testing a computer programme | |
DE69932371T2 (en) | Movable instrumentation tags for testing and troubleshooting a computer program | |
DE112008003732T5 (en) | Automatic Reproduction Test Device and Automatic Reproduction Test Procedure in an Embedded System | |
DE69905776T2 (en) | Language processing method with little effort and storage space for profile data collection | |
DE102016107718A1 (en) | Reading out error vectors from a memory unit | |
DE3850444T2 (en) | Program management process for distributed processing systems and customized device. | |
DE69807021T2 (en) | Method and device for implementing multiple return points | |
EP1067460B1 (en) | Recording carrier with recoverable initial state base data and process for its production | |
EP1622022A1 (en) | Automatic generation of test cases | |
DE102006004240A1 (en) | Method and device for detecting pirated copy | |
DE102012210482A1 (en) | Method and system for migrating business process instances | |
WO2000043885A1 (en) | Method for tracing data | |
DE102005041672A1 (en) | Single instruction/multiple data processor architecture for storing and processing e.g. audio data, has address-memory arrangement that stores access addresses, where original data is stored as data depending on access addresses | |
DE102007015507B4 (en) | Processor with first and second modes of operation and method of operation | |
DE102005033698A1 (en) | Method for exporting usage rights to electronic data objects | |
WO2001098901A2 (en) | Method and device for optimising a test programme | |
EP1505399B1 (en) | Method for Generating Test Data for functional test of data processing circuits | |
DE10325513B4 (en) | Method and apparatus for creating a behavioral aspect of a formal verification circuit | |
DE10325843A1 (en) | Management of resource data in a document data stream for a computerized printing system, whereby resources are uniquely identified to enable their single or multiple calling in a variable document data stream | |
DE10300541A1 (en) | Workable data file generation method, involves dividing target name into parts at given points | |
DE102021128101A1 (en) | Method for generating program code, method for configuring a control device and computer system | |
EP1675044A1 (en) | Engineering system for distributed multi-user development | |
DE2702586A1 (en) | CIRCUIT ARRANGEMENT FOR CONTROLLING MEMORY ACCESS FOR A COMPUTER |
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 |