Re: How to insert into a binary file a call to a shared library function?

From: Richard D. Latham (lathamr_at_us.ibm.com)
Date: 08/17/04


Date: Mon, 16 Aug 2004 19:52:30 -0400


"Gary R. Hook" <nospam@nospammers.net> writes:

> Israel Waldman wrote:
>
>> Hi All,
>> I'm using an AIX 5.1 over power_604.
>> I have an executable file (binary file) which is written in C – I
>> don't have its sources.
>> I would like to perform "code modification", I.e., to open this binary
>> file and to insert in it a call (machine commands) to a shared library
>> function which is already loaded into memory by other program.
>
> Code is in read-only pages; you can't modify text. In addition,
> inserting a function call means moving everything following it in
> memory, as well as all references to the following region from
> the data area (function descriptors, etc).
>
> In short, trying to manipulate a live process in the fashion
> described is not possible.
>

Hmmmm. While I haven't used their tool personally, I have some folks
from OC Systems on-site , and their tool "Root Cause" can do just
that. They have several patents on the underlying techniques.

Slick tool ... they can insert pretty much arbitary complexity code (
C, C++ Java, and Ada ) into the in-memory copy of an executable.

I'm in disconnected mode just now, but I think their home page is
   http://www.ocsystems.com

-- 
#include  <disclaimer.std>    /* I don't speak for IBM ...           */
                              /* Heck, I don't even speak for myself */
                              /* Don't believe me ? Ask my wife :-)  */
Richard D. Latham   lathamr@us.ibm.com


Relevant Pages