Можно ли подключить .dll, находящуюся в памяти как файл?
От: TomasVercetti  
Дата: 13.08.06 12:46
Оценка:
Имеется зашифрованная .dll. Можно ли её подключить, дешифровав в буфер в памяти, не создавая дополнительных (дешифрованных) файлов на диске? В инете поискал — не нашёл подобного.
Заранее спасибо за помощь!
Re: Можно ли подключить .dll, находящуюся в памяти как файл?
От: raincrossbow  
Дата: 13.08.06 20:55
Оценка: 2 (1)
Здравствуйте, TomasVercetti, Вы писали:

TV>Имеется зашифрованная .dll. Можно ли её подключить, дешифровав в буфер в памяти, не создавая дополнительных (дешифрованных) файлов на диске? В инете поискал — не нашёл подобного.

TV>Заранее спасибо за помощь!

Если у тебя есть не зашифрованная библиотека, ты ее просто грузишь куда-нить в память процесса, то адреса процедут можно просто искать с помощью GetProcAddress:
GetProcAddress(ptr, "myproc");

ptr — адрес памяти, где лежит файл.

Однако при этом не выполнится инициализация библиотеки — код, который обычно лежит в DllMain или DllEntryPoint.
К тому же таблица импортов не будет проинициализирована.
Re: Можно ли подключить .dll, находящуюся в памяти как файл?
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 14.08.06 05:34
Оценка: 2 (1)
Здравствуйте, TomasVercetti, Вы писали:

TV>Имеется зашифрованная .dll. Можно ли её подключить, дешифровав в буфер в памяти, не создавая дополнительных (дешифрованных) файлов на диске? В инете поискал — не нашёл подобного.


http://www.rsdn.ru/?article/baseserv/peloader.xml
Автор(ы): Максим М. Гумеров
Дата: 20.03.2003
Не вдаваясь в подробности, скажу лишь, что исследование было начато ради сокрытия использования программой на Delphi некоей DLL (написанной на VC++). То есть оператор видит один только Exe-файл, запускает его, а тот каким-то образом подключает функции, содержащиеся изначально (при компиляции проекта) в некоторой DLL.
Re: Можно ли подключить .dll, находящуюся в памяти как файл?
От: TomasVercetti  
Дата: 17.08.06 19:07
Оценка:
Спасибо всем за помощь. Только сегодня решил проблемы с инетом и смог выйти на его просторы. Изучаю данную проблему дальше!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.