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

Вниз

Убрать 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.052 c
4-1164645015
Альберт
2006-11-27 19:30
2007.04.22
получение хэндла окна из TShellExecuteInfo


10-1131373342
Gugle
2005-11-07 17:22
2007.04.22
Сортировка в Exel


1-1172676041
DenisNew
2007-02-28 18:20
2007.04.22
ширина закладки ttabsheet


8-1154771305
Ильдар
2006-08-05 13:48
2007.04.22
Визуализация на BASS


4-1164626298
jiny
2006-11-27 14:18
2007.04.22
Проблема с ANI-курсорами (при извлечении из ресурса)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский