Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1409 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Exécuter une library (.so) sous Linux

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Exécuter une library (.so) sous Linux

n°522467
biniou
Posté le 24-09-2003 à 18:50:13  profilanswer
 

Je cherche comment exécuter une librarie dynamique sous Linux (question très mal formulée, voir exemple :D). Je prends l'exemple de la libc. Si je tape "/lib/libc.so.6" dans mon shell, la librairie m'affiche des infos, comme son n° de version par exemple. Comment obtenir ce résultat ? Y a-t-il un point d'entrée particulier ?
 
Merci...

mood
Publicité
Posté le 24-09-2003 à 18:50:13  profilanswer
 

n°522533
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 24-09-2003 à 20:04:43  profilanswer
 

Euh... pour autant que je sache, ce genre de librairie est destinée à être liée avec un exécutable... Un peu comme une dll sous Windows quoi ! Tu n'irais pas exécuter une dll ! Pourquoi exécuter une lib linux alors ?


---------------
J'ai un string dans l'array (Paris Hilton)
n°522599
R3g
fonctionnaire certifié ITIL
Posté le 24-09-2003 à 20:55:45  profilanswer
 

Harkonnen a écrit :

Euh... pour autant que je sache, ce genre de librairie est destinée à être liée avec un exécutable... Un peu comme une dll sous Windows quoi ! Tu n'irais pas exécuter une dll ! Pourquoi exécuter une lib linux alors ?


Le fait que ca semble possible, ce que j'ignorais, et que même si ça n'a aucun intérêt j'aimerais bien savoir comment c'est possible.
(ceci est un drapal)

n°522693
biniou
Posté le 24-09-2003 à 21:53:30  profilanswer
 

Harkonnen a écrit :

Euh... pour autant que je sache, ce genre de librairie est destinée à être liée avec un exécutable... Un peu comme une dll sous Windows quoi ! Tu n'irais pas exécuter une dll ! Pourquoi exécuter une lib linux alors ?


 
c bon, je sais ce que c qu'une librairie dynamique, mais le pb s'est posé aujourd'hui au taf. L'intérêt de la chose est par exemple de connaître la version d'une lib rien qu'en "l'exécutant", pas besoin d'un autre binaire avec lequel linker...
Et cela fonctionne, lancez la lib que je donne en exemple (libc.so.6 dans mon cas), il sort un petit descriptif, n° de version de la lib, n° de version du compilateur.... g retrouvé une partie de ce mécanisme dans les sources, mais g pas encore tout compris, je vais tenter ça ce soir chez moi pour voir... Mais si qqun connait bien ce mécanisme, merci de me l'expliquer (brièvement), ou de me donner un lien pouvant m'éclairer. Merci...


Message édité par biniou le 24-09-2003 à 21:55:40

---------------
LE topic à lire
n°522774
Taz
bisounours-codeur
Posté le 24-09-2003 à 23:00:35  profilanswer
 

si vous avez pas compris le princip de bibliothèques,, z'etes pas sortie de l'affaire ...
 
d'un autre coté un pauvre programme de quelque ligne doit pouvoir faire ça ...
 
sinon string + grep  :D

n°522776
Taz
bisounours-codeur
Posté le 24-09-2003 à 23:03:37  profilanswer
 

1 lien sur google : objdump

n°522800
biniou
Posté le 24-09-2003 à 23:47:59  profilanswer
 

Taz a écrit :

1 lien sur google : objdump


 
encore une fois, ce n'est pas ce que je demande. Si je voulais ce genre de truc, je ferais un binaire tout con qui link avec la lib en question.... mais là, je ne veux avoir à utiliser que la lib !!!
 
voilà l'exemple :
 

Code :
  1. [biniou@server biniou]$ /lib/libc.so.6
  2. GNU C Library stable release version 2.3.1, by Roland McGrath et al.
  3. Copyright (C) 2003 Free Software Foundation, Inc.
  4. This is free software; see the source for copying conditions.
  5. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
  6. PARTICULAR PURPOSE.
  7. Compiled by GNU CC version 3.2.2 (Mandrake Linux 9.1 3.2.2-1mdk).
  8. Compiled on a Linux 2.4.21 system on 2003-02-17.
  9. Available extensions:
  10.         GNU libio by Per Bothner
  11.         crypt add-on version 2.1 by Michael Glad and others
  12.         linuxthreads-0.10 by Xavier Leroy
  13.         BIND-8.2.3-T5B
  14.         libthread_db work sponsored by Alpha Processor Inc
  15.         NIS(YP)/NIS+ NSS modules 0.19 by Thorsten Kukuk
  16. Report bugs using the `glibcbug' script to <bugs@gnu.org>.
  17. [biniou@server biniou]$


 
voilà, comme vous pouvez le voir, je ne tape que le nom de la librairie, et il m'affiche tout ce qui suit.... c tout ce que je veux.
 
PS : c bon, je connais un peu mon boulot quand même, je sais ce qu'est une lib. J'ai d'ailleurs moi même été surpris du résultat obtenu en lançant à tout hasard la lib...


Message édité par biniou le 24-09-2003 à 23:52:06

---------------
LE topic à lire
n°522803
Taz
bisounours-codeur
Posté le 24-09-2003 à 23:53:20  profilanswer
 

on sait pas on te dit, et on te dit aussi que ça doit etre très simple de faire un script programme pour sortir tout ça

n°522804
Taz
bisounours-codeur
Posté le 24-09-2003 à 23:56:31  profilanswer
 

readelf aussi

n°522834
biniou
Posté le 25-09-2003 à 00:59:44  profilanswer
 

Taz a écrit :

on sait pas on te dit, et on te dit aussi que ça doit etre très simple de faire un script programme pour sortir tout ça


 
je pense que tu n'as pas compris ce que j'attends, je ne veux pas insister, je veux juste que tu comprennes. Je ne veux rien écrire d'autre que ma librairie. Tu me donnes des liens vers objdump ou readelf, je ne veux pas avoir à utiliser d'outil externe à la librairie, sinon y a longtemps que ce serait fait (c même déjà fait depuis longtemps en fait). Je pense qu'il suffit d'implémenter un point d'entrée particulier dans cette librairie... Bon, ben je vais décortiquer les sources de la libc....


Message édité par biniou le 25-09-2003 à 01:00:59

---------------
LE topic à lire
mood
Publicité
Posté le 25-09-2003 à 00:59:44  profilanswer
 

n°523577
europium
Ancien leader WormsHL
Posté le 25-09-2003 à 22:05:30  profilanswer
 

je crois que la reponse on te la filer ! (je suppose)
un grep doit pouvoir faire l'affaire, surement que dans une bilbio tu dois pouvoir mette une en-tete
 
est-ce que ca marche avec toutes les biblio ? celles que toi tu as faites par exple ?


---------------
EurOPiUM, leader de WormsHL
n°523626
biniou
Posté le 25-09-2003 à 23:50:17  profilanswer
 

europium a écrit :

je crois que la reponse on te la filer ! (je suppose)
un grep doit pouvoir faire l'affaire, surement que dans une bilbio tu dois pouvoir mette une en-tete
 
est-ce que ca marche avec toutes les biblio ? celles que toi tu as faites par exple ?


 
1. Je ne veux pas utiliser d'outil externe (même pas grep)
2. Je cherche justement à implémenter un comportement que j'ai constaté, qui fonctionne sur certaines lib. Je n'ai pas eu le temps d'essayer au taf aujourd'hui, g juste constaté la présence d'un point d'entrée particulier nommé __init_main (d'ailleurs, le commentaire associé indiquait clairement que cette fonction faisait ce que j'attendais)... j'espère avoir le temps demain pour essayer ça (suis trop crevé pour essayer maintenant :D)


---------------
LE topic à lire

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Exécuter une library (.so) sous Linux

 

Sujets relatifs
executer un script chaque jour à une heure +/- preciseProblème de date avec php et linux
[linux] commication avec une appli java depuis le kernelNouvelle commande executer !?
Defit : Nouvelle commande executerexécuter un programme externe sur la machine du visiteur
windows ou linux : comment inclure de la video ?Python, wxPython, windows, linux
apprentissage asm sous linux[EXCEL] Exécuter une macro suite à une saisie
Plus de sujets relatifs à : Exécuter une library (.so) sous Linux


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR