Сейчас на форуме: Slinger, Rio (+5 невидимых)

 eXeL@B —› Основной форум —› Рассуждение на тему енжекта кода
<< . 1 . 2 .
Посл.ответ Сообщение

Ранг: 8.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 04 июля 2006 04:14 · Поправил: nim iNT3_TEAM
· Личное сообщение · #1

Давайте по рассуждаем о методах обнаружения инжекта кода, и о противодействии им.

Допустим програмист заранее подготовил таблицу хешей секций импорта, экспорта и кода всех модулей его программы.
Раз в пять минут отдельный поток берет эти хеши со всех модулей(ехеVдлл) и сравнивает со значениями в таблице. Даже если возможно скрыть саму инжектированную длл. То следы хуков будут видны сразу. Возможно ли обойти такой метод обнаружения не прибегая к кернел кодингу?




Ранг: 218.9 (наставник), 42thx
Активность: 0.160
Статус: Участник
dotnet

Создано: 06 июля 2006 14:22
· Личное сообщение · #2

я не сканирую я заранее знаю где их искать, а если они не там то адью

-----
have a nice day




Ранг: 163.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 06 июля 2006 15:57
· Личное сообщение · #3

Мы опять вернулись к началу: "нужен надёжный механизм получения адреса этого самого буфера".
Иначе будет много шансов считать хеш не от того, что ожидалось.




Ранг: 103.3 (ветеран), 8thx
Активность: 0.060
Статус: Участник

Создано: 06 июля 2006 20:32
· Личное сообщение · #4

стоп. но защита одного только приложения игры не принесет желаемых результатов. давайте рассмотрим на примере КСа того же. SpeedHack -> хук на QueryPerformanceCounter, LimpidFX -> хук на ws32*.dll (работа с сетью), а какже привычне всем фишки с хуком в opengl32.dll? защитить приложение игры недостаточно, имхо.



Ранг: 8.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 июля 2006 03:30 · Поправил: nim iNT3_TEAM
· Личное сообщение · #5

S_T_A_S_

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

S_T_A_S_ пишет:
Мы опять вернулись к началу: "нужен надёжный механизм получения адреса этого самого буфера".


Ты так настойчив у тебя есть какие то идеи по этому поводу? %)

NaumLeNet пишет:
стоп. но защита одного только приложения игры не принесет желаемых результатов. давайте рассмотрим на примере КСа того же. SpeedHack -> хук на QueryPerformanceCounter, LimpidFX -> хук на ws32*.dll (работа с сетью), а какже привычне всем фишки с хуком в opengl32.dll? защитить приложение игры недостаточно, имхо.


а разве перечисленные тобой длл не являются частью приложения?
 




Ранг: 120.6 (ветеран)
Активность: 0.090
Статус: Участник
rootkit developer

Создано: 07 июля 2006 04:54 · Поправил: Ms-Rem
· Личное сообщение · #6

nim iNT3_TEAM
Имхо все это полнейший бред. Ты получишь в результате просто ужасающую несовместимость и постоянные глюки (из за множества разных причин). Ну а над такими попытками защититься от инжекта и хуков можно только посмеяться, так как все это обойти как два пальца обосцать (надо быть полным дауном, чтобы не суметь сделать чит).
Имхо невозможно создать защиту от читов. Защита от читов должна быть в сомай архитектуре игры изначально. Если все расчеты игры выполняются исключительно на сервере, то клиент при всем желании не может никак накрутить результат. Ну а если игра изначально дает возможность накрутки, то все что тут тут делаешь будет как метрвому припарки.
Может быть, ты сделашь юзермодные хуки труднореализуемыми (ценой огромнейшей несовместимости), но что заставляет читеров ограничиваться юзермодом?

-----
Скажем дружно - нафиг нужно.




Ранг: 8.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 июля 2006 07:16 · Поправил: nim iNT3_TEAM
· Личное сообщение · #7

я сделаю InjectMe чтобы потестить совместимость и устойчивость.

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


ну тогда и я залезу в ядро, просто на данный момент таких читов нет.

Ms-Rem пишет:
Если все расчеты игры выполняются исключительно на сервере, то клиент при всем желании не может никак накрутить результат.


Ты не прав. Если рассматривать на примере контры, то серьезными читами, которые дают значительные преимущества в игре, это так называемые wallhack & aimbot. которые дают возможность видеть противника через стены и авто прицел в голову. в первом случае идет хук на d3d9.dll во втором случае хук в самой игре. И причем здесь сервер и дали возможность для читеров?
 
(из за множества разных причин).

Перечисли наиболее важные возможно мне удастся их избежать.
 



Ранг: 163.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 07 июля 2006 08:33
· Личное сообщение · #8

nim iNT3_TEAM пишет:
Базовые адреса библиотек и хеши секций подготавливаются заранее, отдельной прогой - конфигуратором, который создает конфигурацию.


То есть Виста с ASLR идёт в лес ? : )

Ну ладно, предположим, что с подставой адреса ничего не получилось. Как и чем читается память при подсчёте хеша? Любая АПИ функа - потенциальный враг.

nim iNT3_TEAM пишет:
Ты так настойчив у тебя есть какие то идеи по этому поводу? %)


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

nim iNT3_TEAM пишет:
ну тогда и я залезу в ядро, просто на данный момент таких читов нет.


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


Ms-Rem пишет:
Ты получишь в результате просто ужасающую несовместимость и постоянные глюки (из за множества разных причин).


А если распространять прогу как freeware и брать денег за поддержку... ? =)



Ранг: 8.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 07 июля 2006 08:49
· Личное сообщение · #9

S_T_A_S_ пишет:
То есть Виста с ASLR идёт в лес ? : )


Я висту еще в глаза не видел.

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

InjectMe будет в воскресенье

А ты сразу лезь, менять архитектуру - самое сложное.

Архитектуру менять не придется, просто придется часть функций вынести в драйвер, и вставить функционал типа запрета на открытие процесса, блокировка чтения\записи в процесс и т.д.
 




Ранг: 120.6 (ветеран)
Активность: 0.090
Статус: Участник
rootkit developer

Создано: 07 июля 2006 09:43
· Личное сообщение · #10

nim iNT3_TEAM пишет:
ну тогда и я залезу в ядро

В этой области, я думаю ты сразу обречен на поражение. Уж поверь мне, невозможно заблокировать инжекты из ядра, и при этом получить работосопсобную программу. Число способов создания чита работающего в ядре, практически бесконечно, и создателям читов, в отличии от тебя, не очень нужно беспокоиться о совместимости.
То что в ring0 ты остаешся в проигрыше, я могу тебе 100% гарантировать.

nim iNT3_TEAM пишет:
Перечисли наиболее важные возможно мне удастся их избежать.

Версий системных файлов просто великое множество (каждый апдейт может менять десятки их).
Просто великое множество различного софта никак не относящегося к трейнерам может ставить хуки, делать инжекты, и.т.д. Если твой античит нигде кроме чистой системы не сможет корректно работать, то нахрен он такой нужен?

nim iNT3_TEAM пишет:
я сделаю InjectMe чтобы потестить совместимость и устойчивость.

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

-----
Скажем дружно - нафиг нужно.




Ранг: 163.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 07 июля 2006 09:51
· Личное сообщение · #11

nim iNT3_TEAM пишет:
InjectMe будет в воскресенье


В общем, понятно - вместо описания методов работы, ты решил применить security through obscurity, в расчёте, что народу будет влом ковырять =)




Ранг: 218.9 (наставник), 42thx
Активность: 0.160
Статус: Участник
dotnet

Создано: 07 июля 2006 14:09
· Личное сообщение · #12

Ms-Rem пишет:
Версий системных файлов просто великое множество (каждый апдейт может менять десятки их).


Я веду учет только тех файлов, которые используются в программе.

Ms-Rem пишет:
Число способов создания чита работающего в ядре, практически бесконечно, и создателям читов, в отличии от тебя, не очень нужно беспокоиться о совместимости.


когда выйдет такой чит тогда и будем думать, а сейчас беспонт.

S_T_A_S_ пишет:
вместо описания методов работы


Вобщето описание было озвучено в первом посте этого топика
 

-----
have a nice day




Ранг: 163.7 (ветеран)
Активность: 0.070
Статус: Участник

Создано: 08 июля 2006 04:24
· Личное сообщение · #13

Описание там слишком поверхностное. Ты так и не ответил, каким образом получается доступ к памяти защищаемого процесса и считаются хэши от неё.




Ранг: 218.9 (наставник), 42thx
Активность: 0.160
Статус: Участник
dotnet

Создано: 09 июля 2006 06:16
· Личное сообщение · #14

Доступ к защищаемому процессу OpenProcess + ReadProcessMemory. Чтобы это ныбыло перехвачено в моем процессе, я так же делаю контроль на хуки в своем процессе.

-----
have a nice day




Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 09 июля 2006 06:33
· Личное сообщение · #15

Nimnul пишет:
Чтобы это ныбыло перехвачено в моем процессе, я так же делаю контроль на хуки в своем процессе.


не сможешь, практически невозможно при грамотной реализации




Ранг: 793.4 (! !), 568thx
Активность: 0.740
Статус: Участник
Шаман

Создано: 10 июля 2006 05:59
· Личное сообщение · #16

Вот это бред... Хэши библиотек? У меня на машине только каспер уже поставил 4 хука на kernel32. Антиспайварь показывает, что тоже он сделал и в ядре. Я не представляю, что творится у того, у кого стоит фаер. Или ты будешь делать хеши до и после установки каспера (аута, етц)? А про хуки я уже говорил, что мешает использовать векторы прерываний? Тогда хоть защитайся хэши, изменений просто НЕБУДЕТ!

-----
Yann Tiersen best and do not fuck




Ранг: 8.5 (гость)
Активность: 0=0
Статус: Участник

Создано: 10 июля 2006 06:53
· Личное сообщение · #17

PE_Kill пишет:
Или ты будешь делать хеши до и после установки каспера (аута, етц)?


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


<< . 1 . 2 .
 eXeL@B —› Основной форум —› Рассуждение на тему енжекта кода
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати