# US 2022/0035918 A1 · System and Method for Validating In-Memory Integrity of Executable Files to Identify Malicious Activity

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2022/0035918 A1
- Document ID: US20220035918A1
- Status: Published application
- Kind: A1
- Application number: 17/501,965
- Filed: 2021-10-14
- Published: 2022-02-03
- Earliest claimed: 2017-07-13
- Assignees: Endgame, Inc.
- Applicants: Endgame, Inc.
- Inventors: Joseph W. Desimone
- Web page: https://patentgrep.com/patent/US20220035918A1

## CPC

- G06F 21/566: {Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities}
- G06F 9/544: {Buffers; Shared memory; Pipes}
- G06F 21/552: {involving long-term monitoring or reporting}
- G06F 21/565: {by checking file integrity}
- H04L 63/1416: {Event detection, e.g. attack signature detection}
- H04L 63/1441: {Countermeasures against malicious traffic (countermeasures against attacks on cryptographic mechanisms H04L9/002)}
- H04L 63/145: {the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In the embodiments described herein, a malicious code detection module identifies potentially malicious instructions in volatile memory of a computing device before the instructions are executed. The malicious code detection module identifies an executable file, such as an .exe file, in memory, validates one or more components of the executable file against the same file stored in non-volatile storage, and issues an alert if the validation fails.

## Claims

### Claim 1

A method of validating an executable file to identify potential malware in a computing device comprising a processor, memory, non-volatile storage, an operating system, and a malicious code detection module, the method comprising:
identifying, by the malicious code detection module, a first executable file in the memory, the first executable file including:
a first plurality of components that are not altered by the operating system when loaded into the memory;
identifying, by the malicious code detection module, a second executable file in the non-volatile storage, wherein the first executable file and the second executable file are associated with one another by the operating system;
determining that the second executable file has been compressed and/or encrypted using software packing;
determining if the second executable file can be unpacked;
unpacking the second executable file if the second executable file can be unpacked;
comparing, by the malicious code detection module, a size of a first component of a first plurality of components of the first executable file and a size of a first component of the first plurality of components of the second executable file, wherein comparing includes accounting for changes to the second executable file caused by the unpacking of the second executable file, and further wherein when the second executable file has not been compressed and/or encrypted using software packing, the changes need not be accounted for, and
generating an alert
when the size of the first component of the first plurality of components of the first executable file and the size of the first component of the first plurality of components of the second executable file are different;
wherein the first component of the first plurality of components of the first executable file is less than the entirety of the first executable file and the first component of the first plurality of components of the second executable file is less than the entirety of the second executable file.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
comparing, by the malicious code detection module, the content of a first component of the first plurality of components of the first executable file and the content of a first component of the first plurality of components of the second executable file, and generating an alert when the content of the first component of the first plurality of components of the first executable file and the content of the first component of the first plurality of components of the second executable file are different.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
comparing, by the malicious code detection module, a size of a second component of the first plurality of components of the first executable file and a size of a second component of the first plurality of components of the second executable file, and generating an alert when the size of the second component of the first plurality of components of the first executable file and the size of the second component of the second plurality of components of the second executable file are different;
wherein the second component of the first executable file is less than the entirety of the first executable file and the second component of the second executable file is less than the entirety of the second executable file.

### Claim 4 (depends on 3)

The method of claim 3, further comprising:
comparing, by the malicious code detection module, the content of the second component of the first plurality of components of the first executable file and the content of the second component of the first plurality of components of the second executable file, and generating an alert when the content of the second component of the first plurality of components of the first executable file and the content of the second component of the first plurality of components of the second executable file are different.

### Claim 5 (depends on 1)

The method of claim 1, wherein the validating of the second executable file occurs after the second executable file starts executing, and wherein the alert includes one or more of terminating a process executing the second executable file, sending an email, SMS message, and MMS message to a device operated by a user or administrator.

### Claim 6 (depends on 2)

The method of claim 2, wherein the validating of the first executable file occurs after the first executable file starts executing, and wherein the alert includes one or more of terminating a process executing the first executable file, sending an email, SMS message, and MMS message to a device operated by a user or administrator.

### Claim 7 (depends on 3)

The method of claim 3, wherein the validating of the first executable file occurs after the first executable file starts executing, and wherein the alert includes one or more of terminating a process executing the first executable file, sending an email, SMS message, and MMS message to a device operated by a user or administrator.

### Claim 8 (depends on 4)

The method of claim 4, wherein the validating of the first executable file occurs after the first executable file starts executing, and wherein the alert includes one or more of terminating a process executing the first executable file, sending an email, SMS message, and MMS message to a device operated by a user or administrator.

### Claim 9 (depends on 5)

The method of claim 5, wherein the first component of the first plurality of components of the first executable file is a DOS header and the first component of the first plurality of components of the second executable file is a DOS header.

### Claim 10 (depends on 9)

The method of claim 9, wherein the second component of the first plurality of components of the first executable file is a set of code and the second component of the first plurality of components of the second executable file is a set of code.

### Claim 11

A computing device comprising:
a processor;
memory;
a non-volatile storage device;
an operating system; and
a malicious code detection module stored in the memory and executed by the processor, the malicious code detection module comprising instructions for:
identifying a first executable file in the memory, the first executable file including:
a first plurality of components that are not altered by the operating system when loaded into the memory;
identifying a second executable file in the non-volatile storage, wherein the first executable file is associated with the second executable file by the operating system;
comparing a size of a first component of a second plurality of components of the first executable file and a size of a first component of the first plurality of components of the second executable file;
identifying permissible modifications to the first executable file based on execution of the first executable file; and
generating an alert if the size of the first component of the first plurality of components of the first executable file and the size of the first component of the first plurality of components of the second executable file are different, wherein the alert is not triggered when the difference relates to the permissible modifications;
wherein the first component of the first plurality of components of the first executable file is less than the entirety of the first executable file and the first component of the first plurality of components of the second executable file is less than the entirety of the second executable file.

### Claim 12 (depends on 11)

The device of claim 11, wherein the malicious code detection module further comprises instructions for:
comparing the content of the first component of the second plurality of components of the first executable file and the content of the first component of the first plurality of components of the second executable file, and generating an alert if the content of the first component of the first plurality of components of the first executable file and the content of the first component of the first plurality of components of the second executable file are different.

### Claim 13 (depends on 12)

The device of claim 12, wherein the malicious code detection module further comprises instructions for:
comparing a size of a second component of the first plurality of components of the first executable file and a size of a second component of the first plurality of components of the second executable file, and generating an alert if the size of the second component of the first plurality of components of the first executable file and the size of the second component of the first plurality of components of the second executable file are different;
wherein the second component of the first executable file is less than the entirety of the first executable file and the second component of the second executable file is less than the entirety of the second executable file.

### Claim 14 (depends on 12)

The device of claim 12, wherein the malicious code detection module further comprises instructions for:
comparing, by the malicious code detection module, the content of the second component of the first plurality of components of the first executable file and the content of the second component of the first plurality of components of the second executable file, and generating an alert if the content of the second component of the first plurality of components of the first executable file and the content of the second component of the first plurality of components of the second executable file are different.

### Claim 15 (depends on 11)

The device of claim 11, wherein the validating of the first executable file occurs after the first executable file starts executing, and wherein the alert includes one or more of terminating a process executing the first executable file, sending an email, SMS message, and MMS message to a device operated by a user or administrator.

### Claim 16 (depends on 12)

The device of claim 12, wherein the validating of the first executable file occurs after the first executable file starts executing, and wherein the alert includes one or more of terminating a process executing the first executable file, sending an email, SMS message, and MMS message to a device operated by a user or administrator.

### Claim 17 (depends on 13)

The device of claim 13, wherein the validating of the first executable file occurs after the first executable file starts executing, and wherein the alert includes one or more of terminating a process executing the first executable file, sending an email, SMS message, and MMS message to a device operated by a user or administrator.

### Claim 18 (depends on 13)

The device of claim 13, further comprising resolving changes to an import address table for the first executable file.

### Claim 19 (depends on 15)

The device of claim 15, wherein the first component of the first plurality of components of the first executable file is a DOS header and the first component of the first plurality of components of the second executable file is a DOS header.

### Claim 20 (depends on 19)

The device of claim 19, wherein the second component of the first plurality of components of the first executable file is a set of code and the second component of the first plurality of components of the second executable file is a set of code.

### Claim 21 (depends on 1)

The method of claim 1, the method further comprising:
decrypting at least one first plurality of components when loading into the memory, wherein at least one of the first plurality of components is encrypted.

### Claim 22 (depends on 1)

The method of claim 1, the method further comprising:
decompressing at least one first plurality of components when loading into the memory, wherein at least one of the first plurality of components is compressed.
