Модераторы: feodorv, GremlinProg, xvr, Fixin

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> добавление длл в импорт бинарника 
:(
    Опции темы
Earnest
Дата 21.1.2009, 11:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 33
Всего: 183



Кроме прочего, стандартноая лицензия на софт, которую, в основном все производители так или иначе клонируют, запрещает копаться в своих бинарных файлах с целью их изменения. Если чужая программа поддерживает какие-то плагины, то делай это штатно, если нет - значит, низя. Если программа твоя - то вообще никаких проблем нет, делай что хочешь на уровне кода.
Насколько я понимаю, можно свою DLL внедрить в чужой процесс во время выполнения, это ничьих прав вроде не нарушает.


--------------------
...
PM   Вверх
GoldFinch
Дата 21.1.2009, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 2
Всего: 26



alias_trinity, какая еще задача вычисления обратного смещения? ты вообще о чем?
PM MAIL ICQ   Вверх
GremlinProg
Дата 21.1.2009, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Цитата(GoldFinch @  21.1.2009,  00:02 Найти цитируемый пост)
эта дллка будет креком

по моему этого достаточно
расширение функционала в том плане, в котором ты его сформулировал, не вяжется с легальной работой ПО, поскольку "любой бинарник" не пересекается с твоей DLL ни по каким вопросам обеспечения безопасности и улучшения интерфейса

твоя DLL будет иметь доступ к структуре бинарника, что не подразумевает доступ к внутренним интерфейсам (а они могут сильно различаться на разном ПО), и уж тем более, защита - это двусторонний процесс, подразумевающий участие как приемной, так и передающей стороны, ты можешь защитить чего-то, в данном случае, только на уровне перехвата приемо-передающих функций, использование которых, опять же, не обязательно для всех бинарников, а ведь ты сформулировал задачу именно "для всех бинарников"

так что, идея взлома ПО и несанкционированных манипуляций на стороне пользователя здесь явно присутствуют




--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
GoldFinch
Дата 21.1.2009, 13:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 2
Всего: 26



GremlinProg, не выдирай слова из контекста, приводи полные цитаты
PM MAIL ICQ   Вверх
GremlinProg
Дата 21.1.2009, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Цитата(GoldFinch @  21.1.2009,  15:01 Найти цитируемый пост)
не выдирай слова из контекста, приводи полные цитаты

не слова, а фразы, а в данном случае, "или" - смысла сказанного не меняет


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
GoldFinch
Дата 21.1.2009, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 2
Всего: 26



Цитата(GremlinProg @  21.1.2009,  12:58 Найти цитируемый пост)
расширение функционала в том плане, в котором ты его сформулировал, не вяжется с легальной работой ПО, поскольку "любой бинарник" не пересекается с твоей DLL ни по каким вопросам обеспечения безопасности и улучшения интерфейса

приведи пример легального в твоем понимании расширения функционала чужой программы

PM MAIL ICQ   Вверх
GremlinProg
Дата 21.1.2009, 13:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Цитата(GoldFinch @  21.1.2009,  15:19 Найти цитируемый пост)
приведи пример легального в твоем понимании расширения функционала чужой программы

пожалуйста, публичный заголовок расширения:
Код

interface IExternal{
  bool method(params);
}
typedef bool (*GetExternal)(IUnknown**);


GetExternal - точка соприкосновения программы и DLL, возвращающая инородный объект воздействия
IExternal - интерфейс объекта воздействия

DLL работает в режиме slave, т.е. программа сама вызывает методы IExternal, а DLL отвечает на них
а в самой программе предусмотрено добавление плагинов, экспортирующих функцию типа GetExternal

аналогично можно и без интерфейсов обойтись: через функцию, фильтрующую события и состояния приложения, т.е. типа такого
Код

enum{
 state_x1,
 state_x2,
 state_x3,
 ...
};
enum{
 status_x1,
 status_x2,
 status_x3,
 ...
};
typedef bool (*Process)(UINT state,UINT status,LPVOID data);

по такому принципу работает оконная процедура
все легально, без премудростей
а если приложение не поддерживает расширения, значит оно ему и не надо, обращайся в систему поддержки этого ПО и проси такой механизм добавить


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
GoldFinch
Дата 21.1.2009, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 2
Всего: 26



есть такая штука как сетевые игры. для них пишутся читы, которые обычно тоже представляют собой дллки, которые както патчат клиент игры
вариант обратиться к разработчику в 99% случаев не подходит, поэтому античиты пишутся примерно также как и читы, своими силами
и античиты тоже вобщем-то представляют собой дллки которые тоже патчат клиент игры, и не дают другим модулям его патчить

да и вообще, вариант "обратиться к разработчику" это абсурдный вариант, никто никогда по просьбе пользователя ничего в проге улучшать не будет, если это сложно и не несет выгоды разработчику

GremlinProg, вы бы лучше по теме чтонибудь написали, а не то "почему тема плоха"
PM MAIL ICQ   Вверх
GremlinProg
Дата 21.1.2009, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

Репутация: 99
Всего: 106



Цитата(GoldFinch @  21.1.2009,  17:12 Найти цитируемый пост)
вариант обратиться к разработчику в 99% случаев не подходит

ну конечно, как ты опишешь разработчику причину? "Я не могу поломать Вашу программу, помогите пожалуйста, дайте доступ к управлению"
смешно )
Цитата(GoldFinch @  21.1.2009,  17:12 Найти цитируемый пост)
поэтому античиты пишутся примерно также как и читы, своими силами

