IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

import statique Advapi32.lib


Sujet :

Windows

  1. #1
    Invité
    Invité(e)
    Par défaut import statique Advapi32.lib
    Bonjour,
    J'ai besoin de vérifier un hash signé/chiffrer une clé avec une clé publique etc. donc d'utiliser les fonctions cryptographiques de la windows api seulement je ne veux pas importer ces fonctions dynamiquement/les appeler depuis Advapi32.dll pour des raisons de sécurité, sa serait bien aussi si je pourrais avoir seulement les fonctions d'ont j'ai besoin en dur , donc si je fait #pragma comment(lib, "Advapi32.lib") puis en appelant mes fonctions normalement (en les écrivant directement) ça serait bon ? dans cette exemple : http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx on peut voir ceci : #pragma comment(lib, "crypt32.lib") je ne voit pas trop d'où sort ce .lib , est-il plus spécifique a certaines fonctions ?

    Merci d'avance.
    Dernière modification par Invité ; 24/06/2014 à 22h08.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Que veux-tu dire par "en dur"?
    Advapi32.lib est une bibliothèque statique d'importation, donc les fonctions ne seront jamais copiées dans l'exécutable final. C'est juste que tu pourras appeler les fonctions de Advapi32.dll directement via l'Import Table de ton exécutable, au lieu d'avoir à faire LoadLibrary()+GetProcAddress().


    Quant à Crypt32, apparemment la CryptoAPI est divisée entre les deux DLLs AdvAPI32 et Crypt32.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci pour ta réponse en réalité oui je pensais que ça allais les importer en dur dans l'éxécutable le problème c'est que je veux aussi vérifier si la dll n'as pas été modifié et la charger seulement si c'est le cas,si j'utilise les fonctions depuis la dll quelqu'un d'assez malin pourra faire renvoyer n'importe quoi et dire qu'elle n'est pas corrompu alors qu'elle l'ai , qu'est ce que tu en pense ? peut être passer par une autre bibliothèque ?

    J'ai deux autres question est-ce que a t-on avis je peut stocker des HANDLE dans des INT (dans un exécutable 32bits) ? et est-ce que si j'utilise les fonctions documentées de ntdll est-ce que cela a t-on avis est portable et durable (les fonctions) ?

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Je ne sais plus si, hors .Net, une DLL peut être signée. Par contre, il me semble que les DLLs de Windows sont des "known DLLs" qui ne peuvent pas vraiment être usurpées.

    Un HANDLE n'est pas censé rentrer dans un INT. Il rentre dans un INT_PTR, par contre (et tout ce qui y correspond, y compris WPARAM, LPARAM et LRESULT).
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. "lib statique" vs "lib dynamique" vs "objet COM"
    Par ram-0000 dans le forum Windows
    Réponses: 3
    Dernier message: 13/01/2009, 14h27
  2. import library shell32.lib
    Par mog83 dans le forum C++
    Réponses: 11
    Dernier message: 13/05/2008, 12h54
  3. Importer un fichier .lib visual C++ sous Borland ?
    Par Cederic dans le forum Visual C++
    Réponses: 1
    Dernier message: 10/08/2007, 08h16
  4. Importer un fichier .lib visual C++ sous Borland
    Par Cederic dans le forum C++Builder
    Réponses: 1
    Dernier message: 09/08/2007, 17h57
  5. Importer un string (Lib Dynamique)
    Par JulienDuSud dans le forum C++
    Réponses: 2
    Dernier message: 19/12/2005, 11h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo