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

 eXeL@B —› Вопросы новичков —› Вопрос по Combat Arms + HackShield Pro
Посл.ответ Сообщение

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

Создано: 20 марта 2009 20:24
· Личное сообщение · #1

Сразу извиняюсь, если не туда запостил, я тут новичок

Цель: Пишу софт аля Fraps-killer (что такое Фрапс, объяснять, я думаю, не надо). Нужен правильный inject в процесс игры. В данном случае игра - в качестве примера, на котором были испытания. Детали - внедрение в код некоторых методов DirectX9.

Проблема: хакшилд упорно отшивает "внедренцев". То есть, игра просто валится беззвучно и все.

Что делал (делаю):
Осуществляем классическую перезапись кода в модуле d3d9.dll (кажись, точно не помню).
Пробовал перезаписывать первые 5 байт (для джампа) - не катит. Пробовал использовать анализатор длин кода инструкций, чтобы как Фрапс писаться в 5ую инструкцию - тоже не катит.
Самое интересное, что если внедриться сразу и ничего не делать, то все будет ок - защита восстанавливает код и все пучком. А если проверять периодически внедрение и заново внедряться, то происходит вылет. Глюк не мой, ибо испытано на куче других игр.

Далее... думаю, хрен с тобой, не буду модифицировать код в модуле - заменю адрес в виртуальной таблице методов. Прокатило! Я даже успел обрадоваться, но слишком рано. Адрес защита не восстанавливает, но вываливается стабильно.

Еще дальше. Решил тупо обозвать внедряемую dll как и у фрапса - fraps.dll. Естественно, не получилось

Вот. Вроде все описал, что я делал. Хаком уже 100 лет не занимался, потому дальше лезть - смысла нет.

Господа, кто занимался хакшилдом, может быть, подскажете, как его культурно обойти? Если есть возможность, то хотелось бы это сделать "официально", а не через дыры и хаки. Ибо таким образом ("плохим") можно попасть в блэклист и уже оттуда не вылезти.
В саппорт протектора писал. Как и ожидалось, ни ответа, ни привета (уже месяц прошел наверное).

Если какие дополнительные сведения нужны - обязательно отвечу. А то как бы не комильфо - игра популярная, а тулзу использовать нельзя.



Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 20 марта 2009 21:21
· Личное сообщение · #2

Кто такой хакшилд? там армадила висит (во всяком случае на демке).
CyberDemon пишет:
Далее... думаю, хрен с тобой, не буду модифицировать код в модуле - заменю адрес в виртуальной таблице методов. Прокатило! Я даже успел обрадоваться, но слишком рано. Адрес защита не восстанавливает, но вываливается стабильно.

Ничего не понятно, но скорее всего это из-за Code Splicing.

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



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

Создано: 20 марта 2009 21:39
· Личное сообщение · #3

Vovan666
Ну как я уже сказал, я тут новичок + кряки у меня закончились во времена МехВарриор (какая часть не помню, где-то в 2000 году). Потому некоторые фразы мне не совсем понятны.

Что значит
Vovan666 пишет:
заинлайнить


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

Хакшилд - www.hackshields.com



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

Создано: 20 марта 2009 21:43
· Личное сообщение · #4

Vovan666 пишет:
Ничего не понятно, но скорее всего это из-за Code Splicing.

Хмм... как бы это объяснить... Все запускается, все работает, но через некоторое время (приблизительно от 30 до 60 секунд, причем время всегда разное) игра просто вылетает в винду. Косяк не мой - 100%. Проверял чуть ли не сотню раз, чтобы найти хоть какую-нить закономерность (не копаясь в коде защиты).




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 20 марта 2009 23:05
· Личное сообщение · #5

Раз новичок-в новички и надо постить. И посты чтоб не ляпать подряд, есть кнопка Правка.
Если по теме, то тебе, походу, надо похукать функции. Методов для этого несколько разных есть, как и статей, почитай, какой-нить и приглянется, может. В частности, подмена длл и подмена длл через ПЕБ, на сайте дероко есть, на deroko.phearless.org для фимы он делал, вроде.



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

Создано: 20 марта 2009 23:16 · Поправил: CyberDemon
· Личное сообщение · #6

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

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

Хуки на "свои" функции делаю просто - WriteProcessMemory с джампом на себя. Либо в начале функции, либо через несколько (сейчас 5) инструкций после начала.

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

з.ы. дероко посмотрю, сенкс


 eXeL@B —› Вопросы новичков —› Вопрос по Combat Arms + HackShield Pro
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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