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ı: 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
- Namyelus
WWW
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  bmp dosyasının içindeki Kullanılan renkleri Ogrenmek.. woywod 3 384 16-03-2020, Saat: 01:02
Son Yorum: savasabd
  arkadaşlar 192.168.2.89 ip deki bir klasör içindeki dosyaları listeleme nasıl? sadikacar60 9 829 21-02-2020, Saat: 23:31
Son Yorum: mustafaozpinar
  Birden fazla alanda arama ve listeleme Kerembacioglu 4 768 28-12-2019, Saat: 15:27
Son Yorum: m_ekici
  DbGrid deki Kolon içindeki veri arama Esrefhan 4 856 13-12-2019, Saat: 23:30
Son Yorum: Esrefhan
  Paradox veri tabanında veri arama listeleme düzenleme sonic33 2 591 26-10-2019, Saat: 10:43
Son Yorum: sonic33



Konuyu Okuyanlar: 1 Ziyaretçi