IP Library Granted Patent US 8,051,479
Granted Patent B1
US 8,051,479 · App. 11/332,115 · Granted Nov 1, 2011

Method and apparatus for detecting shellcode

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,051,479
App. No.
11/332,115
Granted
Nov 1, 2011
Kind
B1
Abstract

The invention is a method and apparatus for detecting shellcode such that a set of computer instructions is scanned for the presence of a null operation instruction. The computer instructions are also examined for the presence of a system call instruction, and reviewed for the presence of a decoder instruction set. A null operation weight value is then determined corresponding to the null operation instruction. Also assessed is a system call weight value corresponding to the system call instruction. In addition, a decoder weight value is calculated corresponding to the decoder instruction set. The null operation weight value, the system call weight value, and the decoder weight value are then analyzed to identify a shellcode.

Claims (88)

1. A computer-implemented method, comprising:

scanning a set of computer instructions for a null operation instruction; and

detecting predetermined code based at least in part on the null operation instruction;

wherein the predetermined code is detected based at least in part on a decoder instruction set including a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in an absence of a system call instruction from the set of computer instructions.

2. The method of claim 1 , wherein the predetermined code is detected based at least in part on another system call instruction.

3. A computer-implemented method, comprising:

scanning a set of computer instructions for a null operation instruction;

reviewing the set of computer instructions for the presence of a decoder instruction set including a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in the absence of a system call instruction from the set of computer instructions; and

detecting predetermined code based at least in part on the null operation instruction;

wherein the predetermined code includes shellcode.

4. A computer-implemented method, comprising:

scanning a set of computer instructions for a system call instruction; and

detecting predetermined code based at least in part on the system call instruction;

wherein the predetermined code is detected based at least in part on a decoder instruction set including a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in an absence of the system call instruction from the set of computer instructions.

5. The method of claim 4 , wherein the predetermined code is detected based at least in part on a null operation instruction.

6. A computer-implemented method, comprising:

scanning a set of computer instructions for a system call instruction;

reviewing the set of computer instructions for the presence of a decoder instruction set including a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in the absence of the system call instruction from the set of computer instructions; and

detecting predetermined code based at least in part on the system call instruction;

wherein the predetermined code includes shellcode.

7. A computer program product embodied on a non-transitory computer readable medium, comprising:

computer code for scanning a set of computer instructions for a decoder instruction set; and

computer code for detecting predetermined code based at least in part on the decoder instruction set including a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in an absence of a system call instruction from the set of computer instructions.

8. The computer program product of claim 7 , wherein the predetermined code is detected based at least in part on another system call instruction.

9. The computer program product of claim 7 , wherein the predetermined code is detected based at least in part on a null operation instruction.

10. The computer program product of claim 7 , wherein the predetermined code includes shellcode.

11. A method of detecting a shellcode, comprising:

scanning a set of computer instructions for at least one of a null operation instruction, a system call instruction, and a decoder instruction set; and

detecting a shellcode based at least in part on at least one of the null operation instruction, the system call instruction, and the decoder instruction set;

wherein the decoder instruction set includes a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in an absence of the system call instruction from the set of computer instructions.

12. A computer program product embodied on a non-transitory computer readable medium, comprising:

computer code for scanning a set of computer instructions for a null operation instruction; and

computer code for detecting predetermined code based at least in part on the null operation instruction;

wherein the computer program product is operable such that the predetermined code is detected based at least in part on a decoder instruction set including a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in an absence of a system call instruction from the set of computer instructions.

13. A system, comprising:

a processor for:

scanning a set of computer instructions for a null operation instruction; and

detecting predetermined code based at least in part on the null operation instruction;

wherein the system is operable such that the predetermined code is detected based at least in part on a decoder instruction set including a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in an absence of a system call instruction from the set of computer instructions.

14. A computer program product embodied on a non-transitory computer readable medium, comprising:

computer code for scanning a set of computer instructions for a null operation instruction;

computer code for reviewing the set of computer instructions for the presence of a decoder instruction set including a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in the absence of a system call instruction from the set of computer instructions; and

computer code for detecting predetermined code based at least in part on the null operation instruction;

wherein the predetermined code includes shellcode.

15. A system, comprising:

a processor for:

scanning a set of computer instructions for a null operation instruction;

reviewing the set of computer instructions for the presence of a decoder instruction set including a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in the absence of a system call instruction from the set of computer instructions; and

detecting predetermined code based at least in part on the null operation instruction;

wherein the predetermined code includes shellcode.

16. A computer program product embodied on a non-transitory computer readable medium, comprising:

computer code for scanning a set of computer instructions for a system call instruction; and

computer code for detecting predetermined code based at least in part on the system call instruction;

wherein the computer program product is operable such that the predetermined code is detected based at least in part on a decoder instruction set including a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in an absence of the system call instruction from the set of computer instructions.

17. A system, comprising:

a processor for:

scanning a set of computer instructions for a system call instruction; and

detecting predetermined code based at least in part on the system call instruction;

wherein the system is operable such that the predetermined code is detected based at least in part on a decoder instruction set including a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in an absence of the system call instruction from the set of computer instructions.

18. A computer program product embodied on a non-transitory computer readable medium, comprising:

computer code for scanning a set of computer instructions for a system call instruction;

computer code for reviewing the set of computer instructions for the presence of a decoder instruction set including a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in the absence of the system call instruction from the set of computer instructions; and

computer code for detecting predetermined code based at least in part on the system call instruction;

wherein the predetermined code includes shellcode.

19. A system, comprising:

a processor for:

scanning a set of computer instructions for a system call instruction;

reviewing the set of computer instructions for the presence of a decoder instruction set including a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in the absence of the system call instruction from the set of computer instructions; and

detecting predetermined code based at least in part on the system call instruction;

wherein the predetermined code includes shellcode.

20. A method, comprising:

scanning a set of computer instructions for a decoder instruction set; and

detecting predetermined code based at least in part on the decoder instruction set including a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in an absence of a system call instruction from the set of computer instructions.

21. A system, comprising:

a processor for:

scanning a set of computer instructions for a decoder instruction set; and

detecting predetermined code based at least in part on the decoder instruction set including a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in an absence of a system call instruction from the set of computer instructions.

22. A computer program product embodied on a non-transitory computer readable medium, comprising:

computer code for scanning a set of computer instructions for at least one of a null operation instruction, a system call instruction, and a decoder instruction set; and

computer code for detecting a shellcode based at least in part on at least one of the null operation instruction, the system call instruction, and the decoder instruction set;

wherein the decoder instruction set includes a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in an absence of the system call instruction from the set of computer instructions.

23. A system, comprising:

a processor for:

scanning a set of computer instructions for at least one of a null operation instruction, a system call instruction, and a decoder instruction set; and

detecting a shellcode based at least in part on at least one of the null operation instruction, the system call instruction, and the decoder instruction set;

wherein the decoder instruction set includes a jump instruction for acting as an encoded system call instruction, the jump instruction invoking a function in an absence of the system call instruction from the set of computer instructions.

24. The method of claim 1 , further comprising establishing a null operation instruction threshold that reflects a number of times the null operation instruction occurs in an input string.

25. The method of claim 3 , further comprising establishing threshold values for characteristics of the shellcode, and calculating weight values based on the characteristics including a minimum instruction threshold and a maximum instruction threshold.

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 →
MERGER Recorded Jan 12, 2006
From: NETWORKS ASSOCIATES TECHNOLOGY, INC.
To: MCAFEE, INC.
Reel/Frame 017479/0783 →