Assist Shortcuts
ComBroker
Injector
Library Broker
ComBroker Shortcuts
Overview
  An overview on using ComBoker
 
ComBroker Functions
  ComBrokerInterfaceRegistered
ComBrokerRegisterInterface
ComBrokerUnregisterByInterface

ComBrokerUnregisterByHandler
 
Injector Shortcuts
Injector Functions
  CreateInjectedProcess
CreateInjectedProcessAsUser
InjectRunningProcess
 
Library Broker Shortcuts
Overview
  An overview on using Library Broker
  A complete example for implementing your own proxy method.
 
Library Broker Functions
  LibraryBrokerProxyRegistered
LibraryBrokerRegisterProxy
LibraryBrokerUnregisterProxy
 
Library Broker Structures
  LIBBROKERHEADER
 
Downloads
  The source code for IridiumX Assist, Generation One can be downloaded here.

 

 
 EvoCorp Home    Advanced Delphi Development   

 

IridiumX Assist
Generation One

IridiumX Assist, Generation One, represents a range of powerful "instrumentation assist" technologies specifically designed for Delphi developers to assist broker binary execution. In my time as a developer there have been countless times where I have needed to modify existing code, generally where that same code has had known problems and there were no readily available workarounds.

From a corporate point of view, IridiumX Assist compliments innovative systems research and development techniques through its instrumentation assist technologies, enabling you to "instrument and extend" existing application functionality. In a commercial world dictating binary-only application releases, the lack of access to the relevant source code is often a critical limitation for delivering application extensions. IridiumX Assist helps you to overcome these limitations by brokering code execution on behalf of the you, the developer.

So, what does Generation One of IridiumX Assist offer you as a developer? Currently there are 3 core technological components of IridiumX Assist:

ComBroker

ComBroker implements direct interface brokering for application developers, empowering the developer with the core mechanics required to transform the ultimate behaviour of any COM interface.

ComBroker is excellent for behavioural modification of third party COM interfaces, enabling you, the developer, to control existing interface implementations. Because the negotiation mechanics utilized by ComBroker bind directly to the source interface, the physical characteristics of that interface are transferred to you in whole, whether called from your code or existing third party code.

So, How Simple Is ComBroker?

ComBroker works via interface "handlers" - you register an existing interface and an associated "handler" for that interface, and your handler automatically receives all calls destined for the existing interface.

For example, lets say you wanted to "take control" of the way an existing IOleClientSite interface operated.

From within the Delphi IDE you would create an object that supports both IInterfaceHandler and IOleClientSite and register your handler and the existing IOleClientSite interface with ComBroker. As soon as your handler's registered and activated, your handler will start receiving calls originally destined for the existing IOleClientSite interface.

It's true, it is that simple!

Cross Process Brokering with ComBroker

For ComBroker to access an interface, it must be loaded into the same process space as the interface you need to broker. If cross process brokering is what you're after, you'll need Injector to help you cross those boundaries.
 
 

Injector
Injector delivers an incredibly easy to use cross-process injection engine, enabling you to run your code from within another application.

What is Library Injection?

Library Injection essentially refers to the mechanics of forcing another running process to load a library (or DLL "payload") that ordinarily it wouldn't. When loaded, this library is started up in the address space of the target process - this can be incredibly handy for serious cross-process development or API hooking, particularly when the target process is not your own.

IridiumX Assist Injector Technologies are compatible across the Microsoft's Windows '95, '98, Me, NT 4, 2000 and XP environments!
 

Library Broker
Library Broker delivers another easy to use technology that enables you to redirect DLL method calls to your implementation of that same code.

Brokering library methods presents one of the most powerful tools for researching and extending the inner structure of existing applications, providing almost limitless possibilities and promoting innovative application development. Take the following for example:

  • By registering a proxy for DllGetClassObject against a library you effectively gain control over the implementation of that object, i.e., if you want to prevent that object from being created you can fail the call, likewise if you need to implement your own object instead of the original then you have the opportunity to do so.
     
  • By registering proxies against the methods of WSock32, UrlMon or ShDocVw you can develop an incredible learning tool for determining how particular applications converse with the world around them, including communication techniques and socket data analysis.
     
  • Hooking API calls. This has the inherent advantage of enabling you to trace API calls issues by an application and where required, extending the way a particular call operates.

All of these ideas have the potential to completely reshape the way an application works, from fixing that which is broken to the introduction of new functionality. More importantly however, all of these ideas are incredibly simple to introduce to your application - by reproducing a particular function, Library Broker will divert execution from the original function direct to your code in one simple call.

It is important to note that Library Broker works by updating a library's import "table of contents". This means that calls originating from within the library itself will not be brokered to your application, however calls originating from another library will be brokered through your code.

Cross Process Brokering

For Library Broker to proxy a method for you it must be loaded into the same process space as the interface you need to broker. If cross process brokering is what you're after, you'll need Injector to help you cross those boundaries.

 

Requirements

IridiumX Assist requires Delphi 6, minimum.

Important - BEFORE Using IridiumX Assist!

Please note that THIRD PARTY COPYRIGHT AND LICENSING AGREEMENTS MAY BE APPLICABLE - always check the licensing information of the application you're about to invade for any and all licensing restrictions that may apply!
 

IridiumX Assist uses EliRT_OMF_B.obj from from EliRT version 1.01, created by Radim Picha. Terms of usage for EliRT defines that this file may be used free for noncommercial use. For more information, please refer to www.anticracking.sk/EliCZ.
 
Microsoft Internet Explorer is a registered trademark of Microsoft Corporation.
This page last updated on September 8, 2005.