![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получить список Экспортируемых функций [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