dll в ресурсах

Discussion in 'WASM.WIN32' started by katrus, May 19, 2007.

  1. katrus

    katrus New Member

    Blog Posts:
    0
    Скажите, а есть ли какой способ запихнуть dll в ресурс, так, чтоб безгеморойно его подгружать? Т.е. есть ехе плюс куча dll. Хотелось бы оформить все в виде одного единственного ехе.
     
  2. G13

    G13 New Member

    Blog Posts:
    0
    katrus, есть такой пакер: Molebox. Вот он примерно этим и занимается… =)
     
  3. katrus

    katrus New Member

    Blog Posts:
    0
    G13
    Мне в принципе готовый пакер не нужен. Готов делать все ручками. Но как?
     
  4. wasm_test

    wasm_test wasm test user

    Blog Posts:
    0
    Оформить все дллки как ресурсы своего типа, потом при запуске аккуратно вытаскивать их в temp и подгружать.
    Можно оформить вытаскивание в виде функции, тогда достаточно будет просто написать в начале
    Extract("one.dll");
    Extract("another.dll");
     
  5. z0mailbox

    z0mailbox z0

    Blog Posts:
    0
    мне больше нравится перевести длл в что-то типа

    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

    Blog Posts:
    0
    z0mailbox
    угу, только пересобирать длл и прогу заипешься.
     
  7. z0mailbox

    z0mailbox z0

    Blog Posts:
    0
    ойдаладно
    для этих целей пишется мощноштанговый build.bat
     
  8. Avoidik

    Avoidik New Member

    Blog Posts:
    0
    z0mailbox, попробуй таким образом подключить файл метров на 10
     
  9. Asterix

    Asterix New Member

    Blog Posts:
    0
    в дистрибутиве ufmod есть утилита eff, которая в числе прочего
    умеет генерить файл формата C/C++ из любого входного файла и поддерживает командную
    строку, так что смело можно пихать в батники
     
  10. Ultrin Faern

    Ultrin Faern New Member

    Blog Posts:
    0
    Берете ResHacker (или любую другую программу редактирования ресурсов) - и пхаете туда что угодно. Или можно и самому написать программку из трех строк для впихивания в ресурсы файла.
     
  11. T800

    T800 Member

    Blog Posts:
    0
    Я в таких случаях использую XLoadLibrary ( http://www.rsdn.ru/article/baseserv/peloader.xml ).
    Можно из ресурса сразу в память записать. Правда есть некоторые ограничения, которые в статье озвучены.
     
  12. wasm_test

    wasm_test wasm test user

    Blog Posts:
    0
    T800
    Да тогда уж любой PE-лоадер можно
     
  13. z0mailbox

    z0mailbox z0

    Blog Posts:
    0
    Avoidik
    совершенно не понимаю - в чем проблемы, да хоть на 100
     
  14. wasm_test

    wasm_test wasm test user

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

    Asterix New Member

    Blog Posts:
    0
    на 100 метровый файл при худших раскладах уйдет не более 20 секунд, если написать
    специализированную утиль то и того меньше
     
  16. wasm_test

    wasm_test wasm test user

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

    Asterix New Member

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

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

    wasm_test wasm test user

    Blog Posts:
    0
    Ну вообще действительно больше 10-15 метров пихать в прогу бессмысленно=\
    лучше отдельно с ней давать.
     
  19. G13

    G13 New Member

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

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

    green New Member

    Blog Posts:
    0
    Ещё dll2lib можно заюзать.