IP Library Granted Patent US 8,341,743
Granted Patent B2
US 8,341,743 · App. 09/905,532 · Granted Dec 25, 2012

Detection of viral code using emulation of operating system functions

Assignee: CA, Inc.
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,341,743
App. No.
09/905,532
Granted
Dec 25, 2012
Kind
B2
Abstract

A method and apparatus for detecting viral code that uses calls to an operating system to damage computer systems, computers and/or computer files is provided. The apparatus comprises a CPU emulator, a memory manager component and a monitor component. An artificial memory region spanning one or more components of the operating system is created by the memory manager component. Execution of computer executable code in a subject file is emulated by the CPU emulator. An attempt by the emulated computer executable code to access the artificial memory region is detected by the monitor component. The apparatus optionally may comprise an auxiliary component and an analyzer component. The auxiliary component determines an operating system call that the emulated computer executable code attempted to access. The analyzer component monitors the operating system call to determine whether the computer executable code is viral.

Claims (54)

1. A method of detecting viral code in subject files, comprising:

creating an artificial memory region spanning one or more components of the operating system, wherein the artificial memory region is associated with an export table of a dynamically-linked library;

emulating execution of at least a portion of computer executable code in a subject file;

monitoring attempts by the emulated computer executable code to access the artificial memory region;

in response to detecting an attempt to access the artificial memory region, determining an export table entry in the export table of the dynamically-linked library that is associated with the attempt to access the artificial memory region; and

determining based on the export table entry associated with the attempt to access the artificial memory region that the emulated computer executable code is viral.

2. The method of claim 1 , further comprising:

emulating functionality of an identified operating system call while monitoring the operating system call to determine whether the computer executable code is viral.

3. The method of claim 1 , further comprising monitoring access by the emulated computer executable code to dynamically linked functions.

4. The method of claim 3 , wherein the artificial memory region spans a jump table containing pointers to the dynamically linked functions.

5. The method of claim 1 , further comprising:

monitoring accesses by the emulated computer executable code to the artificial memory region to detect looping; and

determining based on a detection of looping that the emulated computer executable code is viral.

6. The method of claim 1 , wherein creating an artificial memory region comprises creating a custom version of the export table with predetermined values for the entry points.

7. The method of claim 1 , further comprising:

monitoring access by the emulated computer executable code to dynamically linked functions; and

determining based on attempted access to dynamically linked functions that the emulated computer executable code is viral.

8. A program storage device readable by a machine, tangibly embodying a program of instructions executable by the machine to perform method steps for detecting viral code in subject files, the method steps comprising:

creating an artificial memory region spanning one or more components of the operating system, wherein the artificial memory region is associated with an export table of a dynamically-linked library;

emulating execution of at least a portion of computer executable code in a subject file;

monitoring attempts by the emulated computer executable code to access the artificial memory region;

in response to detecting an attempt to access the artificial memory region, determining an export table entry in the export table of the dynamically-linked library that is associated with the attempt to access the artificial memory region; and

determining based on the export table entry associated with the attempt to access the artificial memory region that the emulated computer executable code is viral.

9. A computer system, comprising:

a processor; and

a program storage device readable by the computer systems, tangibly embodying a program of instructions executable by the processor to perform method steps for detecting viral code in subject files, the method comprising:

creating an artificial memory region spanning one or more components of the operating system, wherein the artificial memory region is associated with an export table of a dynamically-linked library;

emulating execution of at least a portion of computer executable code in a subject file;

monitoring attempts by the emulated computer executable code to access the artificial memory region; and

determining based on the export table entry associated with the attempt to access the artificial memory region that the emulated computer executable code is viral.

10. A computer data signal embodied in a computer-readable medium which embodies instructions executable by a computer for detecting in a subject file viral code that uses calls to an operating system, the signal comprising:

a first segment comprising CPU emulator code, wherein the CPU emulator code emulates execution of at least a portion of computer executable code in the subject file;

a second segment comprising memory manager code, wherein the memory manager code creates an artificial memory region spanning components of the operating system, wherein the artificial memory region is associated with an export table of a dynamically-linked library; and

a third segment comprising monitor code, wherein the monitor code:

monitors attempts by the emulated computer executable code to access the artificial memory region;

in response to detecting an attempt to access the artificial memory region, determining an export table entry in the export table of the dynamically-linked library that is associated with the attempt to access the artificial memory region; and

determines based on the export table entry associated with the attempt to access the artificial memory region that the emulated computer executable code is viral.

11. The computer data signal of claim 10 , further comprising:

a fourth segment comprising analyzer code, wherein the analyzer code emulates functionality of the identified operating system call to determine whether the computer executable code is viral.

12. An apparatus for detecting in a subject file viral code that uses calls to an operating system, comprising:

a processor;

a memory;

a CPU emulator;

a memory manager component that creates an artificial memory region spanning at least a portion of the memory associated with an export table of a dynamically-linked library; and

a monitor component, wherein the CPU emulator emulates execution of at least a portion of computer executable code in the subject file, and the monitor component:

monitors attempts by the emulated computer executable code to access the artificial memory region;

in response to detecting an attempt to access the artificial memory region, determining an export table entry in the export table of the dynamically-linked library that is associated with the attempt to access the artificial memory region; and

determines based on the export table entry associated with the attempt to access the artificial memory region that the emulated computer executable code is viral.

13. The apparatus of claim 12 , further comprising:

an auxiliary component; and

an analyzer component,

wherein the auxiliary component emulates functionalities of an identified operating system call, and the monitor component monitors the operating system call to determine whether the computer executable code is viral, while emulation continues.

14. The apparatus of claim 13 , wherein the auxiliary component emulates functionalities of the operating system call.

15. The apparatus of claim 12 , wherein the artificial memory region created by the memory manager component spans a jump table containing pointers to dynamically linked functions, and the monitor component monitors access by the emulated computer executable code to the dynamically linked functions.

Assignments (2)
MERGER Recorded Nov 21, 2012
From: COMPUTER ASSOCIATES THINK, INC.
To: CA, INC.
Reel/Frame 029337/0722 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 29, 2002
From: ROGERS, ANTONY JOHN; YANN, TREVOR; JORDAN, MYLES
To: COMPUTER ASSOCIATES THINK, INC.
Reel/Frame 012536/0644 →
Continuity (2)
Provisional Application 60218467 · Jul 14, 2000
Related Publication 20020083334A1 · Jun 27, 2002