Ir al contenido


Foto

[TRUCO DELPHI] Mostrar la Lista de funciones exportadas de una DLL.


  • Por favor identifícate para responder
1 respuesta en este tema

#1 sir.dev.a.lot

sir.dev.a.lot

    Advanced Member

  • Miembros
  • PipPipPip
  • 545 mensajes
  • Location127.0.0.1

Escrito 29 agosto 2016 - 07:53

[TRUCO DELPHI] Mostrar la Lista de funciones exportadas de una DLL.

 

Hay que adicionar esta unidad


delphi
  1. uses ImageHlp;


delphi
  1. procedure ListDLLExports(const FileName: string; List: TStrings);
  2. type
  3. TDWordArray = array [0..$FFFFF] of DWORD;
  4. var
  5. imageinfo: LoadedImage;
  6. pExportDirectory: PImageExportDirectory;
  7. dirsize: Cardinal;
  8. pDummy: PImageSectionHeader;
  9. i: Cardinal;
  10. pNameRVAs: ^TDWordArray;
  11. Name: string;
  12. begin
  13. List.Clear;
  14. if MapAndLoad(PChar(FileName), nil, @imageinfo, True, True) then
  15. begin
  16. try
  17. pExportDirectory := ImageDirectoryEntryToData(imageinfo.MappedAddress,
  18. False, IMAGE_DIRECTORY_ENTRY_EXPORT, dirsize);
  19. if (pExportDirectory <> nil) then
  20. begin
  21. pNameRVAs := ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedAddr
  22. ess,
  23. DWORD(pExportDirectory^.AddressOfNames), pDummy);
  24. for i := 0 to pExportDirectory^.NumberOfNames - 1 do
  25. begin
  26. Name := PChar(ImageRvaToVa(imageinfo.FileHeader, imageinfo.MappedA
  27. ddress,
  28. pNameRVAs^[i], pDummy));
  29. List.Add(Name);
  30. end;
  31. end;
  32. finally
  33. UnMapAndLoad(@imageinfo);
  34. end;
  35. end;
  36. end;

Ejemplo de uso:


delphi
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3. List: TStrings;
  4. i: Integer;
  5. s: string;
  6. begin
  7. List := TStringList.Create;
  8. try
  9. ListDLLExports('C:\WINDOWS\SYSTEM32\browseui.dll', List);
  10. ShowMessage(IntToStr(list.Count) + ' functions in dll');
  11. s := 'Lista de funciones:';
  12. for i := 0 to List.Count - 1 do
  13. s := s + #13#10 + List[i];
  14. ShowMessage(S);
  15. finally
  16. List.Free
  17. end;
  18. end;

Saludos!


  • 1

#2 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 30 agosto 2016 - 05:00

Hace ya varios años publiqué una herramienta propia capaz de encontrar las funciones y datos exportados e importados por un ejecutable y/o dll: Explorar datos y funciones exportadas e importadas en el formato PE.

 

Es una herramienta que me ha sido de muchísima utilidad a la hora de conocer que funciones o variables exportaba o usaba determinada dll o ejecutable. Esa información es muy útil a la hora de usar una dll o diseñar métodos de ataque por inyección  *-)

 

Aún hoy en día la sigo usando y ha sido uno de mis juguetes preferidos y que más disfruté escribiendo.

 

 

Saludos.


  • 1




IP.Board spam blocked by CleanTalk.