I've thought some more deeply about the usage of unstripped libs.

On Tue, 22 Oct 2002 11:31:14 -0500
[EMAIL PROTECTED] wrote:

> Package: xlibs-dbg
> [...]
>  Unstripped versions of Xlib's internationalization loadable modules are
>  provided in /usr/X11R6/lib/debug/X11/locale/common.  Note that if you wish
>  to debug these modules, you will need to set XLOCALEDIR to
>  /usr/X11R6/lib/debug/X11/locale.  Also note that for security reasons,
>  unprivileged users are unable to override XLOCALEDIR in this way, so you
>  may have to perform your debugging of the Xlib modules as root.

It may worth mentioning that by intercepting dlopen() call,
 we can make a process to load alternate(unstripped) modules
without having root privilege.

How about creating dlwrap.c which looks like
------------------------BEGIN HERE------------------------
#define _GNU_SOURCE 1
#include    <dlfcn.h>
#include    <string.h>
void * dlopen(const char *filename, int flag){
        static void * (* fptr)() = 0;
        char buffer[] = "/usr/X11R6/lib/debug/X11/locale/common/0123456789ABCDEF";
        if (!fptr) {
                fptr = dlsym(RTLD_NEXT, "dlopen");
                if (!fptr) 
                        return 0;
        }
        if ((strncmp("/usr/X11R6/lib/X11/locale/common/", filename, 33) == 0) && 
(strlen(filename) < 33+16)){
                memcpy(buffer+32, filename+33, strlen(filename) -32);
                return ((*fptr)(buffer, flag));
        }
        return ((*fptr)(filename, flag));
}
------------------------END HERE------------------------

and doing
 ~$ gcc -shared -o dlwrap.so dlwrap.c -ldl
 ~$ LD_PRELOAD=./dlwrap.so FOOBAR
?



-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to