![]() |
eXeL@B —› Вопросы новичков —› Вопрос по Combat Arms + HackShield Pro |
Посл.ответ | Сообщение |
|
Создано: 20 марта 2009 20:24 · Личное сообщение · #1 Сразу извиняюсь, если не туда запостил, я тут новичок ![]() Цель: Пишу софт аля Fraps-killer (что такое Фрапс, объяснять, я думаю, не надо). Нужен правильный inject в процесс игры. В данном случае игра - в качестве примера, на котором были испытания. Детали - внедрение в код некоторых методов DirectX9. Проблема: хакшилд упорно отшивает "внедренцев". То есть, игра просто валится беззвучно и все. Что делал (делаю): Осуществляем классическую перезапись кода в модуле d3d9.dll (кажись, точно не помню). Пробовал перезаписывать первые 5 байт (для джампа) - не катит. Пробовал использовать анализатор длин кода инструкций, чтобы как Фрапс писаться в 5ую инструкцию - тоже не катит. Самое интересное, что если внедриться сразу и ничего не делать, то все будет ок - защита восстанавливает код и все пучком. А если проверять периодически внедрение и заново внедряться, то происходит вылет. Глюк не мой, ибо испытано на куче других игр. Далее... думаю, хрен с тобой, не буду модифицировать код в модуле - заменю адрес в виртуальной таблице методов. Прокатило! Я даже успел обрадоваться, но слишком рано. Адрес защита не восстанавливает, но вываливается стабильно. Еще дальше. Решил тупо обозвать внедряемую dll как и у фрапса - fraps.dll. Естественно, не получилось ![]() Вот. Вроде все описал, что я делал. Хаком уже 100 лет не занимался, потому дальше лезть - смысла нет. Господа, кто занимался хакшилдом, может быть, подскажете, как его культурно обойти? Если есть возможность, то хотелось бы это сделать "официально", а не через дыры и хаки. Ибо таким образом ("плохим") можно попасть в блэклист и уже оттуда не вылезти. В саппорт протектора писал. Как и ожидалось, ни ответа, ни привета (уже месяц прошел наверное). Если какие дополнительные сведения нужны - обязательно отвечу. А то как бы не комильфо - игра популярная, а тулзу использовать нельзя. ![]() ![]() |
|
Создано: 20 марта 2009 21:21 · Личное сообщение · #2 Кто такой хакшилд? там армадила висит (во всяком случае на демке). CyberDemon пишет: Далее... думаю, хрен с тобой, не буду модифицировать код в модуле - заменю адрес в виртуальной таблице методов. Прокатило! Я даже успел обрадоваться, но слишком рано. Адрес защита не восстанавливает, но вываливается стабильно. Ничего не понятно, но скорее всего это из-за Code Splicing. Я думаю гораздо проще заинлайнить, чем устраивать эти пляски с бубном вокруг длл-ок. ![]() |
|
Создано: 20 марта 2009 21:39 · Личное сообщение · #3 Vovan666 Ну как я уже сказал, я тут новичок + кряки у меня закончились во времена МехВарриор (какая часть не помню, где-то в 2000 году). Потому некоторые фразы мне не совсем понятны. Что значит Vovan666 пишет: заинлайнить Не знаю насчет армадилы, но хакшилд запускается сразу при старте игры (о чем свидетельствует окошко с индикацией обновления модулей шилда). К тому же, насколько я знаю, онлайновой (и бесплатной) игре армадила как ежу футболка - тут идет защита немного другого рода (аля PunkBuster, с которым проблем не замечено). Или я не прав? Хакшилд - www.hackshields.com ![]() |
|
Создано: 20 марта 2009 21:43 · Личное сообщение · #4 Vovan666 пишет: Ничего не понятно, но скорее всего это из-за Code Splicing. Хмм... как бы это объяснить... Все запускается, все работает, но через некоторое время (приблизительно от 30 до 60 секунд, причем время всегда разное) игра просто вылетает в винду. Косяк не мой - 100%. Проверял чуть ли не сотню раз, чтобы найти хоть какую-нить закономерность (не копаясь в коде защиты). ![]() |
|
Создано: 20 марта 2009 23:05 · Личное сообщение · #5 Раз новичок-в новички и надо постить. И посты чтоб не ляпать подряд, есть кнопка Правка. Если по теме, то тебе, походу, надо похукать функции. Методов для этого несколько разных есть, как и статей, почитай, какой-нить и приглянется, может. В частности, подмена длл и подмена длл через ПЕБ, на сайте дероко есть, на deroko.phearless.org для фимы он делал, вроде. ![]() |
|
Создано: 20 марта 2009 23:16 · Поправил: CyberDemon · Личное сообщение · #6 Archer пишет: Если по теме, то тебе, походу, надо похукать функции. Методов для этого несколько разных есть, как и статей, почитай, какой-нить и приглянется, может. В частности, подмена длл и подмена длл через ПЕБ, на сайте дероко есть, на deroko.phearless.org для фимы он делал, вроде. Эмм... ну хуки на нужные мне функции я и делаю, а вот если по теме корячить саму защиту - то лучше нунах, ибо чревато. Хуки на "свои" функции делаю просто - WriteProcessMemory с джампом на себя. Либо в начале функции, либо через несколько (сейчас 5) инструкций после начала. Интересует мнение человека, который копался в этой защите - хотя бы, чтобы быть уверенным, что я сделал все, что можно (без помощи "защитников") и больше дергаться смысла нет. з.ы. дероко посмотрю, сенкс ![]() |
![]() |
eXeL@B —› Вопросы новичков —› Вопрос по Combat Arms + HackShield Pro |