Вверх ↑
Этот топик читают: Гость
Ответов: 54
Рейтинг: 2
#1: 2009-09-23 14:44:01 ЛС | профиль | цитата
Здравствуйте, задумалось поэксперементировать, как засунуть dll в exe? Вот была тема как засунуть exe в exe и вот схемаhttp://hiasm.com/xf//getfile/12746, а как сделать так, чтоб засунуть и exe и dll(который требует exe). Напимер простой плеер который тремует bass.dll, можно ли сам исполняемый фаил и библиотеку засунуть в один exe?
P.S Помогите схемой...
карма: 0

0
Разработчик
Ответов: 26109
Рейтинг: 2124
#2: 2009-09-23 16:10:02 ЛС | профиль | цитата
Ankain писал(а):
Помогите схемой...

В этом вопросе тебе никто не поможет. Форумное сообщество категорически выразилось против экспериментов со втыканием dll в exe, чтобы не было поползновений создавать вредоносные программы, потому я удалил все, что с этим было связано и закрыл тему. Единственное, что можно сделать, так это только использовать временную dll и удалять ее по окончанию работы приложения, но загрузка прямо в память, минуя диск, категорически делаться не будет
карма: 22

0
Ответов: 8908
Рейтинг: 823
#3: 2009-09-23 16:45:41 ЛС | профиль | цитата
Ankain, dll для того и придуманы, чтобы разгрузить программиста от сто раз выполненной другими работы, а диск от одинаковых кусков кода в разных программах, поэтому смысла прятать dll нет.
карма: 19

0
Администрация
Ответов: 15295
Рейтинг: 1519
#4: 2009-09-23 17:02:57 ЛС | профиль | цитата
я полагаю тут основное желание состоит в том, чтобы получить ровно один исполняемый файл
карма: 27
0
Ответов: 54
Рейтинг: 2
#5: 2009-09-23 17:04:37 ЛС | профиль | цитата
Ясно, а каким образом втыкание dll может создать вредоносную программу?
Dilma, да именно это я и хочу сделать.
карма: 0

0
Разработчик
Ответов: 26109
Рейтинг: 2124
#6: 2009-09-23 17:11:17 ЛС | профиль | цитата
Ankain писал(а):
а каким образом втыкание dll может создать вредоносную программу

Если dll инжектируется прямо в память и оттуда запускается, то носитель этого dll, это уже -- потенциально вредоносная программа
------------ Дoбавленo в 17.13:
Dilma писал(а):
я полагаю тут основное желание состоит в том, чтобы получить ровно один исполняемый файл

Тут я уже писал, что единственный нормальный путь -- сгрузить ресурс на диск и с ним работать
карма: 22

0
Администрация
Ответов: 15295
Рейтинг: 1519
#7: 2009-09-23 17:16:39 ЛС | профиль | цитата
Ankain, тыкание dll вредоносную программу не создает. Ее создает сам факт экспорта dll из основной программы с последующим запуском. Собственно единственный выход в данном случае это конструирование загрузчика, который будет экспортировать из себя программу и dll к ней, после чего запускать их. При этом будут такие проблемы:
- если место назначения экспортируемых файлов защищено от записи, то работать вообще ничего не будет
- если место назначения экспортируемых файлов является временной папкой системы, то есть вероятность получить предупреждение антивируса о попытке запуска из временного хранилища(в лучшем случае пользователь нажмет ОК, в худшем опять таки ничего работать не будет)
------------ Дoбавленo в 17.18:
nesco писал(а):
Тут я уже писал, что единственный нормальный путь -- сгрузить ресурс на диск и с ним работать

в данном случае это не применимо, поскольку bass линкуется к программе статически и без нее исполняемый файл даже не запустится.
карма: 27
0
Разработчик
Ответов: 26109
Рейтинг: 2124
#8: 2009-09-23 17:30:18 ЛС | профиль | цитата
Dilma писал(а):
в данном случае это не применимо

Да, это недостаток статического линкования

А для динамически загружаемых dll это что-то, типа того (в прищепке)


карма: 22

0
Ответов: 54
Рейтинг: 2
#9: 2009-09-23 17:48:16 ЛС | профиль | цитата
nesco, у меня элемент UseHiDLL не найден, что мне для этого сделать?
карма: 0

0
Разработчик
Ответов: 26109
Рейтинг: 2124
#10: 2009-09-23 18:01:58 ЛС | профиль | цитата
Ankain, не такое не прокатит, оказалась тоже статическая загрузка, до загрузки должен быть на диске. Динамический модуль загрузки писать надо самому

Dilma, может подумать о возможности динамической загрузки и выгрузки dll
карма: 22

0
Ответов: 54
Рейтинг: 2
#11: 2009-09-23 18:10:17 ЛС | профиль | цитата
А почему не получается запустить dll как временный фаил?
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#12: 2009-09-23 18:29:58 ЛС | профиль | цитата
nesco писал(а):
может подумать о возможности динамической загрузки и выгрузки dll

определенно. На основе менеджера можно сделать элемент для управления загрузкой и выгрузкой DLL в/из UseHiDLL не нарушая структуры его точек
карма: 27
0
Ответов: 54
Рейтинг: 2
#13: 2009-09-23 18:33:06 ЛС | профиль | цитата
А что у меня UseHiDLL не работает? Как исправить?
карма: 0

0
Администрация
Ответов: 15295
Рейтинг: 1519
#14: 2009-09-23 18:36:40 ЛС | профиль | цитата
прочитать соседнюю тему http://hiasm.com/forum.html?q=3&t=51858
карма: 27
0
Разработчик
Ответов: 26109
Рейтинг: 2124
#15: 2009-09-25 11:10:38 ЛС | профиль | цитата
Dilma писал(а):
На основе менеджера можно сделать элемент для управления загрузкой и выгрузкой DLL в/из UseHiDLL не нарушая структуры его точек


Сделал, но не нравится мне то, что имена точек у меня получились разные -- DllName для компонента и Name для менеджера. Помнится, ты писал о том, что можно объединить два имени свойства в одном, как это сделать, и стоит ли
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)