Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 10.01.2018
Сообщений: 50

Подключение DLL из памяти без сохранения ее на диск

14.03.2018, 19:33. Показов 2442. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У меня есть DLL которую надо подключить к программе в процессе ее выполнения. Проблема в том что она хранится не на диске а в памяти в виде переменной
Есть ли способ подключить ее прямо из этой переменной без сохранения на диск?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.03.2018, 19:33
Ответы с готовыми решениями:

Переименовать Notesembeddedobject (без сохранения на диск)
Как собственно это сделать? Метод notesRichTextItem.EmbedObject, не подходит Если конкретнее: Есть база, в ней документы с...

Получить post ответ картинку и вставить ее на лист excel без промежуточного сохранения на диск
Есть код отправки запрос и получения ответа, задача вставить картинку на лист excel без промежуточного сохранения на диск. Function...

Подключение DLL без заголовка
Здравствуйте. У меня есть dll, написанная на Delphi, нужно использовать ее на c++. У меня нет к ней header'а, но есть decls файл, то есть...

10
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832
14.03.2018, 20:12
С помощью ManualMap injection можно
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
14.03.2018, 20:13
Не совсем понял вопрос. Но возможно это поможет.
https://stackoverflow.com/ques... from-a-dll
1
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832
14.03.2018, 20:18
Цитата Сообщение от Новичок Посмотреть сообщение
возможно это поможет
Судя по вопросу, имеется в виду подгрузка собственной dll внутрь стороннего exe процесса. Если не прав, поправьте

Добавлено через 3 минуты
И похоже переменная значит shellcode
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
14.03.2018, 20:28
Цитата Сообщение от Новичок Посмотреть сообщение
Не совсем понял вопрос.
ТС мутит что-то с криптором судя про этой теме Написание криптора
вот только подозреваю что ему не криптор нужен, а обфускатор
0
0 / 0 / 0
Регистрация: 10.01.2018
Сообщений: 50
14.03.2018, 20:45  [ТС]
Цитата Сообщение от _lunar_ Посмотреть сообщение
ТС мутит что-то с криптором судя про этой теме Написание криптора
вот только подозреваю что ему не криптор нужен, а обфускатор
_lunar_, совершенно верно, это для криптора
По плану при запуске итогового исполняемого файла декриптор считывает из своего конца зашифрованную DLL, дешифрует ее и добавляет в собственный процесс
Тут можно было бы использовать стандартное решение для Dll inject, но в моем случае дллка хранится не на жестком диске а в переменной декриптора
Отсюда и вопрос:"как подключить Dll хранящуюся в переменной"
0
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832
14.03.2018, 21:23
Возможно, это поможет https://www.codeproject.com/Ar... me-Crypter
1
1443 / 1326 / 131
Регистрация: 20.03.2009
Сообщений: 4,689
Записей в блоге: 11
14.03.2018, 23:17
Насколько помню, аналога LoadLibrary для куска памяти, нет.
0
129 / 65 / 16
Регистрация: 03.09.2015
Сообщений: 832
15.03.2018, 06:00
Можете еще почитать про codecave. Так можно подгружать код динамически без полной dll
0
Эксперт С++
 Аватар для _lunar_
3701 / 2836 / 451
Регистрация: 03.05.2011
Сообщений: 5,193
Записей в блоге: 21
15.03.2018, 19:22
Лучший ответ Сообщение было отмечено amakeev как решение

Решение

Цитата Сообщение от amakeev Посмотреть сообщение
По плану при запуске итогового исполняемого файла декриптор считывает из своего конца зашифрованную DLL, дешифрует ее и добавляет в собственный процесс
новую секцию создайте в исполняемом файле, туда положите обфусцированную dll.
новая IAT и вызывайте секцию когда будет нужно.
можно голову не ломать и воспользоваться CFF Explorer который всё это умеет делать.
0
Эксперт С++
 Аватар для schdub
3073 / 1411 / 425
Регистрация: 19.01.2009
Сообщений: 3,894
15.03.2018, 23:31
Лучший ответ Сообщение было отмечено amakeev как решение

Решение

amakeev, MemoryModule.

MemoryModule
The default windows API functions to load external libraries into a program (LoadLibrary, LoadLibraryEx) only work with files on the filesystem. It's therefore impossible to load a DLL from memory.

But sometimes, you need exactly this functionality (e.g. you don't want to distribute a lot of files or want to make disassembling harder). Common workarounds for this problems are to write the DLL into a temporary file first and import it from there. When the program terminates, the temporary file gets deleted.

MemoryModule is a library that can be used to load a DLL completely from memory - without storing on the disk first.

See doc/readme.rst for more informations about the format of a DLL file and a tutorial how they can be loaded directly.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.03.2018, 23:31
Помогаю со студенческими работами здесь

Как реализовать внедрение dll без её извлечения на жесткий диск?
Вообщем такой вопрос, есть код внедрения dll в процесс using System; using System.Diagnostics; using...

Qt & MemoryModule - Загрузка DLL из памяти без LoadLibrary
Пишу программу и возникла резкая необходимость сохранить тело DLL библиотеки (тоже написанной мной) в памяти программы. т.е. библиотека...

Закрыть приложение Word БЕЗ сохранения документов и без запроса
Добрый день! После открытия документа и выполнения манипуляций с ним Word выдает запрос о подтверждении сохранения изменений. Как...

Надо закрыть через VBA Excel ,без сохранения и без выскакивания запросов на сохранеие
Помогите чайнику.Надо закрыть через VBA Excel ,без сохранения и без выскакивания запросов на сохранеие

Защита документа word. (без сохранения, без копирования)
Доброго времени суток. Хочу сначала поблагодарить участников форума за помощь в моим предыдущих темах. На основе ваших советов я написал...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru