Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получить список Экспортируемых функций [D7, 2000, XP, 2003]


Wind ©   (2009-05-17 20:26:00) 

Добрый день.
Подскажите пожалуйста, как получить список экспортируемых функций из dll файла ?
Возможно ли это?


Игорь Шевченко   (2009-05-17 22:29:00) [1]


> dll не экспортирует функции


экспортируют...


Wind   (2009-05-17 20:56:00) [2]

Спасибо сам разобрался. Нашел в инете.
Кому интересно вот Код:

Uses Imagehlp;

//..............................

function EnumSymbols(SymbolName: PChar; SymbolAddress, SymbolSize: ULONG;
 Strings: Pointer): Bool; stdcall;
begin
 TStrings(Strings).Add(SymbolName);
 Result := True;
end;

function GetImageFunctionList(const FileName: string; Strings: TStrings):
 Boolean;

var
 Handle: THandle;
 hProcess: THandle;
 VersionInfo: TOSVersionInfo;
begin
 Strings.Clear;
 Result := False;

 SymSetOptions(SYMOPT_UNDNAME or SYMOPT_DEFERRED_LOADS);

 VersionInfo.dwOSVersionInfoSize := SizeOf(VersionInfo);
 if not GetVersionEx(VersionInfo) then
   Exit;

 if VersionInfo.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS then
   hProcess := GetCurrentProcessId
 else
   hProcess := GetCurrentProcess;

 if not SymInitialize(hProcess, nil, True) then
   Exit;
 try
   Handle := LoadLibrary(PChar(FileName));
   if Handle = 0 then
     Exit;
   try
     if not SymLoadModule(hProcess, 0, PChar(FileName), nil, Handle, 0) then
       Exit;
     try
       if not SymEnumerateSymbols(hProcess, Handle, EnumSymbols, Strings) then
         Exit;
     finally
       SymUnloadModule(hProcess, Handle);
     end;
   finally
     FreeLibrary(Handle);
   end;
 finally
   SymCleanup(hProcess);
 end;
 Result := True;
end;


palva   (2009-05-17 20:55:00) [3]

dll не экспортирует функции, dll экспортирует имена, которые могут быть адресами данных, точками входа в функцию, а возможно и абсолютными данными, а вовсе не адресами.


Wind   (2009-05-17 20:47:00) [4]

А программно? Есть исходники на  Delphi ? Хотя бы намек, как это сделать или куда копать?


turbouser   (2009-05-17 20:35:00) [5]

TDUMP.EXE


Наверх

Титульная страница Поиск, карта сайта Написать письмо