dll в ресурсах

Тема в разделе "WASM.WIN32", создана пользователем katrus, 19 май 2007.

  1. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    Скажите, а есть ли какой способ запихнуть dll в ресурс, так, чтоб безгеморойно его подгружать? Т.е. есть ехе плюс куча dll. Хотелось бы оформить все в виде одного единственного ехе.
     
  2. G13

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
    katrus, есть такой пакер: Molebox. Вот он примерно этим и занимается… =)
     
  3. katrus

    katrus New Member

    Публикаций:
    0
    Регистрация:
    7 мар 2007
    Сообщения:
    612
    G13
    Мне в принципе готовый пакер не нужен. Готов делать все ручками. Но как?
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Оформить все дллки как ресурсы своего типа, потом при запуске аккуратно вытаскивать их в temp и подгружать.
    Можно оформить вытаскивание в виде функции, тогда достаточно будет просто написать в начале
    Extract("one.dll");
    Extract("another.dll");
     
  5. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    мне больше нравится перевести длл в что-то типа

    0x4d, 0x5a, 0x90, 0x00, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0xff, 0xff, 0x00, 0x00,
    0xb8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

    а потом

    BYTE rsrc_service[ ] = {
    #include "service.inc"
    };

    и не надо никаких ресурсов
     
  6. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    z0mailbox
    угу, только пересобирать длл и прогу заипешься.
     
  7. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    ойдаладно
    для этих целей пишется мощноштанговый build.bat
     
  8. Avoidik

    Avoidik New Member

    Публикаций:
    0
    Регистрация:
    29 дек 2004
    Сообщения:
    288
    Адрес:
    Russia
    z0mailbox, попробуй таким образом подключить файл метров на 10
     
  9. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    в дистрибутиве ufmod есть утилита eff, которая в числе прочего
    умеет генерить файл формата C/C++ из любого входного файла и поддерживает командную
    строку, так что смело можно пихать в батники
     
  10. Ultrin Faern

    Ultrin Faern New Member

    Публикаций:
    0
    Регистрация:
    25 июн 2006
    Сообщения:
    170
    Берете ResHacker (или любую другую программу редактирования ресурсов) - и пхаете туда что угодно. Или можно и самому написать программку из трех строк для впихивания в ресурсы файла.
     
  11. T800

    T800 Member

    Публикаций:
    0
    Регистрация:
    7 дек 2006
    Сообщения:
    293
    Адрес:
    Moscow
    Я в таких случаях использую XLoadLibrary ( http://www.rsdn.ru/article/baseserv/peloader.xml ).
    Можно из ресурса сразу в память записать. Правда есть некоторые ограничения, которые в статье озвучены.
     
  12. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    T800
    Да тогда уж любой PE-лоадер можно
     
  13. z0mailbox

    z0mailbox z0

    Публикаций:
    0
    Регистрация:
    3 фев 2005
    Сообщения:
    635
    Адрес:
    Russia СПБ
    Avoidik
    совершенно не понимаю - в чем проблемы, да хоть на 100
     
  14. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    z0mailbox
    Сколько у тебя будет файл на 100 метров преобразовываться в вид 0x4D, 0x5A, .... ?
    И каков будет размер этого .h файла...
    Ресурсы гораздо проще.
     
  15. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    на 100 метровый файл при худших раскладах уйдет не более 20 секунд, если написать
    специализированную утиль то и того меньше
     
  16. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Asterix
    При перекодировке в вид, предложененый z0mailbox? На какой системе? Проц?
    Тогда вопрос, зачем его преобразовывать в этот вид, если компилятору все равно потом собирать его обратно в бинарник. Нелогично. Лучше бинарник сразу в бинарном виде пихуть в ресурсы
     
  17. Asterix

    Asterix New Member

    Публикаций:
    0
    Регистрация:
    25 фев 2003
    Сообщения:
    3.576
    Great
    а ситема тут причем? :)
    XP, проц AMD64 3200+, который работает у меня на частоте 1000МГц т.к. включен Cool'n'Quiet,
    перекодировал с помощью eff

    ЗЫ: А кто будет 100 меговый файл в тело проги пихать? :)
     
  18. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ну вообще действительно больше 10-15 метров пихать в прогу бессмысленно=\
    лучше отдельно с ней давать.
     
  19. G13

    G13 New Member

    Публикаций:
    0
    Регистрация:
    24 мар 2006
    Сообщения:
    499
    Пихать 18 метров чего-нибудь, обработанного bin2db, в секцию данных/кода - действительно глупо, всё ж в память грузится…
    А вот оверлеем, а-ля sfx/nsis/flash - запросто!

    Главное - не полениться утоптать, али закриптовать всё хорошенько. И ещё - не создавать временных файлов. ;)
    (всякий раз улыбаюсь, когда нахожу muzika.xm в \Win\System32\)
     
  20. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    Ещё dll2lib можно заюзать.