бороться с колорадским жуком можно и лопатой, бегая за каждым по огороду )
нормальную защиту всегда пишет разработчик, а если не может - привлекает тех, кто может
и ни в каком вменяемом проекте не внедряются такого рода заплатки-прилипалы, которые потенциально - уже клиенты антивируса

Цитата(GoldFinch @  21.1.2009,  17:12 Найти цитируемый пост)
да и вообще, вариант "обратиться к разработчику" это абсурдный вариант, никто никогда по просьбе пользователя ничего в проге улучшать не будет, если это сложно и не несет выгоды разработчику

боже мой, GoldFinch, а что такое форум поддержки, чем занимаются службы поддержки? анкеты? опросы? Просто так, убивают время?

Цитата(GoldFinch @  21.1.2009,  17:12 Найти цитируемый пост)
GremlinProg, вы бы лучше по теме чтонибудь написали, а не то "почему тема плоха"

ради взлома ПО я ни чего советовать не буду, совесть не позволяет


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
GoldFinch
Дата 21.1.2009, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 2
Всего: 26



GremlinProg, признайтесь честно, вы просто не знаете как решить эту задачу
PM MAIL ICQ   Вверх
alias_trinity
Дата 21.1.2009, 18:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 10.5.2007

Репутация: 1
Всего: 1



GoldFinch, почитай Жесткое внедрение
Посмотриш как вычислается адрес секции импорта, а потом попробуешь решить обратную задачку - узнать на сколько сместилась таблица импорта в секции импорта  smile 
PM MAIL   Вверх
GoldFinch
Дата 21.1.2009, 18:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 2
Всего: 26



alias_trinity, не тупи, что "вылечить" такую "зараженную" прогу достаточно просто удалить из таблицы импорта эту дллку.
про сложность с преобразованием rva<->raw я так и не понял, в этом нет ничего сложного

алсо понятие "секция импорта" исчезло уже с десяток лет назад

Это сообщение отредактировал(а) GoldFinch - 21.1.2009, 18:53
PM MAIL ICQ   Вверх
alias_trinity
Дата 21.1.2009, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 10.5.2007

Репутация: 1
Всего: 1



Говорю, покажи код, где лечится... ПОКАЖИ!!!!
PM MAIL   Вверх
GoldFinch
Дата 21.1.2009, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Завсегдатай
Сообщений: 2141
Регистрация: 30.11.2008

Репутация: 2
Всего: 26



что показать? как удалить из таблицы импорта один дескриптор?

//char *pImpDir - VA таблицы импорта
//int ImpDirSize - размер таблицы импорта
//char *pImpDescr - указатель на "лишний" дескриптор импорта
//0x14  - 5 dword'ов
memcpy(pImpDescr,pImpDescr+0x14,(pImpDir+ImpDirSize)-(pImpDescr+0x14));
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0560 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.