Сейчас на форуме: Rio (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Как спрятать A.dll в самописной B.dll, и использовать функции A.dll не сохраняя её в файл?
Посл.ответ Сообщение

Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 июня 2008 12:13
· Личное сообщение · #1

Есть A.dll. Прототипы функций известны, обычная dll. Делаю B.dll в VC++, в ней A.dll храню как
unsigned char A_DLL[A_DLL_SIZE] = { ... };
Как мне использовать функции A.DLL? Сохранять A.DLL на диск нельзя (тогда LoadLibrary/GetProcAddress решило бы проблемы).
Я так понимаю, надо сэмулировать действия загрузчика DLL. В этом процессе у меня не много знаний. Подскажите, что делать?

Второй вопрос: если A.DLL экспортирует классы, то вызывать функции классов (а-ля __thiscall) можно будет только написав какие-то переходники на ассемблере?




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 15 июня 2008 15:54
· Личное сообщение · #2

Ну если без диска, то проще всего реально эмулировать загрузчик. Благо, это длл, релоки есть. Надо будет выделить ей область памяти, записать туда либу и настроить ей импорт и релоки. Почитай формат этих директорий, зачем нужны и как устроены, или поищи готовый код, почти наверняка есть. После этого она будет загружена в адресное пространство как обычная длл, можно вызывать её функции и тд.




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 15 июня 2008 18:00
· Личное сообщение · #3

на RSDN http://rsdn.ru/ была статья про загрузчик DLL. Код, если не ошибаюсь, был на делфи.
Поищи, наверняка сразу найдёшь.

-----
EnJoy!




Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 июня 2008 19:53
· Личное сообщение · #4

Спасибо. Начитался, накачался, буду ковыряться...




Ранг: 605.2 (!), 341thx
Активность: 0.470.25
Статус: Модератор
Research & Development

Создано: 15 июня 2008 20:52
· Личное сообщение · #5

вот ещё материал:

usar.pp.ru/download/peloader.rar

-----
EnJoy!




Ранг: 0.6 (гость)
Активность: 0=0
Статус: Участник

Создано: 15 июня 2008 23:03
· Личное сообщение · #6

Что-то ссылка не открывается




Ранг: 355.4 (мудрец), 55thx
Активность: 0.320
Статус: Uploader
5KRT

Создано: 16 июня 2008 22:34 · Поправил: coderess
· Личное сообщение · #7

...

-----
Gutta cavat lapidem. Feci, quod potui. Faciant meliora potentes




Ранг: 107.5 (ветеран)
Активность: 0.150
Статус: Участник

Создано: 17 июня 2008 10:28
· Личное сообщение · #8

Вроде по теме
www.xakep.ru/post/28092/default.asp

-----
Md5 fcbb6c9c9a5029b24d70f2d67c7cca74



 eXeL@B —› Вопросы новичков —› Как спрятать A.dll в самописной B.dll, и использовать функции A.dll не сохраняя её в файл?
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати