On Fri, Oct 24, 2003 at 05:18:25PM +0000, Vuko Brigljevic wrote:
> d'execution en cherchant la librairie dans le sentier definit
> dynamiquement, soit en "pseudo-code":
> 
> libName  = getLibNameFromRequest();
> loadPath = getLoadPathFromRequest();
> 
> /* chercher la librairie dans le sentier defini   */
> fullLibPath = searchLibInPath(libName,loadPath);
> 
> dlopen(fullLibPath);

en validant loadPath et libName pour des probl�mes de s�curit�, et en
destant le code de retour de dlopen(), d'accord.

> Ce serait tout a fait faisable, et probablement
> pas si difficile a ecrire, mais je ne peux pas me 
> permettre de le faire dans mon cas, notamment car
> je ne peux modifier la partie du code ou se trouve
> reellement l'appel a dlopen:

Tr�s dommage.

Si le code est *compilable*, alors faire en sorte que cette partie de
code soit compil�e avec gcc -Ddlopen(x)=mon_dlopen(x) et �crire
cette fonction-wrapper.

Si le code n'est pas compilable, alors il reste une possibilit�:
red�finir la fonction de biblioth�que dlopen() via un LD_PRELOAD
en une nouvelle fonction qui fait ce qui est n�cessaire puis appelle
dlopen(). Cela fonctionnera m�me si le code est propri�taire -- � ma
connaissance.

On a donn� ici m�me un tel exemple (qui red�finit le wrapper libc de
open):

http://search.alphanet.ch/cgi-bin/search.cgi?max_results=10&type=long&msgid=Pine.LNX.4.10.10002191148200.25891-100000%40vulcan.alphanet.ch&domain=ml-gull

le code:

http://www.uwsg.indiana.edu/hypermail/linux/kernel/9811.2/0639.html

Pas test� en dehors de la libc, mais �a devrait marcher.

> Si j'ai mal compris ou se trouvait la contradiction,
> je demande pardon pour la generation de bruit inutile ;)

Ce qui manquait c'�tait l'information essentielle: `ce code est
propri�taire / closed source', ce qui semble maintenant �tre
le cas: �a complique les choses de ne pas avoir la source.


_______________________________________________
gull mailing list
[EMAIL PROTECTED]
http://lists.alphanet.ch/mailman/listinfo/gull

Répondre à