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
  Klasör İçindeki Resimleri Gösterme sadoal351 5 350 13-04-2024, Saat: 22:40
Son Yorum: sadoal351
  Edit içindeki tarihin doğru olup olmadığını kontrol etmek? hasansavci 2 388 17-10-2023, Saat: 03:35
Son Yorum: mcuyan
  Sadece Son Kayıtları Listeleme gonulali 4 823 09-05-2023, Saat: 17:01
Son Yorum: gonulali
  İziBiz eFatura Listeleme MuhammedYasir 11 2.994 30-03-2023, Saat: 11:19
Son Yorum: enigma
  Tanımladığım record içindeki alanlardan biri ile ilgili sorun Bay_Y 2 566 07-03-2023, Saat: 12:03
Son Yorum: Bay_Y



Konuyu Okuyanlar: 1 Ziyaretçi