US6282698B1
Expired / Lapsed
US
⏱️ 0.0 years remaining
Detecting similarities in Java sources from bytecodes
Assignee: Nokia of America Corp
•
Filing: 1998-12-04
•
Granted: 2001-08-28
•
Expires: 2018-12-04
Abstract
Abstract A technique for detecting similarities in large sets of binary code files, e.g., bytecode files, without requiring access or knowledge of the actual source code itself. In accordance with the technique, bytecode files are disassembled and preprocessed using positional encoding to prepare the disassembled bytecode files for use in conjunction with similarity detection tools.
Inventors
- 👤 Brenda Sue Baker
- 👤 Udi Manber
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-08 13:37
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/70; G06F8/75
Claims Analysis
Total Claims: 19
Claim 1
Independent Claim
121 words
A method of detecting similarities between a plurality of bytecode files, the method comprising: disassembling each bytecode file of the plurality of bytecode files to form a plurality of disassembled bytecode files; applying a lexical analyzer to at least one disassembled bytecode file, the applying the lexical analyzer operation further comprising: separating at least one disassembled bytecode file into a plurality of parameter tokens and a plurality of non-parameter tokens; and computing a offset for at least one parameter token of the plurality of parameter tokens; positionally encoding each disassembled bytecode file of the plurality of disassembled bytecode files; and detecting similarities between particular ones of the bytecode files as a function of a comparison between the encoded disassembled bytecode files.
Claim 2
Independent Claim
121 words
A method of detecting similarities between a plurality of bytecode files, the method comprising: disassembling each bytecode file of the plurality of bytecode files to form a plurality of disassembled bytecode files; applying a lexical analyzer to at least one disassembled bytecode file, the applying the lexical analyzer operation further comprising: separating at least one disassembled bytecode file into a plurality of parameter tokens and a plurality of non-parameter tokens; and computing a offset for at least one parameter token of the plurality of parameter tokens; positionally encoding each disassembled bytecode file of the plurality of disassembled bytecode files; and detecting similarities between particular ones of the bytecode files as a function of a comparison between the encoded disassembled bytecode files.
Claim 3
Dependent Claim
39 words
The method of claim 1 wherein at least one parameter token includes a index into a constant pool associated with the disassembled bytecode file, and at least one non-parameter token includes a opcode instruction from the disassembled bytecode file.
Claim 4
Independent Claim
121 words
A method of detecting similarities between a plurality of bytecode files, the method comprising: disassembling each bytecode file of the plurality of bytecode files to form a plurality of disassembled bytecode files, wherein each disassembled bytecode file includes a plurality of indexes, at least one index of the plurality of indexes being linked with a constant pool, and at least another one index of the plurality of indexes being linked with a local variable table; applying a lexical analyzer to at least one disassembled bytecode file; positionally encoding each disassembled bytecode file of the plurality of disassembled bytecode files; and detecting similarities between particular ones of the bytecode files as a function of a comparison between the encoded disassembled bytecode files.
Claim 5
Independent Claim
121 words
A method of detecting similarities between a plurality of bytecode files, the method comprising: disassembling each bytecode file of the plurality of bytecode files to form a plurality of disassembled bytecode files, wherein each disassembled bytecode file includes a plurality of indexes, at least one index of the plurality of indexes being linked with a constant pool, and at least another one index of the plurality of indexes being linked with a local variable table; applying a lexical analyzer to at least one disassembled bytecode file; positionally encoding each disassembled bytecode file of the plurality of disassembled bytecode files; and detecting similarities between particular ones of the bytecode files as a function of a comparison between the encoded disassembled bytecode files.
Claim 6
Dependent Claim
41 words
The method of claim 3 wherein the positionally encoding each disassembled bytecode file operation computes a first offset for the index linked with the constant pool and a second offset for the another one index linked with the local variable pool.
Claim 7
Dependent Claim
21 words
The method of claim 4 wherein the first offset is a number of program code lines in the disassembled bytecode file.
Claim 8
Dependent Claim
25 words
The method of claim 3 further comprising: identifying a source program from which at least one of the particular ones of the bytecode files originates.
Claim 9
Dependent Claim
21 words
The method of claim 6 wherein the comparison is made by executing a combination of Siff, Dup and Diff detection tools.
Claim 10
Dependent Claim
13 words
The method of claim 6 wherein the source program is a Java applet.
Claim 11
Dependent Claim
182 words
A machine-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions that, when executed by a machine, cause the machine to perform a method of detecting similarities between a plurality of bytecode files by disassembling each bytecode file of the plurality of bytecode files to form a plurality of disassembled bytecode files, applying a lexical analyzer to at least one disassembled bytecode file, positionally encoding each disassembled bytecode file of the plurality of disassembled bytecode files, and detecting similarities between particular ones of the bytecode files as a function of a comparison between the encoded disassembled bytecode files, wherein the positionally encoding is performed in a manner in which like parameters contained within a particular disassembled bytecode file are labeled to identify the like parameters' positional relationships within the particular disassembled bytecode file, and wherein each disassembled bytecode file includes a plurality of indexes, at least one index of the plurality of indexes being linked with a constant pool, and at least another one index of the plurality of indexes being linked with a local variable table.
Claim 12
Dependent Claim
182 words
A machine-readable medium having stored thereon a plurality of instructions, the plurality of instructions including instructions that, when executed by a machine, cause the machine to perform a method of detecting similarities between a plurality of bytecode files by disassembling each bytecode file of the plurality of bytecode files to form a plurality of disassembled bytecode files, applying a lexical analyzer to at least one disassembled bytecode file, positionally encoding each disassembled bytecode file of the plurality of disassembled bytecode files, and detecting similarities between particular ones of the bytecode files as a function of a comparison between the encoded disassembled bytecode files, wherein the positionally encoding is performed in a manner in which like parameters contained within a particular disassembled bytecode file are labeled to identify the like parameters' positional relationships within the particular disassembled bytecode file, and wherein each disassembled bytecode file includes a plurality of indexes, at least one index of the plurality of indexes being linked with a constant pool, and at least another one index of the plurality of indexes being linked with a local variable table.
Claim 13
Dependent Claim
42 words
The machine-readable medium of claim 9 wherein the positionally encoding each disassembled bytecode file operation computes a first offset for the index linked with the constant pool and a second offset for the another one index linked with the local variable pool.
Claim 14
Independent Claim
120 words
An apparatus for detecting similarities in a plurality of binary code files, the apparatus comprising: means for disassembling each binary code file of the plurality of binary code files to form a plurality of disassembled binary code files, wherein each disassembled binary code file includes a plurality of indexes, at least one index of the plurality of indexes being linked with a constant pool, and at least another one index of the plurality of indexes being linked with a local variable table; means for positionally encoding particular ones of the disassembled binary code files; and means for detecting similarities between particular ones of the binary code files as a function of a comparison between the encoded disassembled binary code files.
Claim 15
Independent Claim
120 words
An apparatus for detecting similarities in a plurality of binary code files, the apparatus comprising: means for disassembling each binary code file of the plurality of binary code files to form a plurality of disassembled binary code files, wherein each disassembled binary code file includes a plurality of indexes, at least one index of the plurality of indexes being linked with a constant pool, and at least another one index of the plurality of indexes being linked with a local variable table; means for positionally encoding particular ones of the disassembled binary code files; and means for detecting similarities between particular ones of the binary code files as a function of a comparison between the encoded disassembled binary code files.
Claim 16
Dependent Claim
43 words
The apparatus of claim 11 wherein the means for positionally encoding performs the encoding in a manner in which like parameters contained within a particular disassembled bytecode file are labeled to identify the like parameters' positional relationships within the particular disassembled bytecode file.
Claim 17
Dependent Claim
45 words
The apparatus of claim 12 further comprising: means for recording the particular ones of the binary code files for which similarities are detected; and means for identifying a source program from which at least one of the particular ones of the binary code files originates.
Claim 18
Dependent Claim
18 words
The apparatus of claim 11 wherein the means for detecting similarities employs at least one similarity detection tool.
Claim 19
Dependent Claim
25 words
The apparatus of claim 14 wherein the similarity detection tool is a similarity detection tool selected from the group consisting of Siff, Dup and Diff.
References Cited (Backward Citations)
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2004-08-27 | 2005-02-26 | 2005-08-28 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2008-08-27 | 2009-02-26 | 2009-08-28 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2012-08-27 | 2013-02-26 | 2013-08-28 | $7700.00 | Window Closed / Lapsed |