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;
Cevapla
#2
(04-02-2018, Saat: 17:30)dicle_gsm Adlı Kullanıcıdan Alıntı: 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ı: 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
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Edit içindeki tarihin doğru olup olmadığını kontrol etmek? hasansavci 2 359 17-10-2023, Saat: 03:35
Son Yorum: mcuyan
  Sadece Son Kayıtları Listeleme gonulali 4 798 09-05-2023, Saat: 17:01
Son Yorum: gonulali
  İziBiz eFatura Listeleme MuhammedYasir 11 2.932 30-03-2023, Saat: 11:19
Son Yorum: enigma
  Tanımladığım record içindeki alanlardan biri ile ilgili sorun Bay_Y 2 539 07-03-2023, Saat: 12:03
Son Yorum: Bay_Y
  Küsürlü alan listeleme Altıner 4 947 05-03-2023, Saat: 22:42
Son Yorum: delphiX14



Konuyu Okuyanlar: 1 Ziyaretçi