• STATISTIQUES
  • Il y a eu un total de 3 membres et 6166 visiteurs sur le site dans les dernières 24h pour un total de 6 169 personnes!


    1 membre s'est inscrit dans les dernières 24h!


    Membres: 2 608
    Discussions: 3 580
    Messages: 32 820
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [FR] Root-Me
    Notre équipe se base sur un constat : à l'heure actuelle ou l'information tend à devenir...
    Hacking
    [EN] osix
    Site de challenge qui utilise un système de level on chaque épreuve doit être réussie avant d'accéd...
    Challenges
    [FR] Secuser
    Actualité de la sécurité informatique, fiches virus et hoax, alertes par email, antivirus gratui...
    Hacking
    [EN] Dare your mind
    JavaScript: 6, Crypto: 44, Stegano: 36, Logic: 13, Special: 27, Science: 11, Realistic: 7, Programming: 10, Crack It: 6,...
    Challenges
    [FR] Asp-php
    Tutoriaux sur ASP, PHP, ASP.net, XML, SQL, Javascript, HTML, VML - Scripts et ressources pour webmasters - Forums d&#...
    Programmation
    [FR] Forum-Webmaster
    Une communauté webmaster pour apporter / recevoir de l'aide en création de site internet. Webmaster...
    Webmaster
    [EN] Sabre Films
    Site de challenge présenté sous la forme d'une quête. Vous êtes un détective et devrez résoudre d...
    Challenges

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
[AIDE] Ajout d'une Lib en C
11-02-2013, 20h43
Message : #1
sakiir Hors ligne
[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
+1 (0) -1 (0) Répondre
11-02-2013, 22h49
Message : #2
Yttrium Hors ligne
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)
BufferoverfloW

Всё минется, одна правда останется
+1 (0) -1 (0) Répondre
12-02-2013, 00h26
Message : #3
sakiir Hors ligne
[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
+1 (0) -1 (0) Répondre
12-02-2013, 14h18
Message : #4
ark Hors ligne
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
+1 (0) -1 (0) Répondre
12-02-2013, 19h02 (Modification du message : 12-02-2013, 19h43 par sakiir.)
Message : #5
sakiir Hors ligne
[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 ! Smile

Admettons cette lib ? Comment je procède ?
+1 (0) -1 (0) Répondre
13-02-2013, 23h23 (Modification du message : 13-02-2013, 23h23 par InFamouZz.)
Message : #6
InFamouZz Hors ligne
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>
+1 (0) -1 (0) Répondre
14-02-2013, 00h44
Message : #7
sakiir Hors ligne
[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 ..
+1 (0) -1 (0) Répondre
14-02-2013, 01h40 (Modification du message : 14-02-2013, 01h54 par Sh4dows.)
Message : #8
Sh4dows Hors ligne
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
Si tu ne connais pas le nom du paquet, le mieux est de visiter le site officiel (ex. SDL => hxxp://www.libsdl.org/) ou de Googler !
Ensuite j'ajoute mon header ncurses dans mes .c :
Code :
#include <ncurses.h>
Et je compile avec la lib :
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
// On passe de .c à .o

Code :
ar cr libperso.a file.o
// .o to .a

Code :
ranlib libperso.a
// RTFM Tongue


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 !
+1 (2) -1 (0) Répondre
14-02-2013, 09h05
Message : #9
sakiir Hors ligne
[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 :

Si tu veux installer par exemple ncurses sous Debian et ses dérivés :
Code :
apt-get install libncurses5-dev
Si tu ne connais pas le nom du paquet, le mieux est de visiter le site officiel (ex. SDL => hxxp://www.libsdl.org/) ou de Googler !
Ensuite j'ajoute mon header ncurses dans mes .c :
Code :
#include <ncurses.h>
Et je compile avec la lib :
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
// On passe de .c à .o

Code :
ar cr libperso.a file.o
// .o to .a

Code :
ranlib libperso.a
// RTFM Tongue


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

Je te remercie beaucoup !!!!
je comprends mieux !
+1 (0) -1 (0) Répondre
04-05-2013, 18h23 (Modification du message : 04-05-2013, 18h23 par oosfalte.)
Message : #10
oosfalte Hors ligne
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
doc-linux-ja-html: /usr/share/doc/HOWTO/ja-html/LFS-BOOK/appendixa/ncurses.html
doc-linux-ja-html: /usr/share/doc/HOWTO/ja-html/LFS-BOOK/chapter05/ncurses.html
doc-linux-ja-html: /usr/share/doc/HOWTO/ja-html/LFS-BOOK/chapter06/ncurses.html
ekg2-core: /usr/share/doc/ekg2-core/book-en/plugin-ncurses.html
ekg2-core: /usr/share/doc/ekg2-core/book-pl/plugin-ncurses.html
latrace: /etc/latrace.d/headers/ncurses.h
libghc-ncurses-doc: /usr/lib/ghc-doc/haddock/ncurses-0.2.1/ncurses.haddock
libncurses5-dev: /usr/include/ncurses.h
libncursesw5-dev: /usr/include/ncursesw/ncurses.h
php-doc: /usr/share/doc/php-doc/html/book.ncurses.html
php-doc: /usr/share/doc/php-doc/html/intro.ncurses.html
php-doc: /usr/share/doc/php-doc/html/ref.ncurses.html
~ #

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
+1 (1) -1 (0) Répondre
04-05-2013, 19h29 (Modification du message : 04-05-2013, 19h30 par b0fh.)
Message : #11
b0fh Hors ligne
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
/.
/bin
/bin/bash
/usr
/usr/bin
/usr/bin/clear_console
/usr/bin/bashbug
[...]
$ dpkg-query -S /usr/include/ctype.h
libc6-dev: /usr/include/ctype.h
+1 (0) -1 (0) Répondre
04-05-2013, 20h51
Message : #12
oosfalte Hors ligne
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
[...]
libspatialite-dev: /usr/include/spatialite/sqlite3.h
libsqlite3-dev: /usr/include/sqlite3.h
~# dpkg-query -S /usr/include/sqlite3.h
dpkg-query: aucun chemin ne correspond à /usr/include/sqlite3.h
+1 (0) -1 (0) Répondre
04-05-2013, 21h23
Message : #13
gruik Hors ligne
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 ?)
+1 (0) -1 (0) Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  [C-AIDE] Fuzzer De Programme sakiir 2 175 16-05-2013, 11h21
Dernier message: Sh4dows
  [C] Besoin d'aide pour débugger mon code Polo 4 303 22-03-2013, 01h08
Dernier message: Polo

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut