[AIDE] Ajout d'une Lib en C
|
11-02-2013, 20h43
Message : #1
|
|
sakiir
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de Messages : 411 Sujets : 51 Points: 34 Inscription : Sep 2012 |
[AIDE] Ajout d'une Lib en C
Salut , Salut,
Alors voila j'ai toujours eu un problème pour ajouter une bibliothèque en C.. Alors c'est simple j'aimerais une sorte de mini tuto pour savoir comment faire de A à Z , Ça serait vachement cool , étant donné qu'on ne trouve pas grand chose sur google. Ps: Je vous garanti que ça en aiderai plus d'un ! hein InfamouzZ ? :p |
|
11-02-2013, 22h49
Message : #2
|
|
Yttrium
Membre actif Messages : 106 Sujets : 14 Points: 48 Inscription : Jul 2012 |
RE: [AIDE] Ajout d'une Lib en C
Euh tu peux juste préciser ton OS et ton IDE ?
(Ubuntu Codeblocks != XP VS08) |
|
12-02-2013, 00h26
Message : #3
|
|
sakiir
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de Messages : 411 Sujets : 51 Points: 34 Inscription : Sep 2012 |
RE: [AIDE] Ajout d'une Lib en C
Je suis sur ubuntu , oui j'avais oublié de préciser !
Et je n'utilise pas d'ide Nano + gcc |
|
12-02-2013, 14h18
Message : #4
|
|
ark
Psyckomodo! Messages : 1,033 Sujets : 48 Points: 317 Inscription : Sep 2011 |
RE: [AIDE] Ajout d'une Lib en C
Admettons que tu veuille linker avec la lib curl.
Pour cela, tu vas utiliser dans tes fichiers C des fonctions de cette lib. Il te faudra donc penser a inclure le fichier header correspondant. En l'occurrence : #include <curl/curl.h> Ensuite, ta ligne de compilation avec gcc va etre de cette forme: Code : gcc source.c -o prog -lcurl l'option -l permet de linker avec une lib deja présente sur ton système (dans le dossier /lib/ en théorie, mais ça dépends des distributions.) Si tu as toi meme cree une lib, et que tu veux linker avec, il faudra que tu precise le chemin d'acces. Pour cela, il faut utiliser l'option -L de gcc (admettons pour l'exemple que ta lib s'appelle libmy.so): Code : gcc source.c -o prog -L . -lmy |
|
12-02-2013, 19h02
(Modification du message : 12-02-2013, 19h43 par sakiir.)
Message : #5
|
|
sakiir
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de Messages : 411 Sujets : 51 Points: 34 Inscription : Sep 2012 |
RE: [AIDE] Ajout d'une Lib en C
ok merci je vais voir si je peux le faire !
Admettons cette lib ? Comment je procède ? |
|
13-02-2013, 23h23
(Modification du message : 13-02-2013, 23h23 par InFamouZz.)
Message : #6
|
|
InFamouZz
Membre actif Messages : 76 Sujets : 21 Points: 3 Inscription : Dec 2011 |
RE: [AIDE] Ajout d'une Lib en C
quelle librairie tu veut mettre sakir ?
#include <nom_libraire.h> |
|
14-02-2013, 00h44
Message : #7
|
|
sakiir
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de Messages : 411 Sujets : 51 Points: 34 Inscription : Sep 2012 |
RE: [AIDE] Ajout d'une Lib en C
je sais inclure une librairie dans mon fichier ..
Je ne sais pas l'installer sur la machine ! GTK par exemple SDL Curl Etc .. |
|
14-02-2013, 01h40
(Modification du message : 14-02-2013, 01h54 par Sh4dows.)
Message : #8
|
|
Sh4dows
Tweetos Messages : 293 Sujets : 5 Points: 49 Inscription : Dec 2012 |
RE: [AIDE] Ajout d'une Lib en C
Installation d'une lib :
Si tu veux installer par exemple ncurses sous Debian et ses dérivés : Code : apt-get install libncurses5-dev Ensuite j'ajoute mon header ncurses dans mes .c : Code : #include <ncurses.h> Code : gcc *.c -lncurses Créer ta propre librairie : Souvent on donne l'extension .a à une librairie. Si tu veux par exemple compiler la tienne en .a il suffit de faire : Code : gcc -c file.c Code : ar cr libperso.a file.o Code : ranlib libperso.a Ensuite tu link ta lib lors de la compilation, sans oublier l'inclusion d'un .h listant les fonctions de ta lib.a !!! Code : gcc *.c -L chemin/lib/exemple/ -lperso
Faites ce que je dis et non ce que je fais !
|
|
14-02-2013, 09h05
Message : #9
|
|
sakiir
[sakiir@Ubuntu]:~$ ./ExploitMe ShellC0de Messages : 411 Sujets : 51 Points: 34 Inscription : Sep 2012 |
RE: [AIDE] Ajout d'une Lib en C
(14-02-2013, 01h40)Sh4dows a écrit : Installation d'une lib : Je te remercie beaucoup !!!! je comprends mieux ! |
|
04-05-2013, 18h23
(Modification du message : 04-05-2013, 18h23 par oosfalte.)
Message : #10
|
|
oosfalte
Flying Cloud Messages : 47 Sujets : 3 Points: 8 Inscription : Jan 2013 |
RE: [AIDE] Ajout d'une Lib en C
Bonjour,
quand je récupère des bouts de code en C sur le net je galère moi aussi pour retrouver les paquets qui installeront les headers demandés. J'ai trouvé une solution ici: http://www.debianhelp.co.uk/findfile.htm Donc on installe le paquet apt-file, on met à jour le cache 'apt-file update' et on cherche le header voulu (ou fichier quelconque), ce qui donne pour ncurses.h: Code : ~ # apt-file search ncurses.h Sinon connaissez vous un site qui fait le lien entre un fichier (header ou autre) et le paquet qui l'installe ? ok il ya cà :http://packages.debian.org/ , autant pour moi |
|
04-05-2013, 19h29
(Modification du message : 04-05-2013, 19h30 par b0fh.)
Message : #11
|
|
b0fh
Membre actif Messages : 210 Sujets : 17 Points: 309 Inscription : Jul 2012 |
RE: [AIDE] Ajout d'une Lib en C
Hello,
La procédure que Sh4dows décrit concerne les librairies statiques, ç.a.d celles qui sont copiées a l'intérieur du binaire final pendant la phase d'édition de liens (ld). ça donne des binaires qui marchent partout, mais qui sont très lourds, et avec cette manière le système se retrouve a stocker plusieurs dizaines, voire centaines de fois le même code dans des binaires différents. Pour pallier à ce problème les systèmes récents utilisent des librairies dynamiques (.dll sous windows, .so sous unix). Pour gcc, lui passer l'option "-shared" (et plusieurs .o en argument) produira un fichier .so, qu'on va typiquement aller stocker dans /usr/lib ou /usr/local/lib. Pas besoin de passer par ar. Quand la librairie est dynamique, c'est le programme ld.so qui est chargé de trouver les libs au moment de l'exécution. Par défaut il cherche dans les endroits configurés dans /etc/ld.so.conf (si tu modifies ce fichier, il faut lancer la commande ldconfig, le package manager le fait en général automatiquement quand il ajoute des libs a un nouvel endroit). Sinon, pour faire le lien entre un fichier et le paquet qui l'installe, pour les distributions basée sur dpkg (que APT soit présent ou pas): Code : $ dpkg-query -L bash |
|
04-05-2013, 20h51
Message : #12
|
|
oosfalte
Flying Cloud Messages : 47 Sujets : 3 Points: 8 Inscription : Jan 2013 |
RE: [AIDE] Ajout d'une Lib en C
@b0fh
merci j'ignorais l'histoire du ld.so. Après vérif, en effet j'ai 2 fichiers dans mon /etc/ld.so.conf.d pour la configuration. J'ai lu qu'on pouvait aussi modifier LD_LIBRARY_PATH. Pour ce qui est de dpkg-query -L ou -S il me semble qu'ils font leur recherche uniquement sur les paquets installés, non? Aujourd'hui j'avais besoin de sqlite3.h et apt-file m'indiquait le paquet libsqlite3-dev à installer alors que 'dpkg-query S /usr/include/sqlite3.h' ne trouvait rien de son côté. Code : ~# apt-file search sqlite3.h |
|
04-05-2013, 21h23
Message : #13
|
|
gruik
gouteur de savon Messages : 757 Sujets : 44 Points: 482 Inscription : Oct 2012 |
RE: [AIDE] Ajout d'une Lib en C
(04-05-2013, 20h51)oosfalte a écrit : Pour ce qui est de dpkg-query -L ou -S il me semble qu'ils font leur recherche uniquement sur les paquets installés, non? oui, c'est effectivement l'interet de apt-file sinon au lieu de dpkg-query j'utilisais dpkg directement perso, ça marche aussi (j'imagine que l'un est le frontend générique de l'autre ?) |
|
« Sujet précédent | Sujet suivant »
|
Sujets apparemment similaires… | |||||
Sujet | Auteur | Réponses | Affichages | Dernier message | |
[C-AIDE] Fuzzer De Programme | sakiir | 2 | 212 |
16-05-2013, 11h21 Dernier message: Sh4dows |
|
[C] Besoin d'aide pour débugger mon code | Polo | 4 | 366 |
22-03-2013, 01h08 Dernier message: Polo |
Utilisateur(s) parcourant ce sujet : 1 visiteur(s)