Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.22;
Скачать: CL | DM;

Вниз

Убрать dll внутрь exe   Найти похожие ветки 

 
DVM ©   (2007-03-29 12:32) [0]

Есть сторонняя длл (без исходников) и программа на делфи ее использующая. В силу ряда причин хотелось бы ограничиться одним файлом. Нельзя ли как спрятать длл внутрь исполняемого файла и использовать при этом?


 
Игорь Шевченко ©   (2007-03-29 12:36) [1]


> Нельзя ли как спрятать длл внутрь исполняемого файла и использовать
> при этом?


Где-то на просторах сети был загрузчик для такого рода извращения. Значит можно.


 
Inco   (2007-03-29 15:29) [2]

Раньше, когда я работал на Д4, при установке RxLib появлялся пункт меню "Ресурсы", и ты там мог забубенить в ресурсы все, что угодно.

Я делал точно такую же штуку - при запуске программы проверял наличие DLL, если нет - вытаскивал из ресурсов и динамически линковал.

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

Общий смысл такой - нужно создать отдельный файл ресурсов (с помощью компилятора ресурсов, он уже есть, отдельно устанавливать не надо). Этот файл ресурсов подключаешь к проекту, наряду со стандартным (Project1.res) (типа {$I lala.res}), компилишь и вуаля! Что делать при запуске - описано выше.

Это должно тебе помочь (хотя это какой-то изврат)
http://www.codenet.ru/progr/delphi/stat/Extract-resources-dll-exe.php

Это тоже может помочь (хотя есть способ проще)
http://megalib.com/books/478/1560.htm


 
DVM ©   (2007-03-29 17:18) [3]


> Inco   (29.03.07 15:29) [2]

Спасибо. Думаю так и сделаю. А то без сохранения на диск больно мудрено будет потом загружать все это добро.


 
umbra ©   (2007-03-29 17:21) [4]

есть такой TFakeDll, только длл должна тоже быть написана на делфи. И не знаю, работает ли это в новых версиях


 
umbra ©   (2007-03-29 17:22) [5]

только, наверное, на TFakeDll все антивирусы будут ругаться :)


 
Ketmar ©   (2007-03-29 18:54) [6]

> DVM ©   (29.03.07 17:18) [3]
> Спасибо. Думаю так и сделаю. А то без сохранения на диск
> больно мудрено будет потом загружать все это добро.

смотря что оно делает и какие API вызывает. в принципе, ничего особо сложного.


 
DVM ©   (2007-03-30 10:27) [7]


> смотря что оно делает и какие API вызывает. в принципе,
> ничего особо сложного.

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

Действительно проще будет извлечь из экзешника длл и положить рядом.

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


 
Prohodil Mimo ©   (2007-03-30 10:36) [8]

DVM ©   (30.03.07 10:27) [7]
Инсталлятор тут тоже не годится - прав у юзеров нет.

а самораспаковывающийся RAR-архив тоже права требует? (не пробовал на урезанных правах запускать, потому не знаю, просто предположение высказал).


 
DVM ©   (2007-03-30 10:42) [9]


> а самораспаковывающийся RAR-архив тоже права требует?

Не требует, но он вроде как вопросов много задает. Нежелательно.


 
Prohodil Mimo ©   (2007-03-30 10:46) [10]

DVM ©   (30.03.07 10:42) [9]
Не требует, но он вроде как вопросов много задает


каких?
при запуске окно с полем выбора пути установки, в которое забито значение по умолчанию (заданное тобой) и две кнопки (Инсталл и Выйти).
Больше ни чего нет.


 
Чапаев ©   (2007-03-30 10:48) [11]

> Инсталлятор тут тоже не годится - прав у юзеров нет.
Какой инсталлятор-то? Не все инсталляторы одинаково msi... Тьфу, то есть не все одинаково полезны. %-)

