· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.RESEARCH —› exe & dll

. 1 . 2 . >>

Посл.отвђт Сообщенiе


Дата: Июл 12, 2003 13:36:03

в чем разница между ехе и длл, почему длл нельзя запускать?


Дата: Июл 12, 2003 14:46:44

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


Дата: Июл 12, 2003 20:55:25

вообще - то можно сделать файл, который будет одновременно и exe и dll


Дата: Июл 13, 2003 00:29:20

это как?


Дата: Июл 13, 2003 00:30:45

to spaces
вообще-то в ехе тоже есть свои функции,я про то как лоадер отличает длл от ехе


Дата: Июл 13, 2003 01:02:33

Reaper
в чем разница между ехе и длл
DLL нельзя запустить, а EXE нельзя прилинковать к другому EXE (всё это теоретически и с точки зрения COFF :-)

в ехе тоже есть свои функции
Ну так они ж не экспортируются.

я про то как лоадер отличает длл от ехе
По заголовку PE. Там есть 16-битное поле "Characteristics", в котором бит 1 установлен если это EXE (IMAGE_FILE_EXECUTABLE_IMAGE), а бит 13 -- если DLL (IMAGE_FILE_DLL).

ЗЫ: В разделе "Документация - PE/PE32" лежит нужная вам инфа.


Дата: Июл 13, 2003 01:12:37

это как?

Была когда-то такая тема на реверсинг.нет "Может ли быть exe-файл
одновременно и DLL'кой". Действительно может, там описывалось
в каком случае это может быть, но я точно не помню поэтому воздержусь от
ответа на этот вопрос.


Дата: Июл 13, 2003 17:40:57

Может, у Касперски в пятом томе пример приводится, только в каких случаях я тоже не понял


Дата: Авг 7, 2003 02:43:27

Reaper
Вообще,у .DLL нету точки входа в программу.
Эта штука функционирует так:
если проге есть вызов .DLL то в памяти,которую эта
прога занимает(т.е. в самой проге) этого кода нет,а
есть тока вызов.(Это буржуи придумали чтоб память экономить).Вот встречается такой вызов,к проге
из ентого файла догружатся код... И в лудшем случае
всё пашет.


Дата: Авг 7, 2003 12:33:17 · Поправил: masquer

PING

Это откуда такая достоверная информация о том, как dll работает? И я всегда думал, что DLLMain и есть точка входа в библиотеку...


Дата: Авг 7, 2003 12:52:16

Вопрос поставлен непонятно.
Три буковки DLL тут только путаницу вводят.
Эти буковки могут быть и у картинки с битмапом в расширении.
Давайте так:
PE файл может импортировать и экспортировать функции.
При этом экспортируемые функции могут динамически прилинковываться (мапится) в адресное пространство других
процессов.
Это одно.
Второе - исполнительный файл, может загружаться
как библиотека или как испольнительный файл.
Вопрос может ли файл загруженый как исполнительный
ещё использоваться другими как библиотека?
Ещё с другой стороны (прямо как сад камней в дзене - с разных сторон всё смотрим)
Могут ли другие процессы вызывать функции исполнительного
файла по технологии динамических библиотек?
Ответ - да, могут, если в этом исполнительном файле
есть экспортируемые функции и соответсвено создана для их вызова создана секция экспорта.

Более того такой файл может вызывать (загружать) сам себя
и вызывать свои функции как функции сторонней библиотеки.
Вот написал простую демонстрашку - обратите внимание на
ключи при линковке.
Можете написать ещё одну и пока моя программа в памяти (просто не нажимайте на OK в MessageBox) загрузить мою
программу как библиотеку и вызвать её функцию.




1538826061__exp.zip


Дата: Авг 7, 2003 13:02:50

[ PING: Вообще,у .DLL нету точки входа в программу. ]

Если под программой ты подразумеваеш exe, то длл его точка входа действительно не к чему.
А если ты имел ввиду, что у самой длл нет точки входа, то это не верно.
У любой длл есть точка входа. Она вызывается системой при отображении длл на адресное пространство процесса и при создани в процессе потока, а также в обратных случаях.
Ищи в доке DllMain - там все написано.


Дата: Авг 9, 2003 01:47:52

Спасибо за советы.Подлатаю дыры - и в бой:).


Дата: Авг 23, 2003 16:18:23

что касается < Там есть 16-битное поле "Characteristics" >, то есть подозрения что по-меньшей мере не только по этому полю


Дата: Авг 23, 2003 16:23:45

кстати, будет ли грузиться dllmain когда loadlibrary ее?

. 1 . 2 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.038