IP Library Granted Patent US 7,904,955
Granted Patent B1
US 7,904,955 · App. 10/172,138 · Granted Mar 8, 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 7,904,955
App. No.
10/172,138
Granted
Mar 8, 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 (69)

1. A method of detecting shellcode, comprising:

scanning a set of computer instructions for the presence of a null operation instruction utilizing a processor;

examining said set of computer instructions for the presence of a system call instruction;

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

determining a null operation weight value corresponding to said null operation instruction;

assessing a system call weight value corresponding to said system call instruction;

calculating a decoder weight value corresponding to said decoder instruction set; and

analyzing said null operation weight value, said system call weight value, and said decoder weight value to identify a shellcode.

2. The method of claim 1 wherein said examining includes examining said set of computer instructions for the presence of a system call instruction for invoking a function provided by a computer.

3. A method of detecting a shellcode, comprising:

establishing a null operation threshold related to a null operation instruction in a set of computer instructions;

generating a system call threshold related to a system call instruction in said set of computer instructions utilizing a processor;

providing a decoder threshold related to the presence of a decoder instruction set in said set of computer instructions;

determining a null operation weight value corresponding to the presence of said null operation instruction in said set of computer instructions;

assessing a system call weight value corresponding to the presence of said system call instruction in said set of computer instructions;

calculating a decoder weight value corresponding to the presence of said decoder instruction set including a jump instruction for acting as an encoded system call instruction, said jump instruction invoking a function in the absence of said system call instruction from said set of computer instructions; and

comparing said null operation weight value, said system call weight value, and said decoder weight value to said null operation threshold, said system call threshold, and said decoder threshold so as to estimate whether said set of computer instructions is a shellcode.

4. The method of claim 3 wherein said assessing includes assessing a system call weight value corresponding to the presence of a system call instruction for invoking a function provided by a computer.

5. A tangible computer readable memory that can direct a computer to function in a specified manner, comprising:

instructions to scan a set of computer instructions for the presence of a null operation instruction;

instructions to examine said set of computer instructions for the presence of a system call instruction;

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

instructions to determine a null operation weight value corresponding to said null operation instruction;

instructions to assess a system call weight value corresponding to said system call instruction;

instructions to calculate a decoder weight value corresponding to said decoder instruction set; and

instructions to analyze said null operation weight value, said system call weight value, and said decoder weight value to identify a shellcode.

6. The computer readable memory of claim 5 wherein said instructions to examine include instructions to examine said set of computer instructions for the presence of a system call instruction for invoking a function provided by a computer.

7. A tangible computer readable memory that can direct a computer to function in a specified manner, comprising:

instructions to establish a null operation threshold related to a null operation instruction in a set of computer instructions;

instructions to generate a system call threshold related to a system call instruction in said set of computer instructions;

instructions to provide a decoder threshold related to the presence of a decoder instruction set in said set of computer instructions;

instructions to determine a null operation weight value corresponding to the presence of said null operation instruction in said set of computer instructions;

instructions to assess a system call weight value corresponding to the presence of said system call instruction in said set of computer instructions;

instructions to calculate a decoder weight value corresponding to the presence of said decoder instruction set including a jump instruction for acting as an encoded system call instruction, said jump instruction invoking a function in the absence of said system call instruction from said set of computer instructions; and

instructions to compare said null operation weight value, said system call weight value, and said decoder weight value to said null operation threshold, said system call threshold, and said decoder threshold so as to estimate whether said set of computer instructions is a shellcode.

8. The computer readable memory of claim 7 wherein said instructions to assess include instructions to assess a system call weight value corresponding to the presence of a system call instruction for invoking a function provided by a computer.

9. A method of detecting a shellcode, comprising:

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

examining the set of computer instructions for a system call instruction;

reviewing the set of computer instructions for 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 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.

10. The method of claim 9 , wherein the shellcode is detected based at least in part on the null operation instruction.

11. The method of claim 9 , wherein the shellcode is detected based at least in part on the system call instruction.

12. The method of claim 9 , wherein the shellcode is detected based at least in part on the decoder instruction set.

13. A computer program product embodied on a tangible computer readable medium for detecting a shellcode, comprising:

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

computer code for examining the set of computer instructions for a system call instruction;

computer code for reviewing the set of computer instructions for 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 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.

14. A method of detecting a shellcode, comprising:

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

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 a shellcode based at least in part on the at least two instructions.

15. A system for detecting shellcode, comprising:

a processor for:

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

examining the set of computer instructions for a system call instruction;

reviewing the set of computer instructions for 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 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.

16. A computer program product embodied on a tangible computer readable medium for detecting a shellcode, comprising:

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

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 a shellcode based at least in part on the at least two instructions.

17. A system for detecting a shellcode, comprising:

a processor for:

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

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 a shellcode based at least in part on the at least two instructions.

18. The method of claim 1 , further comprising determining a number of instructions in the set of computer instructions.

Assignments (9)
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: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →