IP Library Granted Patent US 11,435,990
Granted Patent B2
US 11,435,990 · App. 16/540,927 · Granted Sep 6, 2022

Methods and apparatus for malware detection using jar file decompilation

Inventor: Daniel Burke (Hillsboro, OR)
Assignee: MCAFEE, LLC
G06F8/53G06F21/565G06N20/00G06F2221/033
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,435,990
App. No.
16/540,927
Granted
Sep 6, 2022
Kind
B2
Abstract

The methods and apparatus for detecting malware using JAR file decompilation are disclosed. An apparatus for decompiling class files, the apparatus comprising a class feature unpacker to unpack a class feature from a class file included in an instruction set, a constant pool address generator to generate a constant pool address table, from the class features, including a plurality of constant pool blocks, based on constant pool type, through an iterative process, a class feature identifier to determine values for each constant pool block based on a constant pool type and store the determined values as a class file feature set, a feature value identifier to obtain raw feature values from a class file feature set and non-class file features, and a feature matrix generator to generate a matrix based on the raw features that correspond to the instruction set.

Claims (37)

1. An apparatus for decompiling class files, the apparatus comprising:

a class feature unpacker to unpack one or more class features from a class file included in an instruction set;

a constant pool address generator to:

initialize a temporary address corresponding to one of the one or more class features;

read metadata from the temporary address, the metadata corresponding to constant pool information;

generate a constant pool address table using metadata corresponding to the constant pool information, the constant pool address table to include a plurality of blocks of constant pool information; and

a feature matrix generator to generate a matrix of features based on the plurality of blocks of constant pool information, the features to represent the instruction set.

2. The apparatus of claim 1 , wherein the instruction set represents a Java ARchive (JAR) file and further including a file extractor to extract class files and non-class files from the JAR file.

3. The apparatus of claim 2 , further including a non-class file storage device to store features of the non-class files extracted from the instruction set by the file extractor.

4. The apparatus of claim 2 , further including a class file storage device to store the class files extracted from the instruction set by the file extractor.

5. The apparatus of claim 1 , further including a machine learning model trainer to train a machine learning model based on matrices of features and a threshold value.

6. The apparatus of claim 5 , further including a machine learning model processor to apply the machine learning model to the matrix of features to determine whether the instruction set is malicious.

7. The apparatus of claim 1 , further including a class feature storage device to store class file feature values as class file feature sets, the class file feature values corresponding to values of the plurality of blocks of constant pool information.

8. At least one non-transitory computer-readable medium comprising instructions that, when executed, cause at least one processor to at least:

unpack one or more class features from a class file included in an instruction set;

initialize a temporary address corresponding to one of the one or more class features;

read metadata from the temporary address, the metadata corresponding to constant pool information;

generate a constant pool address table using metadata corresponding to the constant pool information, the constant pool address table to include a plurality of blocks of constant pool information; and

generate a matrix of features based on plurality of blocks of constant pool information, the features to represent the instruction set.

9. The at least one non-transitory computer-readable medium of claim 8 , wherein the instruction set represents a Java ARchive (JAR) file and the instructions, when executed, cause the at least one processor to extract class files and non-class files from the JAR file.

10. The at least one non-transitory computer-readable medium of claim 9 , wherein the instructions, when executed, cause the at least one processor to store features of the non-class files extracted from the instruction set.

11. The at least one non-transitory computer-readable medium of claim 9 , wherein the instructions, when executed, cause the at least one processor to store the class files extracted from the instruction set.

12. The at least one non-transitory computer-readable medium of claim 8 , wherein the instructions, when executed, cause the at least one processor to train a machine learning model based on matrices of features and a threshold value.

13. The at least one non-transitory computer-readable medium of claim 8 , wherein the instructions, when executed, cause the at least one processor to apply a machine learning model to the matrix of features to determine whether the instruction set is malicious.

14. The at least one non-transitory computer-readable medium of claim 8 , wherein the instructions, when executed, cause the at least one processor to store class file feature values as class file feature sets, the class file feature values corresponding to values of the plurality of blocks of constant pool information.

15. An apparatus for decompiling class files, the apparatus comprising:

means for unpacking one or more class features from a class file included in an instruction set;

means for generating a constant pool address table to:

initialize a temporary address corresponding to one of the one or more class features;

read metadata from the temporary address, the metadata corresponding to constant pool information;

generate the constant pool address table using metadata corresponding to the constant pool information, the constant pool address table to include a plurality of blocks of constant pool information; and

means for generating a matrix of features based on the plurality of blocks of constant pool information, the features to represent the instruction set.

16. The apparatus of claim 15 , wherein the instruction set represents a Java ARchive (JAR) file, and further including means for extracting class files and non-class files from the JAR file.

17. The apparatus of claim 16 , further including means for storing features of the non-class files extracted from the instruction set.

18. The apparatus of claim 16 , further including means for storing the class files extracted from the instruction set.

19. The apparatus of claim 15 , further including means for training a machine learning model based on matrices of features and a threshold value.

20. The apparatus of claim 19 , further including means for applying the machine learning model to the matrix of features to determine whether the instruction set is malicious.

Assignments (3)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2019
From: BURKE, DANIEL
To: MCAFEE, LLC
Reel/Frame 050259/0380 →
Continuity (1)
Related Publication 20210048993A1 · Feb 18, 2021