EP1979848A1 - Method and device for the detection of a pirated copy - Google Patents

Method and device for the detection of a pirated copy

Info

Publication number
EP1979848A1
EP1979848A1 EP06793013A EP06793013A EP1979848A1 EP 1979848 A1 EP1979848 A1 EP 1979848A1 EP 06793013 A EP06793013 A EP 06793013A EP 06793013 A EP06793013 A EP 06793013A EP 1979848 A1 EP1979848 A1 EP 1979848A1
Authority
EP
European Patent Office
Prior art keywords
document
software
procedure
writing
characteristic parameters
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.)
Ceased
Application number
EP06793013A
Other languages
German (de)
French (fr)
Inventor
Bernhard Aghte
Gero BÄSE
Norbert Oertel
Marcel Wagner
Ivan Kopilovic
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 Enterprise Communications GmbH and Co KG
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 Enterprise Communications GmbH and Co KG filed Critical Siemens Enterprise Communications GmbH and Co KG
Publication of EP1979848A1 publication Critical patent/EP1979848A1/en
Ceased 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

Definitions

  • the invention relates to a method according to claim 1 and a device according to claim 6.
  • the invention is based on the object of specifying a method and a device with which an at least partial copy of a second software is detected in a first software, wherein the method and the device is both robust against changes of the copy as well as existing software applicable ,
  • This method makes it possible to prove a pirated copy of a second software or parts of a second software in a first software by recording characteristic parameters during the respective execution.
  • the correlation value it is possible, despite changes in the first software compared to the second software, to recognize the pirated copy because the correlation value describes a similarity between two sections of the first and the second software.
  • no changes are required in the first or second software since the recording or recording of the characteristic parameters can be carried out by means of a standalone program which evaluates functions of the operating system. Thus, even existing software can be examined for pirated copies.
  • a value of the parameter group and / or an export time of the Used procedure change.
  • specific behavioral properties of the procedure instance to be invoked and / or invoked can be accurately analyzed.
  • a time chart can be created indicating when the procedure change occurred.
  • a plurality of sections of the second document are correlated with the associated characteristic parameters with at least a portion of the first document and, as a result, an associated correlation value is formed for each correlated section of the second document and a copy displayed if a plurality of the correlation values are greater than a respective threshold is.
  • a reduction in a rate of erroneously detected pirate copies can be achieved because more than one correlation value is considered for determining whether piracy or not piracy.
  • Threshold and the other correlation values are each greater than a second threshold. This alternative also makes it possible to reduce pirated copies erroneously detected.
  • the invention also relates to a device for detecting a pirated copy, in which a first software comprises a copy of at least part of a second software, with
  • 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 operation in a time sequence for an occurrence of the writing and / or reading operations is recorded in a second document;
  • the method can be implemented and executed.
  • the method or the device can be implemented as hardware, as software running on a processor or as a combination of hardware and software.
  • Figure 1 is a program flow of a software in which a plurality of procedure units are called
  • Figure 2 shows an occupancy of a stack during a
  • FIG. 3 is a flow chart of an embodiment
  • Figure 5 shows an apparatus for performing the method for detecting a pirated copy.
  • FIGS. 1 to 5 Elements with the same function and mode of operation are provided in FIGS. 1 to 5 with the same reference numerals.
  • FIG. 1 shows a program sequence of a software.
  • the software is in the form of a sequence of machine instructions and is executed, for example, on a microprocessor or a digital signal processor.
  • This software The machine commands could be created by compiling and linking a C program using a development package, such as Microsoft Visual Studio.
  • the software can be divided into several procedure instances PI. Within each procedure instance PI, machine instructions are executed sequentially. In doing so, other procedure instances are called during or at the end of the respective procedure instance, i. a procedure change takes place. These calls cause data, such as register contents of the microprocessor, to be read from or written to a stack.
  • a second procedure instance PI2 is called during the course of a first procedure instance PI1.
  • the register contents of the microprocessor are written to the stack memory SP by means of the write operation SV at the time before the procedure change.
  • values of local variables of the first procedure instance PI1 can also be stored on the stack.
  • a parameter group PG of the procedure instance PI, PIl is written to or read from the stack SP.
  • the parameter group PG includes the register contents and local variables of the first procedure instance PIl.
  • the first procedure instance PIl represents a calling procedure instance and the second procedure instance PI2 represents a called procedure instance.
  • the individual machine instructions of the second procedure instance are processed.
  • the program flow returns to the first procedure instance PIl.
  • the data stored at the time of the procedure change from the first to the second procedure instance are read from the stack memory SP by means of the read operation LV.
  • These read data include, for example, register contents which are written to the corresponding registers of the microprocessor or also contents of local data which are assigned to the local variables of a procedure instance PI1.
  • a third procedure instance PI3 will be referred to in the following.
  • a write operation SV according to the above description takes place.
  • a fourth procedure instance PI4 is called, whereby again a writing process SV is executed.
  • the third process instance PI3 is jumped back, wherein a read operation is carried out.
  • This third procedure instance PI3 is continued until its end and then, with the aid of another read operation, the first procedure instance PI1 is called.
  • the data belonging to the respective procedure instances are written to the stack SP or read from the stack SP.
  • FIG. 2 a level diagram with the level F of the stack SP as a function of the flow of the software, that is, depending on the executed procedure instances reproduced.
  • the fill level F is indicated, for example, in bytes, with each graduation mark of the fill level F in FIG. 2 corresponding to 100 bytes in each case.
  • 250 bytes are written to the stack memory.
  • the 250 bytes are read from the stack.
  • the procedure is analogous.
  • the filling level diagram of the stack it can be seen that during a writing process the filling level of the stack increases, whereas in a reading process the filling level is reduced.
  • the method according to the invention detects characteristic parameters CP1,..., CP4 for those execution times AZ at which a procedure change takes place.
  • These characteristic parameters represent specific properties of the calling and / or the called procedure instance.
  • the characteristic parameters may, for example, correspond to one or more values of the parameter group PG, such as a specific register content.
  • a characteristic parameter can also be generated from a summary or evaluation of the parameter group PG detected for the procedure change.
  • a first characteristic parameter CP1 can correspond to a number of bytes of all local variables of the calling procedure instance PI1.
  • 250 bytes were written to the stack memory during the procedure change from PI1 to PI2.
  • These 250 bytes comprise, for example, 64 bytes, which include the register values, and 186
  • a detection of the parameter group PG is realized, for example, that when calling a function of the software that performs the read or write LV, SV, data of the calling and / or the called procedure instance, that is, the parameter group, are detected. Furthermore, in the context of carrying out the method, only a part of the parameter group or else information that is obtained by evaluating one or more data of the parameter group can be generated. The data or information obtained during a reading or writing process is stored in a document for later processing. Furthermore, it is useful in practice to log the execution time of the acquisition of this information or data for each stored information or stored data. In general, these information, which can be assigned to a procedure change, are referred to as characteristic parameters CP1,..., CP4.
  • FIG. 3 shows a flow diagram for one exemplary embodiment.
  • a first document D1 for the first software S1 is generated with the aid of the first step X1.
  • at least one first characteristic parameter CP1 for the procedure change in the first document D1 is detected in the first step X1.
  • the first document may include the level F of the stack SP over the time of executing the first software. This has already been explained in more detail with reference to FIG.
  • the first document can display level F over time in the following way:
  • Level F 0 250 0 400 The first line of this table indicates the execution times AZ over the time T, for example in milliseconds ms.
  • the second line reflects the level of the stack in bytes.
  • the level contains between 0 and 40 ms 0 bytes, between 40 and 80 ms 250 bytes etc.
  • a second document D2 is generated for the second software S2.
  • the procedure is analogous to the first step Xl.
  • the representation of the second document D2 is analogous to the first document D1.
  • a third step X3 at least one section of the second document D2 is correlated by at least one characteristic parameter CP1 of at least one section of the second document D2
  • Document Dl formed a correlation value KW.
  • the correlation value KW indicates to what extent correlated sections of the first and second documents D1, D2 are similar.
  • An exemplary procedure of the third step for forming the correlation value KW is explained in more detail below with reference to FIG.
  • FIG. 4A shows the progression of the fill level of the stack during execution of the first software over time T. This history is stored in the first document.
  • FIG. 4B shows a further course of the stack when executing the second software S2. This history is stored in the second document.
  • a first section Al is selected in the course of the filling level F from FIG. 4A. This selected first section Al is shown in FIG. 4C. Within the course of the filling level, which results when executing the second software S2, see FIG.
  • this first section A1 is now searched for.
  • statistical methods are familiar to a person skilled in the art with the aid of which the course of the fill level of the first section Al can be correlated with the fill level profile of FIG. 4B.
  • a high correlation value results at the time T 1.
  • correlation values that are 0 or small result.
  • the correlation value KW exceeds a predefinable threshold value SW at the first time Tl.
  • a fourth step at least one correlation value KW generated in the third step X3 is compared with a predefinable threshold value SW. If the correlation value KW is greater than the threshold value SW, the flowchart in the path J is continued. In this path, in a fifth step X5, for example, a user is notified that a correlation value greater than the threshold has been found. This means that at least part of the first software could be found in the second software S2 and thus at least parts of the first software were copied from the second software, i. a pirated copy has thus been discovered. The fifth step is then ended in the END state.
  • a portion of the course of the fill level of the stack when exporting the first software was compared with the course of the level during the export of the second software.
  • a section to be compared can also be used from the full-level profile of the second software instead of from the full-level profile of the first software. This is shown by way of example with a second section A2 in FIG. 4B.
  • at least a similarity of a portion of the first and second documents in the second or first document is sought.
  • the fill level of the stack has been used over the execution time of the respective software.
  • characteristic parameters CP1,..., CP4 can be used, which characterize a procedure change.
  • a number of variables of the called procedure instance, a number of bytes of variables of the called procedure instance, a number of local variables of a calling procedure instance, a number of local caller instance local variables, or a number of bytes of the local variables of the calling procedure instance are considered as characteristic parameters.
  • an indication can be used which indicates whether the procedure change corresponds to a recursive call or the respective memory addresses of the called and / or the procedure instance to be called are used.
  • 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.
  • Those skilled in the art are further statistical methods for performing correlations with one or more Reren characteristic parameters known, so that will not be discussed further. If a plurality of correlation values ⁇ KWl, KW2, KW3 used, so a pirated copy is ⁇ is shown, if a plurality of correlation values respectively GRO SSER than an associated threshold value. Next Zah ⁇ lenbeispiel illustrates this:
  • a pirated copy is already detected if at least one of the correlation values is greater than the associated threshold value. For the 2 examples mentioned in the above paragraph, this means that a pirated copy is detected for each example.
  • a selection of the threshold (s) SW, Sl, ..., SW3 depends on the following aspects:
  • the respective threshold near the maxima ⁇ len correlation value is selected. It should be noted that small changes, eg due to changes in machine instructions in sections or for runtime fluctuations during the Ausbowens the first and second software, a low correlation value that is a cu ⁇ engined similarity yields and thus copied sections or the Pirated copy is not detected.
  • 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, then cuts are recognized as copies that are not copies.
  • a concrete threshold value SW depends, for example, on the runtime behavior of a computer on which the first and second software are executed. If the computer uses a multitasking operating system, changes in the runtime behavior can occur, so that in this case a lower threshold value has to be set than with a real-time operating system.
  • Figure 5 shows an embodiment of the device in the form of a device G, which is designed for example as a portable device in a Mobilfunkgerat or as stationary operated device.
  • the device G has a first means M1, with which the first software S1 is executed.
  • characteristic parameters are recorded in a first document D1.
  • the second means M2 the second software S2 is executed.
  • characteristic parameters are recorded in a write and / or read operation of the parameter group of a procedure instance in a second document D2.
  • the second document can be read or written by means of the connection network X.
  • One or more correlation values KW1,..., KW3 are recorded in the third means M3 on the basis of the acquired information of the first and the second document.
  • correlation values are compared in the fourth means M4 with one or more predefinable threshold values SW1,..., SW4. Should one or more correlation values be greater than the respective threshold value, then with the aid of the fifth means M5 the presence of the copy, that is, at least portions of the first software with portions of the second software are almost or identical, are displayed.
  • This display can be reproduced, for example, for a user on a display DD.
  • the means Ml, ..., M5, the first and second document Dl, D2, the stack SP and the display DD are connected to each other via the connection network X for the exchange of information and data.

Abstract

The invention relates to a method for detecting a pirated copy in which first software comprises a copy of at least one portion of second software. Said method encompasses the following steps: the first software is executed, at least one parameter being included in a first document in a chronological sequence corresponding to the occurrence of writing and/or reading processes, in a process in which a group of parameters of a procedure entity are written and/or read to and/or from a stack, said writing and/or reading process taking place during a change in procedure; the second software is executed, at least one parameter being included in a second document in a chronological sequence corresponding to the occurrence of writing and/or reading processes, in a process in which a group of parameters of a procedure entity are written and/or read to and/or from a stack, said writing and/or reading process taking place during a change in procedure; 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 existence of the pirated copy is indicated if the correlation value is greater than a threshold value. The invention further relates to a device for carrying out said method.

Description

Beschreibungdescription
Verfahren und Vorrichtung zum Nachweis einer RaubkopieMethod and device for detecting pirated copy
Die Erfindung betrifft ein Verfahren gemäß dem Anspruch 1 sowie eine Vorrichtung gemäß dem Anspruch 6.The invention relates to a method according to claim 1 and a device according to claim 6.
Die Entwicklung von Software stellt bei der Herstellung von Produkten, wie zum Beispiel bei Mobiltelefonen oder bei Au- tos, einen erheblichen Kostenfaktor dar. Da Software aber leicht zu kopieren ist, beispielsweise durch Kopieren einer CD (CD - Compact Disc) , welche die zu kopierende Software um- fasst, 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 is a considerable cost factor in the manufacture of products such as mobile phones or cars. However, since software is easy to copy, for example, by copying a CD (Compact Disc), which the copying software, high turnover losses occur for software manufacturers. In addition to copying entire software packages, such as a complete operating system CD, parts of such software, such as individual dynamic link libraries (DLL - Dynamic Link Library) in other software products can be used as pirated copy.
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.The invention is based on the object of specifying a method and a device with which an at least partial copy of a second software is detected in a first software, wherein the method and the device is both robust against changes of the copy as well as existing software applicable ,
Diese Aufgabe wird durch die unabhängigen Ansprüche gelost. Weiterbildungen der Erfindung finden sich in den abhangigen Ansprüchen .This object is solved by the independent claims. 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) Ausfuhren der ersten Software, wobei bei einem wahrend 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 Lesevorgange zeitlichen Reihenfolge in einem ersten Dokument aufgenommen wird; b) Ausfuhren der zweiten Software, wobei bei einem wahrend 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 charakteristi- scher Parameter in einer für ein Auftreten der Schreib- und/oder Lesevorgange 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 großer als ein Schwellenwert ist.In a method for detecting a pirated copy, in which a first software comprises a copy of at least a part of a second software, the following steps are carried out: a) exports of the first software, wherein a write and / or read operation takes place during a procedure change Parameter group of a procedure instance on and / or from a stack at least one for this writing and / or reading operation of characteristic parameters is recorded in a chronological order for occurrence of the writing and / or reading operation in a first document; b) exports of the second software, wherein in a occurring during a procedure change writing and / or reading a parameter group of a procedure instance on one and / or from a stack at least one characteristic of this writing and / or reading process parameters in a for an occurrence of the writing and / or reading process in chronological order is recorded in a second document; 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 wahrend der jeweiligen Ausfuhrung 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 method makes it possible to prove a pirated copy of a second software or parts of a second software in a first software by recording characteristic parameters during the respective execution. In this case, on the one hand, by using the correlation value, it is possible, despite changes in the first software compared to the second software, to recognize the pirated copy because the correlation value describes a similarity between two sections of the first and the second software. On the other hand, no changes are required in the first or second software since the recording or recording of the characteristic parameters can be carried out by means of a standalone program which evaluates functions of the operating system. Thus, even existing software can be examined for pirated copies.
Vorzugsweise werden als charakteristischer Parameter ein Wert der Parametergruppe und/oder ein Ausfuhrungszeitpunkt 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 charakteristi- sehen Parameter der Parametergruppe benutzt werden:Preferably, a value of the parameter group and / or an export time of the Used procedure change. By using one of the values of the parameter group, specific behavioral properties of the procedure instance to be invoked and / or invoked can be accurately analyzed. Using the execution time, a time chart can be created indicating when the procedure change occurred. With the aid of these characteristic parameters, a characteristic behavior of the procedure instances can be described in detail. In particular, the following characteristic parameters of the parameter group can be used:
- Anzahl an Variablen einer aufgerufenen Prozedurinstanz;- number of variables of a called procedure instance;
- Anzahl an Bytes der Variablen der aufgerufenen Prozedurinstanz;- Number of bytes of the variables of the called procedure instance;
- Anzahl an lokalen Variablen einer aufrufenden Prozedurin- stanz;- number of local variables of a calling procedure instance;
- Anzahl an Bytes der lokalen Variablen der aufrufenden Prozedurinstanz;Number of bytes of the local variables of the calling procedure instance;
- Angabe, ob ein rekursiver Aufruf zwischen aufgerufener und aufzurufender Prozedurinstanz stattfindet; - Angabe einer jeweiligen Speicheradresse der aufgerufenen und/oder der aufzurufenden Prozedurinstanz.- 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 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 Be- tracht gezogen wird.Preferably, a plurality of sections of the second document are correlated with the associated characteristic parameters with at least a portion of the first document and, as a result, an associated correlation value is formed for each correlated section of the second document and a copy displayed if a plurality of the correlation values are greater than a respective threshold is. Thus, a reduction in a rate of erroneously detected pirate copies can be achieved because more than one correlation value is considered for determining whether piracy or not piracy.
In einer alternativen Weiterbildung werden mehrere Abschnitte des zweiten Dokuments mit den dazugehörigen charakteristi- sehen 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 zu- mindest einer der Korrelationswerte größer als ein ersterIn an alternative development, several sections of the second document with the associated characteristic see correlate parameters with at least a portion of the first document and, as a result, form an associated correlation value for each correlated portion of the second document and display a copy if at least one of the correlation values is greater than a first one
Schwellenwert und die weiteren Korrelationswerte jeweils größer als ein zweiter Schwellenwert sind. Diese Alternative ermöglicht auch eine Reduzierung irrtümlicherweise erkannter Raubkopien .Threshold and the other correlation values are each greater than a second threshold. This alternative also makes it possible to reduce pirated copies erroneously detected.
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, mitThe invention also relates to a device for detecting a pirated copy, in which a first software comprises a copy of at least part of a second software, with
- einem ersten Mittel zum Ausführen der ersten Software, wo- bei bei einem während eines Prozedurwechsels stattfindendena first means for executing the first software, at one during a procedure change taking place
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;Writing and / or reading a parameter group of a procedure instance on one and / or from a stack at least one characteristic of this writing and / or reading operation parameter in a chronological order for an occurrence of the writing and / or reading sequence in a first document is recorded ;
- einem zweiten Mittel zum Ausführen der zweiten Software, wobei bei einem während eines Prozedurwechsels stattfindenden Schreib- und/oder Lesevorgang einer Parametergruppe ei- ner 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;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 operation in a time sequence for an occurrence of the writing and / or reading operations 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;
- 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 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 the aid of this device, the method can be implemented and executed. The method or the device can be implemented as hardware, as software running on a processor or as a 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 explained below with reference to the drawing:
Es zeigen:Show it:
Figur 1 ein Programmablauf einer Software, bei dem mehrere Prozedureinheiten aufgerufen werden;Figure 1 is a program flow of a software in which a plurality of procedure units are called;
Figur 2 eine Belegung eines Stapelspeichers während einesFigure 2 shows an occupancy of a stack during a
Programmablaufs ;Program sequence;
Figur 3 ein Ablaufdiagramm eines Ausführungsbeispiels;FIG. 3 is a flow chart of an embodiment;
Figur 4 A, B, C, D Ausschnitte eines Füllstands des Stapelspeichers für eine erste bzw. eine zweite Software, ein zu suchendes Muster innerhalb der jeweiligenFigure 4 A, B, C, D sections of a level of the stack for a first and a second software, a pattern to be searched within the respective
Füllstandsverläufe des Stapelspeichers und Verteilung des Korrelationswerts über der Zeit;Fill levels of the stack and distribution of the correlation value over time;
Figur 5 eine Vorrichtung zur Durchführung des Verfahrens zum Nachweis einer Raubkopie.Figure 5 shows an apparatus for performing the method for detecting a pirated copy.
Elemente mit gleicher Funktion und Wirkungsweise sind in den Figuren 1 bis 5 mit denselben Bezugszeichen versehen.Elements with the same function and mode of operation are provided in FIGS. 1 to 5 with the same reference numerals.
In Figur 1 ist ein Programmablauf einer Software zu sehen.FIG. 1 shows a program sequence of a software.
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- wäre mit den Maschinenbefehlen kann durch Kompilieren und Linken eines C-Programms mit Hilfe eines Entwicklungspakets, beispielsweise dem Microsoft Visual Studio, erstellt werden.The software is in the form of a sequence of machine instructions and is executed, for example, on a microprocessor or a digital signal processor. This software The machine commands could be created by compiling and linking a C program using a development package, such as Microsoft Visual Studio.
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 Auf- rufe 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 several procedure instances PI. Within each procedure instance PI, machine instructions are executed sequentially. In doing so, other procedure instances are called during or at the end of the respective procedure instance, i. a procedure change takes place. These calls cause data, such as register contents of the microprocessor, to be read from or written to a stack.
Der Prozedurwechsel mit den Lese- und Schreibvorgängen LV, SV werden anhand der Figur 1 näher erläutert. Dabei wird während des Ablaufs einer ersten Prozedurinstanz PIl 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 PIl auf dem Stapelspeicher abgelegt werden. Im Allgemeinen wird eine Parametergruppe PG der Prozedurinstanz PI, PIl auf den bzw. von dem Stapelspeicher SP geschrieben bzw. gelesen. In diesem Ausführungsbeispiel um- fasst die Parametergruppe PG die Registerinhalte und lokale Variablen der ersten Prozedurinstanz PIl. Ferner stellt die erste Prozedurinstanz PIl eine aufrufende Prozedurinstanz und die zweite Prozedurinstanz PI2 eine aufgerufene Prozedurinstanz dar.The procedure change with the read and write operations LV, SV are explained in more detail with reference to FIG. In this case, a second procedure instance PI2 is called during the course of a first procedure instance PI1. In this case, the register contents of the microprocessor are written to the stack memory SP by means of the write operation SV at the time before the procedure change. Furthermore, values of local variables of the first procedure instance PI1 can also be stored on the stack. In general, a parameter group PG of the procedure instance PI, PIl is written to or read from the stack SP. In this embodiment, the parameter group PG includes the register contents and local variables of the first procedure instance PIl. Further, the first procedure instance PIl represents a calling procedure instance and the second procedure instance PI2 represents a called procedure instance.
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 PIl 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 PIl zugeordnet werden.After calling the second procedure instance PI2, the individual machine instructions of the second procedure instance are processed. Upon reaching the end of the second procedure instance PI2, the program flow returns to the first procedure instance PIl. In this case, the data stored at the time of the procedure change from the first to the second procedure instance are read from the stack memory SP by means of the read operation LV. These read data include, for example, register contents which are written to the corresponding registers of the microprocessor or also contents of local data which are assigned to the local variables of a procedure instance PI1.
Nachdem innerhalb der ersten Prozedurinstanz PIl 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 Prozedurin- stanz 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 Proze- durinstanz 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 PIl 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 Figur 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. DieAfter further machine instructions have been executed within the first procedure instance PI1, a third procedure instance PI3 will be referred to in the following. In this case, during the change from the first to the third procedure instance, a write operation SV according to the above description takes place. Within the third procedure instance, a fourth procedure instance PI4 is called, whereby again a writing process SV is executed. At the end of the program sequence of the fourth procedure instance PI4, the third process instance PI3 is jumped back, wherein a read operation is carried out. This third procedure instance PI3 is continued until its end and then, with the aid of another read operation, the first procedure instance PI1 is called. During the respective procedure changes, the data belonging to the respective procedure instances are written to the stack SP or read from the stack SP. These read and write operations LV, SV are shown symbolically in FIG. 1 with arrows, the jumps carried out during the program execution of the software being reproduced between the procedure instances PI with the aid of these arrows. The
Verwendung von Stapelspeichern sind einem Fachmann bekannt, siehe beispielsweise [I].Use of stacks are known to a person skilled in the art, see for example [I].
Mit Hilfe von Figur 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 PIl,..., PI4 wurden in dem Ausführungsbeispiel gemäß Figur 1 in der folgenden Reihenfolge aufgerufen:With the aid of FIG. 2, a filling level of the stack during the course of a software with the individual procedure instances over a time axis T will be explained in more detail below. The individual procedure instances PI1,..., PI4 were called in the embodiment according to FIG. 1 in the following order:
PIl -> PI2 -> PIl -> PI3 -> PI4 -> PI3 -> PIl. Diese Abfolge der einzelnen Prozedurinstanzen ist im unteren Bildteil von Figur 2 abgedruckt. Im oberen Bildteil der Figur 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 Figur 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.PIl -> PI2 -> PIl -> PI3 -> PI4 -> PI3 -> PIl. This sequence of the individual procedure instances is printed in the lower part of FIG. In the upper part of Figure 2, a level diagram with the level F of the stack SP as a function of the flow of the software, that is, depending on the executed procedure instances reproduced. The fill level F is indicated, for example, in bytes, with each graduation mark of the fill level F in FIG. 2 corresponding to 100 bytes in each case. Thus, for example, when the second procedure instance PI2 is called by the write operation SV, 250 bytes are written to the stack memory. Upon completion of the second procedure instance PI2, in the following read operation LV, the 250 bytes are read from the stack. In the subsequent procedure changes, the procedure is analogous. In the filling level diagram of the stack it can be seen that during a writing process the filling level of the stack increases, whereas in a reading process the filling level is reduced.
Das erfindungsgemäße Verfahren erfasst zu denjenigen Ausfüh- rungszeitpunkten AZ, an denen ein Prozedurwechsel stattfindet, charakteristische Parameter CPl,..., 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 er- fassten Parametergruppe PG generiert werden. Hierbei kann ein erster charakteristischer Parameter CPl einer Anzahl an Bytes aller lokalen Variablen der aufrufenden Prozedurinstanz PIl entsprechen. Im Ausführungsbeispiel gemäß Figur 1 wurden bei dem Prozedurwechsel von PIl nach PI2 250 Bytes auf den Stapelspeicher geschrieben. Diese 250 Bytes umfassen beispiels- weise 64 Bytes, welche die Registerwerte umfassen, und 186The method according to the invention detects characteristic parameters CP1,..., CP4 for those execution times AZ at which a procedure change takes place. These characteristic parameters represent specific properties of the calling and / or the called procedure instance. The characteristic parameters may, for example, correspond to one or more values of the parameter group PG, such as a specific register content. Furthermore, a characteristic parameter can also be generated from a summary or evaluation of the parameter group PG detected for the procedure change. In this case, a first characteristic parameter CP1 can correspond to a number of bytes of all local variables of the calling procedure instance PI1. In the exemplary embodiment according to FIG. 1, 250 bytes were written to the stack memory during the procedure change from PI1 to PI2. These 250 bytes comprise, for example, 64 bytes, which include the register values, and 186
Bytes, die Werte der lokalen Variablen der ersten Prozedurinstanz PIl beinhalten. Somit beschreibt der erste charakteristische Parameter CPl die Anzahl an Bytes der lokalen Variab- len der ersten Prozedurinstanz PIl, das heißt der aufrufenden Prozedurinstanz, welche im vorliegenden Ausführungsbeispiel CPl = 186 beträgt.Bytes containing values of the local variables of the first procedure instance PIl. Thus, the first characteristic parameter CP1 describes the number of bytes of the local variables. len of the first procedure instance PIl, that is the calling procedure instance, which in the present embodiment CPl = 186.
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 Informati- onen, die zu einem Prozedurwechsel zuordenbar sind, als charakteristische Parameter CPl,..., CP4 bezeichnet.A detection of the parameter group PG is realized, for example, that when calling a function of the software that performs the read or write LV, SV, data of the calling and / or the called procedure instance, that is, the parameter group, are detected. Furthermore, in the context of carrying out the method, only a part of the parameter group or else information that is obtained by evaluating one or more data of the parameter group can be generated. The data or information obtained during a reading or writing process is stored in a document for later processing. Furthermore, it is useful in practice to log the execution time of the acquisition of this information or data for each stored information or stored data. In general, these information, which can be assigned to a procedure change, are referred to as characteristic parameters CP1,..., CP4.
In Figur 3 ist ein Ablaufdiagramm für ein Ausführungsbeispiel dargestellt. Nach dem Start des Ablaufdiagramms im Zustand STA wird mit Hilfe des ersten Schritts Xl ein erstes Dokument Dl für die erste Software Sl erzeugt. In dem ersten Schritt Xl wird während des Ausführens der ersten Software Sl bei Schreib- und/oder Lesevorgängen zumindest ein erster charakteristischer Parameter CPl für den Prozedurwechsel in dem ersten Dokument Dl 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 Figur 2 näher erläutert worden. Das erste Dokument kann den Füllstand F über der Zeit in folgen- der Form wiedergeben:FIG. 3 shows a flow diagram for one exemplary embodiment. After the start of the flowchart in state STA, a first document D1 for the first software S1 is generated with the aid of the first step X1. During the execution of the first software S1 during writing and / or reading operations, at least one first characteristic parameter CP1 for the procedure change in the first document D1 is detected in the first step X1. For example, the first document may include the level F of the stack SP over the time of executing the first software. This has already been explained in more detail with reference to FIG. The first document can display level F over time in the following way:
Zeit T 0 40 80 100Time T 0 40 80 100
Füllstand F 0 250 0 400 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.Level F 0 250 0 400 The first line of this table indicates the execution times AZ over the time T, for example in milliseconds ms. The second line reflects the level of the stack in bytes. The level contains 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 Xl. Auch die Darstellung des zweiten Dokuments D2 ist analog zum ersten Dokument Dl. In einem dritten Schritt X3 wird durch Korrelation des zumindest einem charakteristischen Parameter CPl zumindest eines Abschnitts des zweiten Dokuments D2 mit zumindest einem der charakteris- tischen Parameter CPl zumindest eines Abschnitts des erstenIn a second step X2, a second document D2 is generated for the second software S2. The procedure is analogous to the first step Xl. The representation of the second document D2 is analogous to the first document D1. In a third step X3, at least one section of the second document D2 is correlated by at least one characteristic parameter CP1 of at least one section of the second document D2
Dokuments Dl ein Korrelationswert KW gebildet. Der Korrelationswert KW gibt an, inwieweit korrelierte Abschnitte des ersten und des zweiten Dokuments Dl, D2 ähnlich sind. Eine exemplarische Vorgehensweise des dritten Schritts zur Bildung des Korrelationswertes KW wird nachfolgend anhand von Figur 4 näher ausgeführt. Figur 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. Figur 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 Al im Verlauf des Füllstands F aus Figur 4A ausgewählt. Dieser ausgewählte erste Abschnitt Al ist in Figur 4C wiedergegeben. Innerhalb des Verlaufs des Füllstands, der sich beim Ausführen der zweiten Software S2 ergibt, siehe Figur 4B, wird nun dieser erste Abschnitt Al gesucht. Hierzu sind statistische Methoden einem Fachmann geläufig, mit Hilfe derer der Verlauf des Füllstands des ersten Abschnitts Al mit dem Füllstandsverlauf aus Figur 4B korreliert werden kann. Hierbei ergibt sich, wie in Figur 4D gezeigt, zum Zeitpunkt Tl ein hoher Korrelationswert. Zu den Zeitpunkten, die nicht dem ersten Zeitpunkt Tl entsprechen, ergeben sich Korrelationswerte, die 0 oder klein sind. Wie in Figur 4D zu sehen, überschreitet zum ersten Zeitpunkt Tl der Korrelationswert KW einen vorgebbaren Schwellenwert SW. Beispielsweise betragt der Schwellenwert SW = 0,5 und der Korrelationswert KW = 0,75. Somit ist in dem Fullstandsver- lauf, der beim Ausfuhren der zweiten Software S2 entsteht, ein ahnliches Verhalten der zweiten Software wie beim Ausfuhren der ersten Software entdeckt worden.Document Dl formed a correlation value KW. The correlation value KW indicates to what extent correlated sections of the first and second documents D1, D2 are similar. An exemplary procedure of the third step for forming the correlation value KW is explained in more detail below with reference to FIG. FIG. 4A shows the progression of the fill level of the stack during execution of the first software over time T. This history is stored in the first document. FIG. 4B shows a further course of the stack when executing the second software S2. This history is stored in the second document. To form the correlation value KW, a first section Al is selected in the course of the filling level F from FIG. 4A. This selected first section Al is shown in FIG. 4C. Within the course of the filling level, which results when executing the second software S2, see FIG. 4B, this first section A1 is now searched for. For this purpose, statistical methods are familiar to a person skilled in the art with the aid of which the course of the fill level of the first section Al can be correlated with the fill level profile of FIG. 4B. In this case, as shown in FIG. 4D, a high correlation value results at the time T 1. At the times that do not correspond to the first time Tl, correlation values that are 0 or small result. As can be seen in FIG. 4D, the correlation value KW exceeds a predefinable threshold value SW at the first time Tl. For example, the threshold SW = 0.5 and the correlation value KW = 0.75. Thus, a similar behavior of the second software as in the case of exports of the first software has been discovered in the filling level progression that arises during the export of the second software S2.
Wie in Figur 3 in einem vierten Schritt angegeben, wird zu- mindest der eine in dem dritten Schritt X3 erzeugte Korrelationswert KW mit einem vorgebbaren Schwellenwert SW verglichen. Ist der Korrelationswert KW groß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 groß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.As indicated in FIG. 3 in a fourth step, at least one correlation value KW generated in the third step X3 is compared with a predefinable threshold value SW. If the correlation value KW is greater than the threshold value SW, the flowchart in the path J is continued. In this path, in a fifth step X5, for example, a user is notified that a correlation value greater than the threshold has been found. This means that at least part of the first software could be found in the second software S2 and thus at least parts of the first software were copied from the second software, i. a pirated copy has thus been discovered. The fifth step is then ended in the END state.
Findet sich jedoch im vierten Schritt X4 kein Korrelationswert KW, der großer als der vorgebbare Schwellenwert SW ist, so wird das Ablaufdiagramm im Pfad N fortgesetzt, welcher das Ablaufdiagramm im Zustand END terminiert.If, however, in the fourth step X4 there is no correlation value KW which is greater than the predefinable threshold value SW, the flowchart continues in the path N which terminates the flowchart in the state END.
Im vorliegenden Ausfuhrungsbeispiel wurde ein Abschnitt des Verlaufs des Füllstands des Stapelspeichers beim Ausfuhren der ersten Software mit dem Verlauf des Füllstands beim Ausfuhren der zweiten Software verglichen. Im Allgemeinen kann ein zu vergleichender Abschnitt an Stelle aus dem Fullstands- verlauf der ersten Software auch aus dem Fullstandsverlauf der zweiten Software benutzt werden. Dies ist exemplarisch mit einem zweiten Abschnitt A2 in Figur 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 Dl durchge- fü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.In the present exemplary embodiment, a portion of the course of the fill level of the stack when exporting the first software was compared with the course of the level during the export of the second software. In general, a section to be compared can also be used from the full-level profile of the second software instead of from the full-level profile of the first software. This is shown by way of example with a second section A2 in FIG. 4B. In general, at least a similarity of a portion of the first and second documents in the second or first document is sought. Furthermore, in practice it is expedient to define a plurality of sections in the second document D2, for which a correlation with sections of the first document D1 is to be carried out. Only when a correlation value is found for several sections of the second document which is greater than a respectively definable threshold value SW, is the user informed in step X5 that the first software is a pirated copy of the second software.
Im Ausführungsbeispiel gemäß Figur 4 wurde der Füllstand des Stapelspeichers über der Ausführungszeit der jeweiligen Software verwendet. Im Allgemeinen können verschiedenste charakteristische Parameter CPl,..., 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 lo- kalen 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.In the embodiment according to FIG. 4, the fill level of the stack has been used over the execution time of the respective software. In general, a wide variety of characteristic parameters CP1,..., CP4 can be used, which characterize a procedure change. In addition to the level of the stack, a number of variables of the called procedure instance, a number of bytes of variables of the called procedure instance, a number of local variables of a calling procedure instance, a number of local caller instance local variables, or a number of bytes of the local variables of the calling procedure instance are considered as characteristic parameters. Furthermore, alternatively or additionally, as characteristic parameters an indication can be used which indicates whether the procedure change corresponds to a recursive call or the respective memory addresses of the called and / or the procedure instance to be called are used.
Ferner können auch Kombinationen von charakteristischen Para- metern 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 Korrelations¬ werte KWl, KW2, KW3 verwendet, so wird eine Raubkopie ange¬ zeigt, falls eine Mehrzahl an Korrelationswerten jeweils gro- ßer als ein dazugehöriger Schwellenwert ist. Folgendes Zah¬ lenbeispiel verdeutlicht dies:Furthermore, 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. Those skilled in the art are further statistical methods for performing correlations with one or more Reren characteristic parameters known, so that will not be discussed further. If a plurality of correlation values ¬ KWl, KW2, KW3 used, so a pirated copy is ¬ is shown, if a plurality of correlation values respectively GRO SSER than an associated threshold value. Next Zah ¬ lenbeispiel illustrates this:
KWl = 05,; KW2 = 0,3; KW3 = 0,25 SWl = 0,4; SW2 = 0,4; SW3 = 0,4KWl = 05; KW2 = 0.3; KW3 = 0.25 SWl = 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.Here, only the second correlation value KW2> SW2, so that no pirated copy is detected. If SW3 = 0.2, then KW2> SW2 and KW3> SW3. This will detect a pirate copy.
In einer alternativen Ausfuhrungsform wird eine Raubkopie bereits erkannt, falls zumindest einer der Korrelationswerte großer als der dazugehörige Schwellenwert ist. Für die im o- bigen 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 is greater than the associated threshold value. For the 2 examples mentioned in the above paragraph, this means that a pirated copy is detected for each example.
Eine Auswahl des bzw. der Schwellenwerte SW, Sl, ..., SW3 hangt von folgenden Aspekten ab:A selection of the threshold (s) SW, Sl, ..., SW3 depends on the following aspects:
a) Soll eine Übereinstimmung zwischen zu vergleichenden Ab- schnitten der ersten und der zweiten Software sehr genau sein, so wird der jeweilige Schwellenwert nahe dem maxima¬ len Korrelationswert gewählt. Hierbei ist zu beachten, dass kleine Änderungen, z.B. aufgrund von Änderungen der Maschinenbefehle in den Abschnitten oder wegen Laufzeit- Schwankungen wahrend des Ausfuhrens der ersten und zweiten Software, einen niedrigen Korrelationswert d.h. eine nied¬ rige Ähnlichkeit, ergibt und somit kopierte Abschnitte bzw. die Raubkopie nicht erkannt wird. b) Wird ein niedriger Schwellenwert SW als der maximale Kor- relationswert 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 to comparative sections by the first and second software to be very precise, the respective threshold near the maxima ¬ len correlation value is selected. It should be noted that small changes, eg due to changes in machine instructions in sections or for runtime fluctuations during the Ausfuhrens the first and second software, a low correlation value that is a cu ¬ engined similarity yields and thus copied sections or the Pirated copy is not detected. 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, then cuts are recognized as copies that are not 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-Ubereinstimmung 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 hangt 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 Lauf- zeitverhalten auftreten, so dass in diesem Fall ein niedrigerer Schwellenwert einzustellen ist, als bei einem Realtime Betriebssystem.For example, if the correlation value KW takes a value range of -1 to 1, where the value 1 represents exact match and the value -1 represents complete mismatch, then a value of KW = 0.8 results in a low rate of an indication an erroneously detected pirated copy and at the same time this value allows a tolerance against small changes in the machine code and against changes in the runtime behavior. A concrete threshold value SW depends, for example, on the runtime behavior of a computer on which the first and second software are executed. If the computer uses a multitasking operating system, changes in the runtime behavior can occur, so that in this case a lower threshold value has to be set than with a real-time operating system.
Figur 5 zeigt eine Ausfuhrungsform der Vorrichtung in Form eines Geräts G, welches beispielsweise als tragbares Gerat in einem Mobilfunkgerat oder als stationär betriebenes Gerat ausgeführt ist. Das Gerat G verfugt über ein erstes Mittel Ml, mit dem die erste Software Sl ausgeführt wird. Dabei werden wahrend des Prozedurwechsels bei Schreib- und/oder Lese- vorgangen charakteristische Parameter in einem ersten Dokument Dl aufgenommen. In dem zweiten Mittel M2 wird die zweite Software S2 ausgeführt. Wahrend des Ausfuhrens 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 KWl,..., KW3 erfasst. Diese ermittelten Korrelationswerte werden in dem vierten Mittel M4 mit einem oder mehreren vorgebbaren Schwellenwerten SWl,..., SW4 verglichen. Sollten ein oder mehrere Korrelationswerte groß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 Be- nutzer auf einem Display DD wiedergegeben werden. Die Mittel Ml,..., M5, das erste und zweite Dokument Dl, D2, der Stapelspeicher SP und das Display DD sind über das Verbindungsnetzwerk X zum Austausch von Informationen und Daten miteinander verbunden . Figure 5 shows an embodiment of the device in the form of a device G, which is designed for example as a portable device in a Mobilfunkgerat or as stationary operated device. The device G has a first means M1, with which the first software S1 is executed. During the procedure change during writing and / or reading processes, characteristic parameters are recorded in a first document D1. In the second means M2, the second software S2 is executed. During export, characteristic parameters are recorded in a write and / or read operation of the parameter group of a procedure instance in a second document D2. The second document can be read or written by means of the connection network X. One or more correlation values KW1,..., KW3 are recorded in the third means M3 on the basis of the acquired information of the first and the second document. These ascertained correlation values are compared in the fourth means M4 with one or more predefinable threshold values SW1,..., SW4. Should one or more correlation values be greater than the respective threshold value, then with the aid of the fifth means M5 the presence of the copy, that is, at least portions of the first software with portions of the second software are almost or identical, are displayed. This display can be reproduced, for example, for a user on a display DD. The means Ml, ..., M5, the first and second document Dl, D2, the stack SP and the display DD are connected to each other via the connection network X for the exchange of information and data.
Literaturliterature
[1] Stapelspeicher, Wikipedia-Enzyklopadie, siehe http: // de.wikipedia.org/wiki/stack [1] Stack, Wikipedia encyclopedia, see http://de.wikipedia.org/wiki/stack

Claims

Patentansprüche claims
1. Verfahren zum Nachweis einer Raubkopie, bei der eine erste Software (Sl) eine Kopie von zumindest einem Teil einer zwei- ten Software (S2) umfasst, mit folgenden Schritten: a) Ausführen der ersten Software (Sl), wobei bei einem während eines Prozedurwechsels stattfindenden Schreib- und/oder Lesevorgang einer Parametergruppe (PG) einer Prozedurinstanz (PI) auf einen und/oder von einem Stapelspei- eher (SP) zumindest ein für diesen Schreib- und/oder Lesevorgang charakteristischer Parameter (CPl, ..., CP4) in einer für ein Auftreten der Schreib- und/oder Lesevorgänge zeitlichen Reihenfolge in einem ersten Dokument (Dl) 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 Lese- Vorgang charakteristischer Parameter (CPl, ..., 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 Korre- lation zumindest einer der charakteristischen Parameter (CPl) zumindest eines Abschnitts des zweiten Dokuments (D2) mit zumindest einem der dazugehörigen charakteristischen Parameter (CPl) zumindest eines Abschnitts des ersten Dokuments (D2); d) Anzeige eines Vorhandenseins der Raubkopie, falls der Korrelationswert (KW) größer als ein Schwellenwert (SW) ist.1. A method for detecting a pirated copy, wherein a first software (Sl) comprises a copy of at least part of a second software (S2), comprising the following steps: a) executing the first software (Sl), wherein during a A read and / or write procedure of a parameter group (PG) of a procedure instance (PI) on one and / or from a batch memory (SP) takes place at least one parameter characteristic of this read and write operation (CPL, ...). , CP4) is recorded in a first order (Dl) in a chronological order for occurrence of the writing and / or reading operations; b) executing the second software (S2), wherein at least one of a parameter group (PG) of a procedure instance (PI) on one and / or of a stack memory (SP) is read and / or read during a procedure change. and / or reading operation of characteristic parameters (CP1, ..., CP4) is recorded in a chronological order for occurrence of the writing and / or reading operations in a second document (D2); c) forming at least one correlation value (KW) by correlating at least one of the characteristic parameters (CP1) of at least a portion of the second document (D2) with at least one of the associated characteristic parameters (CP1) of at least a portion of the first document (D2); d) indicating the presence of piracy if the correlation value (KW) is greater than a threshold value (SW).
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass als charakteristischer Parameter (CPl, ..., CP4) ein Wert der Parametergruppe (PG) oder ein Ausführungszeitpunkt (AZ) des Prozedurwechsels verwendet wird. 2. The method according to claim 1, characterized in that as a characteristic parameter (CPl, ..., CP4), a value of the parameter group (PG) or an execution time (AZ) of the procedure change is used.
3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass zumindest einer der folgenden Parameter von der Parametergruppe (PG) umfasst wird: - Anzahl an Variablen einer aufgerufenen Prozedurinstanz3. The method according to claim 2, characterized in that at least one of the following parameters of the parameter group (PG) is comprised: Number of variables of a called procedure instance
(PID ;(PID;
- Anzahl an Bytes der Variablen der aufgerufenen Prozedurinstanz (PIl) ;- Number of bytes of the variables of the called procedure instance (PIl);
- Anzahl an lokalen Variablen einer aufrufenden Prozedurin- stanz (PI2) ;- number of local variables of a calling procedure instance (PI2);
- Anzahl an Bytes der lokalen Variablen der aufrufenden Prozedurinstanz (PI2);Number of bytes of the local variables of the calling procedure instance (PI2);
- Angabe, ob ein rekursiver Aufruf zwischen aufgerufener und aufzurufender Prozedurinstanz (PIl, PI2) stattfindet; - Angabe einer jeweiligen Speicheradresse der aufgerufenen und/oder der aufzurufenden Prozedurinstanz (PIl, PI2) .- Specifies whether a recursive call takes place between called and called procedure instance (PIl, PI2); - Specification of a respective memory address of the called and / or the procedure instance to be called (PIl, 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 (CPl) zumindest mit einem Abschnitt des ersten Dokuments (Dl) korreliert und daraus für jeden korrelierten Abschnitt des zweiten Dokuments (D2) als Ergebnis ein dazugehöriger Korrelationswert (KWl, KW2, KW3) gebildet wird, eine Kopie angezeigt wird, falls eine Mehrzahl der Korrelationswerte (KWl, KW2, KW3) größer als ein jeweiliger Schwellenwert (SWl, SW2, SW3) ist.4. Method according to one of claims 1 to 3, characterized in that several sections of the second document (D2) with the associated characteristic parameters (CPI) correlate at least with a section of the first document (D1) and therefrom for each correlated section of the second Document (D2) is formed as a result of a corresponding correlation value (KWl, KW2, KW3), a copy is displayed if a plurality of the correlation values (KWl, KW2, KW3) is greater than a respective threshold (SWl, SW2, SW3).
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 (CPl) 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 (KWl, KW2, KW3) gebildet wird, eine Kopie angezeigt wird, falls zumindest einer der Korrelationswerte (KWl) größer als ein erster Schwellenwert (SWl) und die weiteren Korrelationswerte (KW2, KW3) jeweils größer als ein zweiter Schwellenwert (SW2) sind.5. Method according to one of claims 1 to 3, characterized in that several sections of the second document (D2) with the associated characteristic parameters (CPl) correlate with at least a section of the first document (D2) and therefrom for each correlated section of the second Document (D2) is formed as the result of an associated correlation value (KW1, KW2, KW3), a copy is displayed if at least one of the correlation values (KWl) is greater than a first threshold value (SW1) and the further correlation values (KW2, KW3) are each greater than a second threshold value (SW2).
6. Vorrichtung zum Nachweis einer Raubkopie, bei der eine erste Software (Sl) eine Kopie von zumindest einem Teil einer zweiten Software (S2) umfasst, insbesondere zur Durchführen eines Verfahrens gemäß einem der vorhergehenden Ansprüche, mit6. An apparatus for detecting a pirated copy, wherein a first software (Sl) comprises a copy of at least part of a second software (S2), in particular for carrying out a method according to one of the preceding claims, with
- einem ersten Mittel (Ml) zum Ausführen der ersten Software (Sl), 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 diesena first means (M1) for executing the first software (S1), wherein, during a read and write operation of a parameter change (PG) of a procedure instance (PI) to and / or from a stack memory (SP) at least one for this one
Schreib- und/oder Lesevorgang charakteristischer Parameter (CPl, ..., CP4) in einer für ein Auftreten der Schreib- und/oder Lesevorgänge zeitlichen Reihenfolge in einem ersten Dokument (Dl) 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 (CPl, ..., CP4) in einer für ein Auftreten der Schreib- und/oder Lesevorgänge zeitlichen Reihenfolge in einem zweiten Dokument (D2) aufnehmbar ist;Write and / or read operation of characteristic parameters (CPl, ..., CP4) in a chronological order for an occurrence of the writing and / or reading sequence in a first document (Dl) is receivable; - A second means (M2) for executing the second software (S2), wherein at a taking place during a procedure change writing and / or reading a parameter group (PG) of a procedure instance (PI) to or from a stack (SP) at least a parameter (CP1,..., CP4) characteristic of this writing and / or reading operation can be recorded in a second document (D2) in a chronological order for an occurrence of the writing and / or reading operations;
- einem dritten Mittel (M3) zum Bilden zumindest eines Korre- lationswerts (KW) durch Korrelation zumindest einer der charakteristischen Parameter (CPl) zumindest eines Abschnitts des zweiten Dokuments (D2) mit zumindest einem der dazugehörigen charakteristischen Parameter (CPl) 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. a third means (M3) for forming at least one correlation value (KW) by correlating at least one of the characteristic parameters (CP1) of at least a portion of the second document (D2) with at least one of the associated characteristic parameters (CP1) of at least a portion of the first document (D2); a fourth means (M4) for comparing the at least one correlation value (KW) with at least one threshold value (SW); a fifth means (M5) for indicating a presence of piracy if the correlation value (KW) is greater than a threshold value (SW).
EP06793013A 2006-01-30 2006-08-25 Method and device for the detection of a pirated copy Ceased EP1979848A1 (en)

Applications Claiming Priority (2)

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

Publications (1)

Publication Number Publication Date
EP1979848A1 true EP1979848A1 (en) 2008-10-15

Family

ID=37671191

Family Applications (1)

Application Number Title Priority Date Filing Date
EP06793013A Ceased EP1979848A1 (en) 2006-01-30 2006-08-25 Method and device for the detection of a 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)

* Cited by examiner, † Cited by third party
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)

* 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
CN100388243C (en) * 2001-04-05 2008-05-14 玉帝·空来富有限公司 Method for preventing unauthorized copy application program execution, its program, 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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Immer unterwegs", INTERNET CITATION, 1 April 2005 (2005-04-01), XP007912770, Retrieved from the Internet <URL:http://www.linux-magazin.de/Heft-Abo/Ausgaben/2005/04/Auf-der-Pirsch/ (offset)/4> [retrieved on 20100421] *

Also Published As

Publication number Publication date
CN101517585B (en) 2012-10-10
WO2007085308A1 (en) 2007-08-02
DE102006004240A1 (en) 2007-08-09
CN101517585A (en) 2009-08-26

Similar Documents

Publication Publication Date Title
DE69918334T2 (en) GENERATION OF COMPILED PROGRAMS FOR INTERPRETATE TIME ENVIRONMENTS
DE69831708T2 (en) Efficient detection of computer viruses and other data properties
DE10050684B4 (en) Method and system for periodic tracing for call sequences between routines
DE69909945T2 (en) Method and arrangement for correlating profile data dynamically generated by an optimized executable program with source code instructions
DE3121599A1 (en) METHOD AND CIRCUIT ARRANGEMENT FOR HIDDEN ERRORS IN A DIGITAL VIDEO SIGNAL
DE19959758A1 (en) Establishment method for type and accuracy of local variables for computer sub routines,
DE69930143T2 (en) EXTRACT ADDITIONAL DATA IN AN INFORMATION SIGNAL
DE10234736A1 (en) System and method for synchronizing media data
DE10240883A1 (en) Method of capturing unlimited growth of linked lists in a running application
DE4130632A1 (en) METHOD FOR RECOGNIZING THE SPOKEN WORDS IN A VOICE SIGNAL
EP1067460A1 (en) Recording carrier with recoverable initial state base data and process for its production
DE102018214541A1 (en) METHOD AND DEVICE FOR SHAPING SINGLE-STATIC ASSIGNMENT INSTRUCTIONS ON A DATA FLOW GRAPHIC IN A DATA FLOW ARCHITECTURE
EP1979848A1 (en) Method and device for the detection of a pirated copy
DE1965507A1 (en) Procedure for retrieving stored information
WO2003094093A2 (en) Comparison of processing protocols
DE102009041098A1 (en) A method of identifying a computer program section contained in a computer storage system
DE60315522T2 (en) CLICK NOISE DETECTION IN A DIGITAL AUDIO SIGNAL
WO2007009859A1 (en) Method for exporting rights to use to electronic data objects
DE10325843B4 (en) A method, printing system, computer and computer program for managing resources for use in a resource-based document data stream
EP1505399B1 (en) Method for Generating Test Data for functional test of data processing circuits
EP0708941B1 (en) Process for testing an object-oriented programme
DE102013021924A1 (en) Systems and methods for debugging model-based message sequences
DE10300541A1 (en) Workable data file generation method, involves dividing target name into parts at given points
DE2516909C2 (en) Data processing system for processing nested programs
DE2702586A1 (en) CIRCUIT ARRANGEMENT FOR CONTROLLING MEMORY ACCESS FOR A COMPUTER

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080707

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): DE FR GB IT SE

17Q First examination report despatched

Effective date: 20081107

DAX Request for extension of the european patent (deleted)
RBV Designated contracting states (corrected)

Designated state(s): DE FR GB IT SE

APBK Appeal reference recorded

Free format text: ORIGINAL CODE: EPIDOSNREFNE

APBN Date of receipt of notice of appeal recorded

Free format text: ORIGINAL CODE: EPIDOSNNOA2E

APBR Date of receipt of statement of grounds of appeal recorded

Free format text: ORIGINAL CODE: EPIDOSNNOA3E

APAF Appeal reference modified

Free format text: ORIGINAL CODE: EPIDOSCREFNE

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: UNIFY GMBH & CO. KG

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

APBT Appeal procedure closed

Free format text: ORIGINAL CODE: EPIDOSNNOA9E

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20150316