IP Library Granted Patent US 11,847,222
Granted Patent B2
US 11,847,222 · App. 16/965,170 · Granted Dec 19, 2023

System and method for preventing unwanted bundled software installation

Inventors: Michael Gorelik (West Newton, MA); Mordechai Guri (Nof Ayalon, IL); Ronen Yehoshua (Matan, IL)
Assignee: Morphisec Information Security 2014 Ltd.
G06F21/566G06F8/61H04L63/1491
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 11,847,222
App. No.
16/965,170
Granted
Dec 19, 2023
Kind
B2
Abstract

Embodiments described herein are capable of preventing the installation of unwanted software bundled with a desired application at runtime, while allowing the installation of the desired application to continue as expected. For example, the embodiments described herein create a decoy in memory that preempts unwanted code. The decoy attracts any illegitimate code and diverts it into a dead end (e.g., the code is isolated, thereby preventing it from properly executing), while installation of the legitimate code (i.e., the desired application) flows as expected. The foregoing detects that a reflective loading process of DLL associated with the unwanted application has occurred, identifies the entity that attempted to perform the reflective loading process, and prevents the entity from completing the reflective loading process without terminating the main installer. That is, the main installer will continue as usual (and install the desired application) while the installation of the unwanted application is blocked.

Claims (52)

1. A method performed by a computing device, comprising:

detecting a reflective loading operation configured to store a library associated with a first software application component into an address space of a memory of the computing device allocated for execution of a software application installer configured to install a second software application component;

in response to said detecting, determining that the reflective loading operation is being performed by a downloader included in the software application installer; and

in response to determining that the reflective loading operation is being performed by the downloader, preventing the first software application component from executing while enabling the second software application component to complete installation.

2. The method of claim 1 , wherein said determining comprises analyzing one or more stack frames of a call stack of an operating system executing on the computing system; and

identifying, in the one or more stack frames, that the downloader is loaded into the memory of the computing device based on said analyzing.

3. The method of claim 2 , wherein said preventing comprises:

moving one or more pointers associated with the call stack to a point before the downloader is loaded into the memory of the computing device.

4. The method of claim 1 , further comprising:

obfuscating a first function configured to retrieve an address of a second function from a second library specified as an input to the first function; and

generating a stub version of the first function,

wherein the reflective loading operation comprises a call to the stub version of the first function.

5. The method of claim 4 , wherein said detecting comprising:

receiving an exception thrown by an operating system executing on the computing device in response to the downloader issuing the call to the stub version of the first function.

6. The method of claim 1 , wherein the library is downloaded by the downloader from a server remotely located from the computing device.

7. The method of claim 1 , wherein the downloader is stored on a hard disk of the computing device.

8. A computing device, comprising:

one or more processing circuits; and

a memory coupled to the one or more processing circuits, the memory storing program code configured to be executed by the one or more processing circuits, the program code comprising:

a runtime protector configured to:

detect a reflective loading operation configured to store a library associated with a first software application component into an address space of a memory of the computing device allocated for execution of a software application installer configured to install a second software application component;

in response to said detection, determine that the reflective loading operation is being performed by a downloader included in the software application installer; and

in response to a determination that the reflective loading operation is being performed by the downloader, prevent the first software application component from executing while enabling the second software application component to complete installation.

9. The computing device of claim 8 , wherein the runtime protector is configured to determine that the reflective loading operation is being performed by the downloader included in the software application installer by:

analyzing one or more stack frames of a call stack of an operating system executing on the computing system; and

identifying, in the one or more stack frames, that the downloader is loaded into the memory of the computing device based on said analyzing.

10. The computing device of claim 9 , wherein the runtime protector is configured to prevent the first software application from executing by:

moving one or more pointers associated with the call stack to a point before the downloader is loaded into the memory of the computing device.

11. The computing device of claim 8 , wherein the runtime protector is further configured to:

obfuscate a first function configured to retrieve an address of a second function from a second library specified as an input to the first function; and

generate a stub version of the first function, and

wherein the reflective loading operation comprises a call to the stub version of the first function.

12. The computing device of claim 11 , wherein the runtime protector is configured to detect the reflective loading operation by:

receiving an exception thrown by an operating system executing on the computing device in response to the downloader issuing the call to the stub version of the first function.

13. The computing device of claim 8 , wherein the library is downloaded by the downloader from a server remotely located from the computing device.

14. The computing device of claim 8 , wherein the downloader is stored on a hard disk of the computing device.

15. A computer-readable storage medium having program instructions recorded thereon that, when executed by at least one processor circuit of a computing device, perform a method, the method comprising:

detecting a reflective loading operation configured to store a library associated with a first software application component into an address space of a memory of the computing device allocated for execution of a software application installer configured to install a second software application component;

in response to said detecting, determining that the reflective loading operation is being performed by a downloader included in the software application installer; and

in response to determining that the reflective loading operation is being performed by the downloader, preventing the first software application component from executing while enabling the second software application component to complete installation.

16. The computer-readable storage medium of claim 15 , wherein said determining comprises:

analyzing one or more stack frames of a call stack of an operating system executing on the computing system; and

identifying, in the one or more stack frames, that the downloader is loaded into the memory of the computing device based on said analyzing.

17. The computer-readable storage medium of claim 16 , wherein said preventing comprises:

moving one or more pointers associated with the call stack to a point before the downloader is loaded into the memory of the computing device.

18. The computer-readable storage medium of claim 15 , the method further comprising:

obfuscating a first function configured to retrieve an address of a second function from a second library specified as an input to the first function; and

generating a stub version of the first function,

wherein the reflective loading operation comprises a call to the stub version of the first function.

19. The computer-readable storage medium of claim 18 , wherein said detecting comprising:

receiving an exception thrown by an operating system executing on the computing device in response to the downloader issuing the call to the stub version of the first function.

20. The computer-readable storage medium of claim 15 , wherein the library is downloaded by the downloader from a server remotely located from the computing device.

Assignments (2)
SECURITY INTEREST Recorded Oct 1, 2024
From: MORPHISEC INFORMATION SECURITY 2014 LTD
To: HERCULES CAPITAL, INC.
Reel/Frame 068758/0581 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 22, 2020
From: GORELIK, MICHAEL; GURI, MORDECHAI; YEHOSHUA, RONEN
To: MORPHISEC INFORMATION SECURITY 2014 LTD.
Reel/Frame 054824/0955 →
Continuity (2)
Provisional Application 62646679 · Mar 22, 2018
Related Publication 20210056205A1 · Feb 25, 2021