Предложения для развертывания openSSL dlls

Я подал простую заявку, которая использует Инди и требует OpenSSL dlls.

Я не собираюсь писать установщик для него, таким образом, у меня есть 2 опции:

1) разверните его путем копирования приложения exe + libeay32.dll + ssleay32.dll в той же папке

2) поместите libeay32.dll и ssleay32.dll в exe ресурсах и извлеките их к applicationpath на программе, запускаются (но эта банка может быть проблемой в случае, если я выполняю exe на windowsserver 2008 или Windows Vista, и я использовал папку Program Files для "развертываний"),

Можно ли прокомментировать те методы или предложить ли лучший подход?

5
задан LaBracca 9 July 2010 в 13:23
поделиться

4 ответа

Вы можете придерживаться варианта 1): D

Или вы можете использовать вариант номера 2, но извлеките их в путь к данным приложения:

GetSpecialFolderPath(CSIDL_LOCAL_APPDATA))

и используйте

SetDLLDirectory(DirectoryPath:PWideChar) 

указать, откуда загружать dll

Конечно, если честно, проще написать простой установщик!

Изменить: О, и да, как упоминалось в UnixShadow, хешируйте библиотеки DLL, чтобы вы могли быть уверены, что используете правильные файлы!

4
ответ дан 13 December 2019 в 22:01
поделиться

Я бы установил их в ту же папку (вариант 1), с добавлением фактического MD5 двух dll при запуске моей программы. Чтобы попытаться проверить, что они не были изменены. Это не очень помогает в вопросах безопасности, потому что хакер может изменить MD5-сумму, с которой я буду сравнивать. Но это, по крайней мере, остановит программу от использования поврежденных dll. Конечно, это также заблокирует возможность обновления dll без обновления основного приложения (как в хорошем, так и в плохом случае).

1
ответ дан 13 December 2019 в 22:01
поделиться

Вариант 3: использовать Inno для установки! У вас может быть веская причина не использовать программу установки, но если вы считаете, что это слишком дорого (по времени или деньгам), вы можете попробовать Inno. Я начал использовать ее в начале этого года и был поражен тем, насколько она проста в освоении и использовании. И это бесплатно!

Конечно, побочным преимуществом изучения Inno является то, что в будущем вы сможете использовать его для других проектов...

3
ответ дан 13 December 2019 в 22:01
поделиться

В зависимости от характера приложения вы можете рассмотреть возможность его компиляции с помощью Lazarus.

Я знаю, я знаю, это далеко, и я не знаю кого-нибудь, кто на самом деле делал это с openssl, так что это, вероятно, слишком много работы. Тем не менее я хотел отметить это теоретическое решение.

Поскольку FPC / Lazarus совместим с mingw и может использовать то же самое (компоновщик GNU), вы можете попытаться связать библиотеки mingw (.a) статически.

Некоторые люди в прошлом экспериментировали с этим, и я слышал, что у людей это получалось с mysql, но, к сожалению, они не сообщили подробностей.

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

2
ответ дан 13 December 2019 в 22:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: