Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2002.10.10;
Скачать: [xml.tar.bz2];

Вниз

Как узнать название всех функций в длл ке?   Найти похожие ветки 

 
neodiX   (2002-09-27 17:08) [0]

Заранее всем спасибо за ответы.


 
MBo   (2002-09-27 17:12) [1]

TDump


 
Anatoly Podgoretsky   (2002-09-27 17:13) [2]

Ну не фига народ не хочет изучать свой инструмент, хоть бы поинтерисовались, а что за программы им накидали в папочку


 
Digitman   (2002-09-27 18:53) [3]

Anatoly Podgoretsky

Зато другой "инструмент" некоторые male-персоны оч даже детально и всесторонне исследуют в "Потрепаться") ... особливо - в потенциальном действии) ... денно и нощно ... при барышнях ... да в подробностях и с рвением, достойных лучших применений))))


 
MegaBass   (2002-09-27 20:18) [4]

тебе че програмно надо узнать?


 
Anatoly Podgoretsky   (2002-09-27 20:47) [5]

Да тот инструмент представляет огромный интерес, такой что тратят время не только на ознакомление, но и на глубокую теорию


 
Юрий Зотов   (2002-09-27 22:54) [6]

> Anatoly Podgoretsky
> Digitman

Причем даже и не спрашивают "а как заблокировать". Или "а где взять русский хелп". Видать, ни блокировка, ни хелп не нужны.


 
neodiX   (2002-10-01 13:35) [7]

2 МBо
А какой модуль в uses дописать, что бы тдамп распознать?
2 Megabass
Да програмно. Дело в том, что я когда то, как то это сделал, а сеичас непомню (склероз :)). Ну адресс я получал зная название, getprocaddress(), a как по аддресу узнать наз. функции?


 
MBo   (2002-10-01 13:40) [8]

>neodiX
Это отдельная программа в delph\bin


 
neodiX   (2002-10-01 13:46) [9]

2 MBo>
Блин, совсем запарился!
Это я знаю (сам использовал).
Мне надо програмно, самому с помощью делфи.


 
Digitman   (2002-10-01 13:58) [10]

imagehlp.pas - вот твой инструмент на первое время)


 
Игорь Шевченко   (2002-10-01 14:07) [11]

neodiX © (01.10.02 13:46)


> Мне надо програмно, самому с помощью делфи.


Можно глупый вопрос - нафига ?


 
neodiX   (2002-10-01 16:20) [12]

Во-первых, ради интереса
Во-вторых, если узнаю как делать это, далее будет легче разбираться с более сложными вещами, зная какие функцие есть и чо они делают.
А вообще, то что мне приходиться програмировать на Дельфи - это все не сложно, только вот я себе сам дополнительные проблемы создаю и опять таки ради интереса и улучшения своих знаний в делфи.


 
Le Taon   (2002-10-01 16:32) [13]

Зная HMODULE, ты можешь добраться до таблицы экспорта модуля.
Там ты найдёшь весь список экспортируемых ф-й с адресами и именами.
Но для этого тебе надо будет разобраться с форматом исполняемых файлов. Он в литературе описан, так что флаг тебе в руки.


 
Игорь Шевченко   (2002-10-01 16:35) [14]

neodiX © (01.10.02 16:20)

Желание, оно конечно, похвальное, но может, самому поискать информацию ? EXEшник - это обычный файл, его можно читать, к примеру...Далее разбираться с форматом...


 
neodiX   (2002-10-01 17:17) [15]

2 Игорь Шевченко
Блин, точно читая саму длл"ку сразу после ее названия перечисляются все название функций которые онс экспортит. Это хорошо, но это самый легкий вариант ,я не говорю, что он плохой, но все же меня больше интересует как это будет через стандртные функции. Все иду разбираться дальше.


 
Толик   (2002-10-01 18:07) [16]

нашел где-то на этом сайте, честно говоря ни автора ни ссылки я не помню. Говорю сразу - авторство не моё, но тем не менее, а может быть именно поэтому :) работает.

function EnumSymbols(SymbolName: pchar; SymbolAddress, SymbolSize: longint;
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;

procedure TForm1.Button5Click(Sender: TObject);
begin
if(not GetImageFunctionList("user32.dll", ListBox1.Items))then
raise Exception.Create("Произошла ошибка");
end;


 
neodiX   (2002-10-02 14:02) [17]

2 Толик
Thanks, это точно то, что я искал.
Теперь буду сидеть разбираться что к чему.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2002.10.10;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.6 MB
Время: 0.038 c
1-31875
ViRUS_1
2002-09-28 21:31
2002.10.10
Выравнивание по правому краю в TEdit


1-31813
Slanik
2002-10-02 11:01
2002.10.10
Иерархическая структура


1-31800
k
2002-10-01 17:19
2002.10.10
bb


14-32010
Sewix
2002-09-13 19:03
2002.10.10
На кого учится на системного программиста или на инжинера?


7-32028
Nalsur
2002-07-17 14:24
2002.10.10
Системный реестр! Помогите-е-е-е!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский