IP Library Granted Patent US 11,436,331
Granted Patent B2
US 11,436,331 · App. 16/745,230 · Granted Sep 6, 2022

Similarity hash for android executables

Inventors: Peter Kovác (Prague, CZ); Jan Piskácek (Sestajovice, CZ)
Assignee: Avast Software s.r.o.
G06F21/567G06F21/562G06F2221/033H04L63/02
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,436,331
App. No.
16/745,230
Granted
Sep 6, 2022
Kind
B2
Abstract

A method of generating a similarity hash for an executable includes extracting a plurality of characteristics for one or more classes in the executable, and transforming the plurality of characteristics into a set of one or more class fingerprint strings corresponding to the one or more classes. The set of class fingerprint strings is transformed into a hash string using minwise hashing, such that a difference between hash strings for different executables is representative of the degree of difference between the executables. The hash of a target executable is compared with hashes of known malicious executables to determine whether the target executable is likely malicious.

Claims (24)

1. A method of generating a similarity hash for an executable, comprising:

extracting a plurality of characteristics for one or more classes in the executable, wherein the class characteristics are derived from class definitions corresponding to classes in the executable;

transforming the plurality of characteristics into a set of one or more class fingerprint strings wherein each of the one or more class fingerprint strings corresponds to one of the one or more classes; and

transforming the set of class fingerprint strings into a hash string using minwise hashing, such that a difference between hash strings for different executables is representative of the degree of difference between the executables.

2. The method of generating a similarity hash for an executable of claim 1 , wherein the class characteristics are derived from class definition data comprising one or more of access flags, superclass name, implemented interfaces, annotations, class data, and static values.

3. The method of generating a similarity hash for an executable of claim 2 , wherein the one or more fingerprint strings comprises one or more string characters representing each of the one or more class definition data types.

4. The method of generating a similarity hash for an executable of claim 1 , wherein the executable comprises a Dalvik (DEX) executable.

5. The method of generating a similarity hash for an executable of claim 1 , wherein transforming the set of class fingerprint strings into a hash string using minwise hashing comprises using weighted b-bit minwise hashing.

6. The method of generating a similarity hash for an executable of claim 1 , wherein the executable is a Java executable.

7. The method of generating a similarity hash for an executable of claim 1 , further comprising comparing the hash string with a second hash string from a second executable to determine the similarity between the executable and the second executable.

8. The method of generating a similarity hash for an executable of claim 7 , wherein comparing the hash string with the hash string from a second executable comprises calculating a Hamming distance between the hash string and the second hash string.

9. The method of generating a similarity hash for an executable of claim 7 , further comprising determining whether the executable and the second executable are likely related based on the determined similarity between the executable and the second executable.

10. A computerized security device, comprising:

a processor and a memory;

a database of hashes derived from and representing one or more known malicious executables; and

an executable malware detection module comprising instructions operable when executed on the processor to extract a plurality of characteristics for one or more classes in a target executable, wherein the class characteristics are derived from class definitions corresponding to classes in the executable, transform the plurality of characteristics into a set of one or more class fingerprint strings wherein each of the one or more class fingerprint strings corresponds to one of the one or more classes, and transform the set of class fingerprint strings into a hash string using minwise hashing such that a difference between hash strings for the target executable and the hashes in the database represent a degree of difference between the target executable and the executables represented by the database hashes.

11. The computerized security device of claim 10 , wherein the class characteristics are derived from class definition data comprising one or more of access flags, superclass name, implemented interfaces, annotations, class data, and static values.

12. The computerized security device of claim 11 , wherein the one or more fingerprint strings comprises one or more string characters representing each of the one or more class definition data types.

13. The computerized security device of claim 10 , wherein the executable comprises at least one of a Dalvik (DEX) executable.

14. The computerized security device of claim 10 , wherein transforming the set of class fingerprint strings into a hash string using minwise hashing comprises using weighted b-bit minwise hashing.

15. The computerized security device of claim 10 , wherein the executable is a Java executable.

16. The computerized security device of claim 10 , the executable malware detection module further operable to compare the hash string with a second hash string from a second executable to determine the similarity between the target executable and the executables represented by the hash strings in the database representing known malicious executables.

17. The computerized security device of claim 16 , wherein comparing the hash string with the hash string from a second executable comprises calculating a Hamming distance between the hash string and the second hash string.

18. The computerized security device of claim 16 , the executable malware detection module further operable to determine whether the executable and the second executable are likely related based on the determined similarity between the target executable and the executables represented by the hashes in the database representing known malicious executables.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2025
From: GEN DIGITAL AMERICAS S.R.O.
To: GEN DIGITAL INC.
Reel/Frame 071771/0767 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 30, 2025
From: AVAST SOFTWARE S.R.O.
To: GEN DIGITAL AMERICAS S.R.O.
Reel/Frame 071777/0341 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 19, 2020
From: KOVÁC, PETER; PISKÁCEK, JAN
To: AVAST SOFTWARE S.R.O.
Reel/Frame 051856/0279 →
Continuity (1)
Related Publication 20210224390A1 · Jul 22, 2021