Konuyu Oyla:
  • Derecelendirme: 4/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
DLL içindeki Fonksiyonları Listeleme
#1
Dinamy Link Libary (dll) içindeki fonksiyonları listeleme örneği 

procedure DllListFunctions(const FileName: string; List: TStrings);
type
 TDWordArray = array [0..$FFFFF] of DWORD;
var
 imageinfo: LoadedImage;
 pExportDirectory: PImageExportDirectory;
 dirsize: Cardinal;
 pDummy: PImageSectionHeader;
 i: Cardinal;
 pNameRVAs: ^TDWordArray;
 Name: string;
begin
 List.Clear;
 if MapAndLoad(PChar(FileName), nil, @imageinfo, True, True) then
 begin
   try
     pExportDirectory := ImageDirectoryEntryToData(imageinfo.MappedAddress,
       False, IMAGE_DIRECTORY_ENTRY_EXPORT, dirsize);
     if (pExportDirectory <> nil) then
     begin
       pNameRVAs := ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedAddress,
         DWORD(pExportDirectory^.AddressOfNames), pDummy);
       for i := 0 to pExportDirectory^.NumberOfNames - 1 do
       begin
         Name := PChar(ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedAddress,
           pNameRVAs^[i], pDummy));
         List.Add(Name);
       end;
     end;
   finally
     UnMapAndLoad(@imageinfo);
   end;
 end;
end;

Kullanımı : 
List: TStrings;
i: Integer;
s: string;
begin
List := TStringList.Create;
try
ListDLLExports('Ornek_DLL.dll', List);
ShowMessage(IntToStr(list.Count) + ' Fonksiyon Sayısı');
s := 'Fonksiyon Listesi :';
for i := 0 to List.Count - 1 do
Memo1.Lines.Add(List[i]);
finally
List.Free
end;
- Namyelus
WWW
Cevapla
#2
(04-02-2018, Saat: 17:30)dicle_gsm Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Dinamy Link Libary (dll) içindeki fonksiyonları listeleme örneği 

procedure DllListFunctions(const FileName: string; List: TStrings);
type
 TDWordArray = array [0..$FFFFF] of DWORD;
var
 imageinfo: LoadedImage;
 pExportDirectory: PImageExportDirectory;
 dirsize: Cardinal;
 pDummy: PImageSectionHeader;
 i: Cardinal;
 pNameRVAs: ^TDWordArray;
 Name: string;
begin
 List.Clear;
 if MapAndLoad(PChar(FileName), nil, @imageinfo, True, True) then
 begin
   try
     pExportDirectory := ImageDirectoryEntryToData(imageinfo.MappedAddress,
       False, IMAGE_DIRECTORY_ENTRY_EXPORT, dirsize);
     if (pExportDirectory <> nil) then
     begin
       pNameRVAs := ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedAddress,
         DWORD(pExportDirectory^.AddressOfNames), pDummy);
       for i := 0 to pExportDirectory^.NumberOfNames - 1 do
       begin
         Name := PChar(ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedAddress,
           pNameRVAs^[i], pDummy));
         List.Add(Name);
       end;
     end;
   finally
     UnMapAndLoad(@imageinfo);
   end;
 end;
end;

Kullanımı : 
List: TStrings;
i: Integer;
s: string;
begin
List := TStringList.Create;
try
ListDLLExports('Ornek_DLL.dll', List);
ShowMessage(IntToStr(list.Count) + ' Fonksiyon Sayısı');
s := 'Fonksiyon Listesi :';
for i := 0 to List.Count - 1 do
Memo1.Lines.Add(List[i]);
finally
List.Free
end;

Bu fonksiyonları kullanmak için hangi sınıflara ihtiyaç var onlarıda yazarsan iyi olur
mesala kod içinde belirtilen
LoadedImage, MapAndLoad, ImageDirectoryEntryToData, ImageRvaToVa, UnMapAndLoad
sınıfları neyin içinde  Wink
Bu dünyada kendine sakladığın bilgi ahirette işine yaramaz. 
Cevapla
#3
(04-02-2018, Saat: 17:58)adelphiforumz Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.Bu fonksiyonları kullanmak için hangi sınıflara ihtiyaç var onlarıda yazarsan iyi olur
mesala kod içinde belirtilen
LoadedImage, MapAndLoad, ImageDirectoryEntryToData, ImageRvaToVa, UnMapAndLoad
sınıfları neyin içinde  Wink

Kusura bakmayın yazmayı unutmuşum, 
Hepsi Windowsdaki ImageHlp Apisi içerisinde
- Namyelus
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Zeos TZStoredProc ile Procedure Sonucu Listeleme 3ddark 1 245 Dün, Saat: 10:25
Son Yorum: esistem
  [Çözüldü] JSon String içindeki son altı bilgi CesuR 7 701 23-03-2019, Saat: 18:15
Son Yorum: Fesih ARSLAN
  String Fonksiyonları [Çözüldü] Mericx 8 782 04-03-2019, Saat: 15:39
Son Yorum: Mericx
  Layout içindeki nesne sayısı nehirnnn 4 595 28-10-2018, Saat: 19:36
Son Yorum: Fesih ARSLAN
  Usb cihazlarına veri yazma ve usb cihazlarını listeleme seci20 19 2.608 02-05-2018, Saat: 09:03
Son Yorum: seci20



Konuyu Okuyanlar: 1 Ziyaretçi