Patent US6282698B1 successfully refreshed from Google Patents.
← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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:53
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)

US5511159A Cited
US5627748A Cited
US5953006A Cited
US5778231A Cited

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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag