![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
Задача такая: надо добавить дллку в таблицу импорта готового бинарника (aka PE-файла), не меняя размер последнего.
Ее надо решить практически для всех возможных бинарников собранных различными компиляторами\линкерами. Разумеется в бинарнике должно быть достаточно неиспользованного места чтобы там можно было осуществить эту операцию. Также следует рассматривать бинарники только с обычным выравниваем (0x200 в файле, 0x1000 в памяти). Как такое сделать? |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Тебе нужно найти достаточно свободного места для старой таблицы импорта + 1 новая запись. Т.е. необходимо переместить таблицу импорта на новой место и поменять RVA в IMAGE_DATA_DIRECTORY
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
W4FhLF, а как такое место найти?
|
|||
|
||||
| alias_trinity |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 10.5.2007 Репутация: 1 Всего: 1 |
Ну, не надо здесь спрашивать как писать вирусы!!! А то хороший модератор забанит!
|
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
alias_trinity, в нормальных вирусах такое заражение неиспользуют, ибо это слишком тривиально, и мгновенно лечится
а при расширении функциональности готовой программы используют |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Почему бы тогда не добавить новую секцию? Это упрощает задачу.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
W4FhLF, не меняя размер файла
если увеличивать размер файла - тогда уж просто расширять последнюю Это сообщение отредактировал(а) GoldFinch - 20.1.2009, 19:43 |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Я читал. НО я подумал, что пишется что-то плохое, но раз всё легально, почему бы не добавить/расширить секцию? -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
потомучто внешне файл должен выглядеть также как и был.
так красивее, и конечному пользователю вовсе не надо знать как именно функциональность программы была расширена |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
GoldFinch, поясни, пожалуйста, цели своей задачи
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
задача - прицепить к какой-то программе какую-то свою дллку
но сделать это надо красиво, желательно с минимальным изменением программы очевидно самое простой критерий "красоты" решения - размер модулей программы не должен меняться в основном это ограничение вводится из чисто эстетических соображений но также есть пара других причин: автор программы может не хотеть чтобы к ней чтото цепляли, например эта дллка будет креком, а автор программы не должен с 1го взгляда понять что же такое с его программой сделали или например эта дллка должна защищать чужую программу, а те кто ее будут ломать не должны сходу понять как это она к проге цепляется или например эта дллка будет распространятся среди большого числа пользователей, а юзверь по определению глуп и боится вирусов, поэтому чем незаметнее действия дллки, тем спокойнее юзверю да мало ли какие бывают цели %) |
|||
|
||||
| GremlinProg |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
GoldFinch, неужели взлом ПО - более легальная тема для обсуждения, нежели вирус?
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
| GoldFinch |
|
|||
![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2141 Регистрация: 30.11.2008 Репутация: 2 Всего: 26 |
GremlinProg, почему взлом? изменение и расширение функциональности, улучшение интерфейса, а в ряде случаев обеспечение дополнительной защиты ПО
Добавлено через 54 секунды алсо вы по вопросу чтонибудь сказать можете? |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Никто не может гарантировать, что в файле найдётся достаточно свободного места для размещения новой записи таблицы импорта. Если задача решается для какой-то конкретной программы, то проблем не вижу, можно сделать анализ вручную, если же задача решается в общем, то нужно анализировать наиболее вероятные места с учётом выравнивания.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| alias_trinity |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 35 Регистрация: 10.5.2007 Репутация: 1 Всего: 1 |
Вот умник... Если ты думаешь, что это лечится, то я тебе скажу, что задача вычисления обратного смещения неразрешаема, тоесть НЕ ИМЕЕТ ОБЩЕГО РЕШЕНИЯ!!! Если ты уверен в обратном - покажи пример
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |