Emulation Layer for COM Server DLL Security

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Dynamic link libraries (DLLs) often contain unwanted code such as spyware and browser helper objects that are difficult to remove without affecting application functionality or causing system crashes, as they are not easily freed from memory due to their integration with COM client applications.

Innovation Solution

An emulation layer is inserted between the COM server DLL and the COM client application to emulate interfaces exported by the DLL, allowing the DLL to be safely removed from memory without disrupting application operations by replacing COM pointers with proxy interfaces and managing reference counts.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Object-affected harmful factors

If the COM server DLL is freed from memory to remove unwanted code, then security threats are eliminated, but the COM client application crashes or becomes unstable

Engineering Contradiction:
Improveunwanted code in DLLVSAvoidapplication stability
Core Design Contradiction:
Object-affected harmful factorsVSReliability

Solution Approach 1:

The patent introduces a proxy interface as an intermediary layer between the COM client application and the COM server DLL. This proxy maintains reference counts and manages the lifecycle of COM objects, allowing the DLL to be unloaded from memory while keeping the application stable. The proxy acts as a mediator that handles the complexity of COM object management, enabling safe removal of malicious DLLs without crashing the application.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the COM interface functionality by creating a proxy interface that separates the reference counting and lifecycle management from the actual COM server DLL. This segmentation allows the DLL to be independently unloaded while the proxy remains in memory to maintain application stability, effectively dividing the system into manageable components with distinct responsibilities.

Inventive Principle:
Principle #1Segmentation

2Object-affected harmful factors

If the COM server DLL is forcibly removed from memory, then malicious code is eliminated, but reference counts become inconsistent and applications malfunction

Engineering Contradiction:
Improvemalicious DLL codeVSAvoidreference count consistency
Core Design Contradiction:
Object-affected harmful factorsVSStability of the object's composition

Solution Approach 1:

The proxy interface serves as an intermediary that maintains accurate reference counts for COM objects even after the server DLL is unloaded. It tracks the number of active references and only allows DLL unloading when the reference count reaches zero, ensuring consistency and preventing corruption of the COM object lifecycle management.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If the BHO is allowed to remain in memory for easy access, then application functionality is maintained, but security vulnerabilities persist

Engineering Contradiction:
ImproveCOM interface accessibilityVSAvoidsecurity threats in BHO
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent creates a proxy copy of the COM interface that replicates the necessary functionality for application access. This proxy interface provides the same operational capabilities as the original BHO interface while being free from malicious code, allowing applications to continue functioning normally while the dangerous original DLL can be safely removed or quarantined.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS8863159B2System, method and computer program product for inserting an emulation layer in association with a COM server DLL
Publication Date: 2014.10.14 MCAFEE LLC
  • US8863159B2 patent drawing
  • US8863159B2 patent drawing
  • US8863159B2 patent drawing

AI summary

A system, method and computer program product are provided. In use, a COM server dynamic link library is identified. Further, an emulation layer is inserted in association with the COM server dynamic link library to emulate interfaces exported by the COM server dynamic link library. As an option, it may be determined whether the COM server DLL is loaded, and the emulation layer may be inserted in response to the determination.