Можжно в Инно ссделать инсталлятор, котторый нне буддет треббовать админнских правв.


 
DVM ©   (2007-03-30 10:52) [12]


> Можжно в Инно ссделать инсталлятор, котторый нне буддет
> треббовать админнских правв.

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


 
Чапаев ©   (2007-03-30 10:56) [13]

> Все равно когда в домене задает вопрос
Гм... А чего у меня не задавал НИ РАЗУ?


 
DVM ©   (2007-03-30 10:58) [14]


> Гм... А чего у меня не задавал НИ РАЗУ?

Может от политик домена зависит. У нас вопрос задается для любых фалов, которые система определяет как инсталляторы. Как она определяет я не знаю, наверное по массе признаков.


 
REA   (2007-03-30 11:05) [15]

Как хотите, но это изврат. Принципиальной разницы нет инсталлятор это (хоть бы и самодельный) или твоя программа.


 
Ketmar ©   (2007-03-30 11:23) [16]

> DVM ©   (30.03.07 10:27) [7]
> - все антивирусы ругаться будут 100 процентов, я уже о висте
> не говорю.

с какого испуга???

> Действительно проще будет извлечь из экзешника длл и положить
> рядом.

вот на это точно заругаются.

> распаковывать и т.д. могут не все. Инсталлятор тут тоже
> не годится - прав у юзеров нет.

метлу продать?


 
DVM ©   (2007-03-30 12:28) [17]


> REA  


> Как хотите, но это изврат.

Полностью согласен, что изврат, мне самому не нравится.


> Ketmar ©


> с какого испуга???

С такого, что это подозрительные действия. 99% что касперский завопит.


> вот на это точно заругаются.

Сделал уже, ничего не ругается.


 
Ketmar ©   (2007-03-30 12:52) [18]

> DVM ©   (30.03.07 12:28) [17]
извините, но с каких пор создание исполняемого кода в своём АП (АП, привет! %-) -- "подозрительные действия"?! на... на... я ХОЧУ это написать, но не могу. НА! каспера с такими "проверками". тогда он и на UPX должен вопить. и на мой PUSH!. ерунда.


 
Ketmar ©   (2007-03-30 12:53) [19]

> DVM ©   (30.03.07 12:28) [17]
> Сделал уже, ничего не ругается.

обалдеть антивирус. это 3.14 какой-то, а не антивирус. создание левой DLL и её подгрузка -- это не подозрительное действие? класс. "привет, трояны! мы вас любим, мы вас не тронем!"


 
DVM ©   (2007-03-30 13:01) [20]


> обалдеть антивирус. это 3.14 какой-то, а не антивирус

А почему он собственно должен ругаться? Ведь это аналог архива самораспаковывающегося. На них то он не ругается. Да и dll не левая - подписана Intel - ом.


> НА! каспера с такими "проверками". тогда он и на UPX должен
> вопить. и на мой PUSH!. ерунда.

Может и ерунда, а может и нет. От антивируса зависит.
А что такое PUSH кстати?


 
Ketmar ©   (2007-03-30 13:08) [21]

PUSH! (именно так, с "!") -- http://avalon-group.ho.com.ua/view.php?id=push

там есть баги, но в 99% случаев ты их не увидишь. %-)

не помню, что написано в исходниках, но как обычно -- public domain, no copyrights.



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

Текущий архив: 2007.04.22;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.029 c
2-1175711062
sholomak
2007-04-04 22:24
2007.04.22
Работа с PDF


3-1170430978
s_t_d
2007-02-02 18:42
2007.04.22
QReport в Delphi 7. Как получить доступ к элементам?


4-1164645015
Альберт
2006-11-27 19:30
2007.04.22
получение хэндла окна из TShellExecuteInfo


6-1162118715
0x00
2006-10-29 13:45
2007.04.22
ICS v5; ICS v6


2-1175158748
Сергей И
2007-03-29 12:59
2007.04.22
Нужна помощь с файлами.