![]() |
eXeL@B —› Вопросы новичков —› сделать из exe dll. |
Посл.ответ | Сообщение |
|
Создано: 01 августа 2011 11:34 · Личное сообщение · #1 понадобилось мне сейчас из чужого exe (исходников нет, да =) ) экспортировать одну функцию. В общем, нашел не очень-то много информации. Во-первых меня интересуют основные различия exe и dll (кроме флага dll в заголовке). Сейчас я в petools пытаюсь прикрутить секцию .edata (жертва на дельфи написана, да) и настроить в ней таблицу экспорта, но выходит чуть более, чем никак. Так, что мне вообще нужно, чтоб все правильно работало (ну, в смысле грамотно сделать длл. С вызовом функции все понятно)? И есть ли какой-нибудь софт для такого изврата? Заранее благодарю =) ![]() |
|
Создано: 01 августа 2011 11:38 · Личное сообщение · #2 |
|
Создано: 01 августа 2011 11:41 · Личное сообщение · #3 |
|
Создано: 01 августа 2011 11:43 · Личное сообщение · #4 Основная сложность будет в релоках, их в общем случае нарисовать (если их изначально нет)-алгоритмически неразрешимая задача. Но в принципе можно попробовать и без них обойтись, если есть гарантия, что нужное место будет свободно. Экспорт дорисовать не проблема. Ну и точку входа чуть переписать придётся, в дельфях она вообще дурная. ![]() |
|
Создано: 01 августа 2011 11:46 · Личное сообщение · #5 Archer пишет: Основная сложность будет в релоках, их в общем случае нарисовать (если их изначально нет)-алгоритмически неразрешимая задача. Но в принципе можно попробовать и без них обойтись, если есть гарантия, что нужное место будет свободно. Экспорт дорисовать не проблема. Ну и точку входа чуть переписать придётся, в дельфях она вообще дурная. Точно, хотя Delphi создает релоки для exe тоже. ![]() |
|
Создано: 01 августа 2011 11:52 · Личное сообщение · #6 |
|
Создано: 01 августа 2011 12:20 · Личное сообщение · #7 Я прикручивал экспорт к проге на Borland C, работало нормально. С релоками не заморачивался. Даже сделал софтину для этого. Но по моей глупости все мои проекты канули в лету. ![]() ----- Лучше быть одиноким, но свободным © $me ![]() |
|
Создано: 01 августа 2011 12:46 · Личное сообщение · #8 |
|
Создано: 01 августа 2011 12:47 · Личное сообщение · #9 А, да, ещё может быть фигня с кривым кодерским кодом. Например, GetModuleHandle с параметром 0 будет работать по-другому и вернёт уже не то, что ожидается. Не знаю, как с этим дело обстоит в рантайме дельфовом. Так что стоит иметь в виду, что, возможно, в коде тоже копаться придётся. А в экспорте в принципе ничего сложного нет, читай доку по ПЕ+любую длл в качестве примера возьми. Или ехе, если хочется, хотя разницы нет. Как пример ехе-OllyDbg. ![]() |
|
Создано: 01 августа 2011 12:58 · Личное сообщение · #10 doctor_flasher пишет: BoRoV, если объяснишь как, то буду очень благодарен =) А вот и ответ: Archer пишет: в экспорте в принципе ничего сложного нет, читай доку по ПЕ+любую длл в качестве примера возьми Экспорт намного проще импорта в структуре, руками там не сложно всё сделать. Почитай доку по ПЕ о структуре таблиц экспорта. ----- Лучше быть одиноким, но свободным © $me ![]() |
|
Создано: 01 августа 2011 15:31 · Личное сообщение · #11 |
|
Создано: 01 августа 2011 16:45 · Личное сообщение · #12 |
![]() |
eXeL@B —› Вопросы новичков —› сделать из exe dll. |
Эта тема закрыта. Ответы больше не принимаются. |