IP Library Granted Patent US 10,275,595
Granted Patent B2
US 10,275,595 · App. 15/279,471 · Granted Apr 30, 2019

System and method for characterizing malware

Inventors: Yuval Malachi (Hod Hasharon, IL); Mori Benech (Tel Aviv, IL)
Assignee: Trap Data Security Ltd.
G06F21/566G06F9/44521G06F9/45512G06F21/53G06F2221/033
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 10,275,595
App. No.
15/279,471
Granted
Apr 30, 2019
Kind
B2
Abstract

An embodiment may create a memory image including a representation of a thread environment block (TEB) and representation of a process environment block (PEB) according to specifications of an operating system. A memory image may be loaded into a memory and a shellcode may be caused to use the memory image when executed. An access to the memory image, made by the shellcode, may be monitored and controlled.

Claims (40)

1. A computer-implemented method for executing a shellcode in a controlled environment, the method comprising:

creating, in a memory of a computing device, a Process Environment Block (PEB) according to specifications of an operating system (OS);

generating a representation of a set of Dynamic-link libraries (DLLs) by analyzing a set of DLLs wherein the representation of the set of DLLs includes at least an address and a name of at least one DLL;

loading the representations of the set of DLLs into the memory at a location according to a Local Descriptor Table (LDT);

loading a shellcode into the memory and causing a controller to execute the shellcode;

controlling access, by the shellcode, to the representation of the set of DLLs; and

accelerating access, made by the shellcode, to the representation of the set of DLLs, by including only a predefined small set of DLLs descriptors in the PEB wherein the small set is defined based on identifying DLLs typically called by a shellcode.

2. The method of claim 1 , comprising randomizing addresses in the PEB by randomly ordering DLLs descriptors in the PEB.

3. The method of claim 1 , wherein an OS used by the computing device is different from an OS targeted by the shellcode.

4. The method of claim 1 , wherein the representation of the DLL's includes only metadata related to the DLL's and does not include actual executable code.

5. The method of claim 1 , wherein the representation of a DLL includes custom executable code designed to trigger an action when the DLL is called.

6. The method of claim 1 , comprising generating the representation of the DLLs based on at least one of: a type of an OS, a set of DLLs, a memory address of a DLL.

7. The method of claim 1 , comprising randomizing, in the representation of the DLL's, at least one of: addresses of DLLs and the order of functions included in DLLs.

8. The method of claim 1 , comprising creating, in the memory, a representation of a Thread Environment Block (TEB), wherein the representations of the TEB, PEB and DLLs is aggregated into one portable, small, lightweight, memory representation and wherein the portable light memory representation is loaded into the memory.

9. A computer-implemented method for generating a memory representation, the method comprising:

creating, in a memory image:

a representation of a Process Environment Block (PEB) according to specifications of an operating system (OS), and

a representation of a set of Dynamic-link libraries (DLLs), wherein the representation of the set of DLLs includes at least an address and a name of at least one DLL;

loading the memory image to a location pointed by a Local Descriptor Table (LDT);

executing the shellcode;

monitoring accesses, made by the shellcode, to the representation of the set of DLLs; and

accelerating access, made by the shellcode, to the representation of the set of DLLs, by including only a predefined small set of DLLs descriptors in the PEB wherein the small set is defined based on identifying DLLs typically called by a shellcode.

10. A system comprising:

a memory; and

a controller, the controller configured to:

create, in a memory of a computing device, a representation of a Process Environment Block (PEB) according to specifications of an operating system (OS);

generate a representation of a set of Dynamic-link libraries (DLLs) by analyzing a set of DLLs wherein the representation includes at least an address and a name of at least one DLL;

load the representation of the set of DLLs into the memory at a location pointed by a Local Descriptor Table (LDT);

load a shellcode into the memory and cause a controller to execute the shellcode;

control access, by the shellcode, to the representation of the set of DLLs; and

accelerate access, made by the shellcode, to the representation of the set of DLLs, by including only a predefined small set of DLLs descriptors in the PEB wherein the small set is defined based on identifying DLLs typically called by a shellcode.

11. The system of claim 10 , wherein the controller is further to randomizing addresses in the PEB by randomly ordering DLLs descriptors in the PEB.

12. The system of claim 10 , wherein an OS used by the controller is different from an OS targeted by the shellcode.

13. The system of claim 10 , wherein the representation of the DLL's includes only metadata related to the DLL's and does not include actual executable code.

14. The system of claim 10 , wherein the representation of a DLL includes custom executable code designed to trigger an action when the DLL is called.

15. The system of claim 10 , wherein the controller is further to configured to generate the representation of the DLLs based on at least one of: a type of an OS, a set of DLLs, a memory address of a DLL.

16. The system of claim 10 , wherein the controller is further to configured to randomizing, in at least one of the representations, at least one of:

addresses of DLLs and the order of functions included in DLLs.

17. The system of claim 10 , comprising creating, in the memory, a representation of a Thread Environment Block (TEB), wherein the representations of the TEB, PEB and DLLs is aggregated into one portable light memory representation and wherein the portable light memory representation is loaded into the memory.

18. The system of claim 10 , comprising creating, in the memory, a representation of a Thread Environment Block (TEB) and generating a set of light memory representations of the TEB, PEB and DLLs based on behaviors of a respective set of malwares.

Assignments (3)
SUPPLEMENTAL CONFIRMATORY GRANT OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Apr 16, 2025
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070864/0344 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 19, 2022
From: TRAP DATA SECURITY LTD.
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 059642/0346 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 6, 2016
From: MALACHI, YUVAL; BENECH, MORI
To: TRAP DATA SECURITY LTD.
Reel/Frame 039950/0615 →
Continuity (1)
Related Publication 20180089432A1 · Mar 29, 2018
Cited By (3)
US 12,321,456 US 12,323,464 US 12,639,173