Connaitre toute les fonctions d'une DLL

Résolu
cs_askil2000 Messages postés 92 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 12 avril 2010 - 15 janv. 2007 à 21:48
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 - 16 janv. 2007 à 13:53
Bonjour,

Certe, j'ai déja travaillé avec des DLL, mais je connaissais leurs fonctions et donc les appelais de manière dynamique.

exemple :

type
  TMyDll = function(username,password,seed,result_6,result_96 :pchar;challengemode : Boolean): boolean ; stdcall;

  Handle: THandle;
  MyDll: TMyDll;
  Dll : PChar;

Dll := Pchar(ExtractFilePath(Application.ExeName)+'\madll.dll');

Handle := LoadLibrary (Dll);
  if Handle <> 0 then
  begin
    try
     @MyDll := GetProcAddress(Handle, Pchar('YMSG12_ScriptedMind_Encrypt'));
      if @MyDll <> nil then
      begin
result := MyDll(pchar(UserName), pchar(PassWord), pchar(ChallengeString), pchar(RString1), pchar(RString2), Mode);

end
      else result := false;
   Finally
      FreeLibrary(Handle); //Assure le déchargement de la dll
   end;

/////////////////////////

en revange quand on ne connais pas les fonctions d'une DLL ?
j'aimerais pouvoir la sonder ? c possible ?

3 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
15 janv. 2007 à 23:48
alors le probleme, c'est qui oui on peu voir grace par exemple a DLLEXPORT  de Nir Sofer ( http://www.nirsoft.net )
on peu voir le nom de toute les methodes exportées de la librairie.
mais par contre on ne peu jamais voir les parametres, a moins d'avoir un SDK sous la main ou un fichier d'aide.

<hr size="2" width="100%" />Croc (click me)
3
elguevel Messages postés 718 Date d'inscription jeudi 19 décembre 2002 Statut Membre Dernière intervention 22 novembre 2016 3
16 janv. 2007 à 13:53
Pour pas te faire chier tu peux aussi faire comme moi pour declarer une DLL :



function
YMSG12_ScriptedMind_Encrypt
(username,password,seed,result_6,result_96 : PChar; challengemode : Boolean ) : Boolean ; stdcall; external 'madll.dll';

Sinon oui c'est possible de voir les fonctions d'une DLL mais pas les paramètres. (Avec delphi il existe un executable "tdump.exe" qui permet de voir les differentes fonctions et DLL utilisé par un autre executable).

Bon Code.
3
cs_askil2000 Messages postés 92 Date d'inscription lundi 8 mars 2004 Statut Membre Dernière intervention 12 avril 2010
16 janv. 2007 à 00:55
Merci f0xi !

c'est se qu'il me fallait :o)
0
Rejoignez-nous