Сейчас на форуме: bartolomeo (+4 невидимых) |
eXeL@B —› Вопросы новичков —› Интесесная тема. Как поместить dll в тело программы? |
Посл.ответ | Сообщение |
|
Создано: 20 мая 2006 10:42 · Личное сообщение · #1 Задача следующая: Нужно поместить dll в тело программы asm. Собираюсь просто вставить весь код из dll в виде DB XXh. На экспорт dll забить, а функкции вызывать добавляя смещение к началу кода из dll. 1) Как преобразовать DLL в хекс вида - DB XXh, XXh, XXh (думаю ида поможет ) 1) Что если в DLL абсолютная адресация? Как ее преобразовать в относительную?(думаю ида опять поможет) |
|
Создано: 20 мая 2006 11:11 · Личное сообщение · #2 Помоему проще скопировать в себя весь код, а потом собрать его в памяти, настроить релоки, и пользоваться как нормальноё dll-ой, только тогда внутри dll-ки нельзя вызывать GetModuleHandle( может ещё чего). Если dll не твоя то работать не будет, имхо. Если есть возможность, то можно сохранять её каждый раз на диске, а потом грузить и пользоваться. |
|
Создано: 20 мая 2006 11:13 · Личное сообщение · #3 |
|
Создано: 20 мая 2006 11:21 · Личное сообщение · #4 |
|
Создано: 20 мая 2006 17:12 · Поправил: Asterix · Личное сообщение · #5 |
|
Создано: 21 мая 2006 11:27 · Личное сообщение · #6 bloM пишет: Что если в DLL абсолютная адресация? DLL без обработки релоков будет работать только при загрузке по ImageBase. Но, наверное, ты имел ввиду есть ли там абсолютные адреса - есть, если таблица релоков не пустая. Если DLL чужая, то придется проверить DLLMAIN - нет ли там какой инициализации. Короче, лучше доверить ее загрузку Виндам - меньше мороки. |
|
Создано: 25 мая 2006 02:59 · Личное сообщение · #7 |
|
Создано: 25 мая 2006 21:24 · Личное сообщение · #8 |
|
Создано: 26 мая 2006 00:52 · Личное сообщение · #9 |
|
Создано: 04 июня 2006 08:56 · Личное сообщение · #10 |
eXeL@B —› Вопросы новичков —› Интесесная тема. Как поместить dll в тело программы? |