IP Library Granted Patent US 8,601,451
Granted Patent B2
US 8,601,451 · App. 11/847,162 · Granted Dec 3, 2013

System, method, and computer program product for determining whether code is unwanted based on the decompilation thereof

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 8,601,451
App. No.
11/847,162
Granted
Dec 3, 2013
Kind
B2
Abstract

A system, method, and computer program product are provided for determining whether code is unwanted based on the decompilation thereof. In use, code is identified and the code is decompiled. In addition, it is determined whether the code is unwanted, based on the decompiled code.

Claims (39)

1. A processor implemented method, comprising:

identifying code;

decompiling the code using a virus scanner of a security system, wherein the decompiling is an intermediate decompiling and the intermediate decompiling is based on tracing calls in the code or tracing jumps in the code;

determining whether the code is unwanted, based on the decompiled code, wherein a determination is made that the code is unwanted if a hash of a first portion of the decompiled code matches a predetermined threshold percentage associated with a first hash of known unwanted code, and wherein the determining includes comparing interdependencies of portions of the decompiled code to interdependencies of portions of the known unwanted code;

identifying a second portion of the decompiled code to which the first portion of the decompiled code depends, if it is determined that the hash of the first portion of the decompiled code matches the first hash of known unwanted code;

determining whether a hash of the second portion of the decompiled code matches a second hash of known unwanted code; and

updating a dissimilarity score associated with an amount of dissimilarity between the hash of the second portion of the decompiled code and the second hash of known unwanted code if it is determined that the hash of the second portion of the decompiled code does not match the second hash of known unwanted code.

2. The method of claim 1 , wherein the code includes object code.

3. The method of claim 1 , wherein the code is determined to be unwanted, if the decompiled code at least approximately matches known unwanted code.

4. The method of claim 1 , wherein a portion of the decompiled code is indexed into a hash table utilizing a hash of the portion of the decompiled code.

5. The method of claim 1 , wherein a similarity score is updated, if a hash of a portion of the decompiled code matches a hash of known unwanted code.

6. The method of claim 5 , wherein the similarity score is updated based on a strength of the match.

7. The method of claim 1 , wherein a similarity score is updated, if it is determined that the hash of the second portion of the decompiled code matches the second hash of known unwanted code.

8. A computer program product embodied on a non-transitory computer readable medium for performing operations, comprising:

identifying code;

decompiling the code using a virus scanner of a security system, wherein the decompiling is an intermediate decompiling and the intermediate decompiling is based on tracing calls in the code or tracing jumps in the code;

determining whether the code is unwanted, based on the decompiled code, wherein a determination is made that the code is unwanted if a hash of a first portion of the decompiled code matches a predetermined threshold percentage associated with a first hash of known unwanted code, and wherein the determining includes comparing interdependencies of portions of the decompiled code to interdependencies of portions of the known unwanted code;

identifying a second portion of the decompiled code to which the first portion of the decompiled code depends, if it is determined that the hash of the first portion of the decompiled code matches the first hash of known unwanted code;

determining whether a hash of the second portion of the decompiled code matches a second hash of known unwanted code; and

updating a dissimilarity score associated with an amount of dissimilarity between the hash of the second portion of the decompiled code and the second hash of known unwanted code if it is determined that the hash of the second portion of the decompiled code does not match the second hash of known unwanted code.

9. The computer program product of claim 8 , wherein the code includes object code.

10. The computer program product of claim 8 , wherein the code is determined to be unwanted, if the decompiled code at least approximately matches known unwanted code.

11. The computer program product of claim 8 , wherein a portion of the decompiled code is indexed into a hash table utilizing a hash of the portion of the decompiled code.

12. The computer program product of claim 8 , wherein a similarity score is updated, if a hash of a portion of the decompiled code matches a hash of known unwanted code.

13. The computer program product of claim 12 , wherein the similarity score is updated based on a strength of the match.

14. The computer program product of claim 8 , wherein a similarity score is updated, if it is determined that the hash of the second portion of the decompiled code matches the second hash of known unwanted code.

15. A system, comprising:

a processor, where the system is configured for:

identifying code;

decompiling the code using a virus scanner of a security system, wherein the decompiling is an intermediate decompiling and the intermediate decompiling is based on tracing calls in the code or tracing jumps in the code;

determining whether the code is unwanted, based on the decompiled code, wherein a determination is made that the code is unwanted if a hash of a first portion of the decompiled code matches a predetermined threshold percentage associated with a first hash of known unwanted code, and wherein the determining includes comparing interdependencies of portions of the decompiled code to interdependencies of portions of the known unwanted code;

identifying a second portion of the decompiled code to which the first portion of the decompiled code depends, if it is determined that the hash of the first portion of the decompiled code matches the first hash of known unwanted code;

determining whether a hash of the second portion of the decompiled code matches a second hash of known unwanted code; and

updating a dissimilarity score associated with an amount of dissimilarity between the hash of the second portion of the decompiled code and the second hash of known unwanted code if it is determined that the hash of the second portion of the decompiled code does not match the second hash of known unwanted code.

16. The system of claim 15 , wherein the code is determined to be unwanted, if the decompiled code at least approximately matches known unwanted code.

17. The system of claim 15 , wherein a portion of the decompiled code is indexed into a hash table utilizing a hash of the portion of the decompiled code.

18. The system of claim 15 , wherein a similarity score is updated, if a hash of a portion of the decompiled code matches a hash of known unwanted code.

19. The system of claim 18 , wherein the similarity score is updated based on a strength of the match.

20. The system of claim 15 , wherein a similarity score is updated, if it is determined that the hash of the second portion of the decompiled code matches the second hash of known unwanted code.

Assignments (10)
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 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2007
From: BARTRAM, ANTHONY V.; DUNBAR, ADRIAN M. M. T.; HEARNDEN, STEVE O.
To: MCAFEE, INC.
Reel/Frame 019779/0884 →