Сейчас на форуме: ManHunter, Magister Yoda, rtsgreg1989 (+10 невидимых) |
eXeL@B —› Основной форум —› Взлом Warcraft 3 (и Strarcraft в придачу) |
Посл.ответ | Сообщение |
|
Создано: 18 мая 2005 21:07 · Поправил: Модератор · Личное сообщение · #1 Доброго времени суток господа крекеры. У меня к вам вопрос весьма нетривиальный, т.к. статей по данному вопросу я не нашёл (возможно, плохо искал). Так вот кто играл в Warcraft знает, что можно группу юнитов добавить в список быстрого вызова, например Ctrl + 3. Вопрос у меня в следующем, как в памяти найти, куда заноситься значение группы. Я даже не знаю, с какого бока к данной проблеме подступить. Я думаю, что информация о каждом юните храниться в структуре типа: struct unit { char name[30]; unsigned int damage; char hotkey; и т.д. } unit1,unit2,.... Но как узнать где она храниться, ведь вся методика взлома осуществляется путём установок ловушек(bpx,bpmb и т.д.), для последующей локализации нужной функции. Мне приходит в голову только одно, установка breakpoint'а на начало очереди сообщений Windows и выцеплять сообщения типа WM_CHAR,WM_KEYUP,WM_KEYDOWN,WM_SYSKEYUP и т.д. Но это не очень помогло, т.к. в начале игра устанавливает много Hook'ов(SetWindowsHookEX), и просто не обрабатывает данные сообщения (видимо обработчики Hook'ов посылают ей свой код отличный от WM_CHAR и т.д.). Я даже посылал ей сообщения при помощи PostMessage и SendMessage, но безрезультатно (хотя на StarCraft работает на ура), работает только keybd_event. Может кто - нибудь заморачивался взломом именно игр (я не имею в виду, банальный, No-CD) и может подсказать что - нибудь по поводу, где искать значения hootkey или дать ссылки на статьи по этой теме (взлом игр). |
|
Создано: 18 мая 2005 21:17 · Личное сообщение · #2 |
|
Создано: 22 мая 2005 12:41 · Личное сообщение · #3 ALx Предлагаю банальный способ, к которому привык я. Немного нерационально, но я добивался своей цели даже никогда не пользуясь бриками типа bmsg. Отловить адрес скажем жизненной силы твоего юнита не составит труда любой читерской утилиткой, и варкрафт легко рлзволяет себя лапать подобным инструментам. Далее ставишь брик на чтение/запись в ячейку, которую обнаружил, а когда остановка произойдёт, поднимаешься вверх по проге и ищешь, откуда взялся адрес этой ячейки... Судя по всему ты знаком со структурой данных, так что разберёшься. Обычно начало структуры юнита находится в регистре ESI. Проследить нужно, как раз откуда в в этом регистре взялись именно эти данные... Чаще всего приходится подняться на один два уровня (перейти по RET) прежде чем это найдёшь. А на счет "старого", весёлая гейма... Когда я играл за людей я наворотил на них щиты протосов в несколько раз сильнее, чем у протосов, и способность регенирации как у зергов... Вот были монстры... Вот только была проблема, в мисиях, когда приходилось людбми против людей, так как все люди становились идентичными, что у компа, что у тебя. Тогда я дал повышеные свойства только пехоте... А потом кто-то мне сказал читерские когды и мне игрушка разонравилась... дабы ломать стало не в кайф... Но всё равно коды не позволяют создавать щиты протосов на зергах и людях Удачи! |
|
Создано: 22 мая 2005 16:50 · Личное сообщение · #4 |
|
Создано: 22 мая 2005 17:47 · Личное сообщение · #5 nice пишет: А можно твой патч зеценить? Патч на что? На старого? Так я их никогда не пишу, но если тебе очень нужно, то могу на пальцах объяснить, где что в памяти работающей геймы нужно подправить, чтоб наворотить на человеческого юнита щиты протоса с указанием максимального заряда этого щита. Я даже для этой цели принесу с универа старого чтоб снова сломать, так как это было пять лет назад, благо это сделать не долго... Вот такой я странный зверёк ломаю только для удовольствия... Но абсолютно все геймы, что мне попадаются в руки.... Исключение вот последняя... "Космические Рейнджеры - 2" защищённые старфорцем, которы не даёт мне спокойно поиздеваться над прогой... Смотри форум по StarForc. Поэтому я так долго в этом форуме безвыходно... Ищу единомышлеников, помошников в этом нелёгком деле. |
|
Создано: 22 мая 2005 18:35 · Личное сообщение · #6 |
|
Создано: 22 мая 2005 19:32 · Личное сообщение · #7 |
|
Создано: 22 мая 2005 20:36 · Личное сообщение · #8 |
|
Создано: 23 мая 2005 19:41 · Личное сообщение · #9 |
|
Создано: 24 мая 2005 08:10 · Личное сообщение · #10 |
|
Создано: 26 мая 2005 14:28 · Личное сообщение · #11 |
|
Создано: 28 мая 2005 22:08 · Личное сообщение · #12 Только не ждите, что я вам дам готовый патч Запустили SI, запустили старкрафт и выполнили некоторые манипуляции. Итак. У меня английская версия Brood War 1.08. Возможно информация будет верна и для других версий, проверить не могу. Запоминайте магические адреса 006979E0 - содержит адресс структуры единичного юнита или строения, информация о котором выводится в данный момент. Короче, последний объект по которому кликали мышкой. Длина структуры 0148H байт Можете там поэксперементировать сами с различными данными. Некоторые приведу в качестве примера. смещение в шеснадцатиричной системе: 09 - текущее состояние жизненой энергии юнита 61 - текущей заряд энергетического щита A3 - текущая подготовка энергии для спец действий... ну типо манна. А вот одно из наиболее интересных 64[b] - я его назвал табельным номером, или табличным номером, это уже кому как понравится. Число записаное по этому смещению, а также по смещению [b]94 означает номер юнита в таблице объектов. Меняя это номер можно например превратить своего пехотинца в танк, только замены одного номера не хватает для того чтобы ещё и выглядеть как танк или летать как самолёт, но базовая мощь оружия, броня, поля и т.п. передаются генетически... Приятно же иногда пройтись пехотинцем по карте а бить по врагу как осадный танк. Ну так вот, а теперь об обещаных щитах протосов на любых юнитах. Не даром я тут заговорил об этом удивительном "табельном номере". Именно это число даёт смещение в типовых таблицах. А вот и адреса этих таблиц. 006B6498 - таблица максимумов жизненой силы. Размер одной записи 4 байта. Но формат записи кривой. Первый байт означает дробную часть и постоянно равен нулю, а дальше идёт целая часть со знаком. Если правильно нашли таблицу, то первая запись должна быть 00 28 00 00 что означает, максимальная жизнь Terran Marine равна 40. 006B82E0 - таблица максимального заряда энергетического щита. Размер записи 2 байта, формат простой целое со знаком. Замечаем что для всех Terran юнитов этот параметр установлен в 100 единиц, но только щиты не активированы. 006B62C8 - Заветная таблица из за которой собственно и держится этот топик. Активация протовских энергетических полей. Размер записи 1 байт. Всё просто: если там нолик, то щитов нет, если не нолик (там принято ставить единицу) то щиты активируются. Ну а где поставить размеры щитов смотрите выше по тексту. На этом с вас думаю достаточно. Если покапаетесь в структуре юнита, можете найти один маленький бит, который даёт вам право управлять единицей, типо быстрый способ захвата чужой техники Если у кого-то другая версия старкрафта, то могу проконсультировать, как отыскать адреса этих таблиц. Счастливого вам читерства |
|
Создано: 28 мая 2005 22:10 · Личное сообщение · #13 |
|
Создано: 28 мая 2005 23:15 · Личное сообщение · #14 Ara Раскопка этого куда простая задача нежели проникновение через защиту старфорца. Можно сказать, я устроил себе маленькие каникулы, в рутинной работе по кряканью SF. Ломать абсолютно незащищённые игрушки - дело, недостойное восхищения. Я обычно делал это для себя, но коль тут так очень хотели, пришлось выложить инфу. Обычно в этом деле большую роль играет интуиция, которая быстро приводит меня к желанной цели, но есть и кое-какие общие приёмы, хотя сколько я себя помню, к каждой игрушке я подходил по разному. Вот например, есть незамысловатая игрушка Singles. Безсюжетная. На подобии симсов. Заводите парочку кроликов (будущих влюблённых), и делаете всё, чтоб им жилось хорошо и счастливо, и чтоб под конец они не боялись появляться перед друг другом голышом, ну и великая цель, заставить их пересапать с друг другом. Графика приближена к реалистичной. Но вот одна незадача. Извините за выражение, трах..тся они скрываясь под одеялом, хотя графика позволяет спокойно делать это без него. Поначалу я это терпел, но потом я захотел большего и сделал одеяло невидимым. Теперь можно наблюдать всю картину без урезки цензурой... Правда есть одно НО. Програмеры решили не прорисовывать некоторые детали, коль они спрятаны под одеялом, поэтому снятие одеяла не возвращает парню его инструмент. Если кому-то интересно, могу поделиться, как это сделать. Причем никаких инструментов, кроме ваших рук для этого не нужно. Ara А что касается тутора "Как я ломал СтарКрафт"... может ещё вспомним Дюну и начнём ломать её? Кому это сейчас нужно? Игрушка устарела, хотя я и знаю некоторых людей, кто по ней до сих пор тащится, собственно у них и взял, чтоб снова сломать. Кроме того. Подобные изменения в таблицах не действуют на сетевые игры и сразу отключают вас от сервера, хотя можно попробовать внести изменения синхронно и на серваке и на клиенте, но это уже глобальный патч и вряд ли кто заинтересуется. Довольно интересные вещи можно было делать изнутри "Космические Рейнджеры". Например уменьшать вес набраного груза вплоть до нуля, повышать любые параметры своего оборудования, создавать уникальные артифакты, которые нельзя было бы купить нигде во всей галактике, короче делать куда больше, чем может любой читерский трейнер, который максимум, что мог дать это кредиты и тех не давал, так как они пожизнено скакали в памяти, и без заморозки всей геймы извне просто не успеть исправить нужный адрес. До меня то не сразу дошло, что величина кредитов постоянно весит в стеке, всё пытался найти стандартно, где ж они хранятся. Так что каждая игрушка имеет свой подход. Вот я сейчас хотел заняться вторыми рейнджерами, но SF не позволяет копаться в кишках. Медитирую теперь над защитой... Пока безуспешно... Где-то меня кидают! |
|
Создано: 28 мая 2005 23:22 · Личное сообщение · #15 |
|
Создано: 29 мая 2005 00:19 · Личное сообщение · #16 Для любителей классических жанров специально, напишем пособие по кряканью стратегических игр Не успел вылезти в и-нет, как уже чувствую попытки изменить мои принципы "не ломать по заказу". Нужно только подобрать подходящую интересную цель для статейки, старкрафт будет лишь мимолётным упоминанием. На нахождение всего, что я привел по старкрафту, даже с абсолютного нуля понадобится не больше часа, полтора. Постараюсь найти варкрафт-2 потом припишу сюда ещё варкрафт-3, вот тогда можно будет считать статьей "по кряканью стратегических гейм классичесского жанра" |
|
Создано: 30 мая 2005 10:05 · Поправил: nice · Личное сообщение · #17 |
|
Создано: 30 мая 2005 12:21 · Личное сообщение · #18 |
|
Создано: 30 мая 2005 13:52 · Личное сообщение · #19 nice Да не за что. Это моё любимое занятие. Приобретаю игрушку и начинаю разбираться в кишках, выясняя интересные моменты. Ко мне друзья приходят с новой геймой, типо зацени, как игрушка. Я ставолю и сразу зацениваю..., что и как можно подправить. Им уже плохо становится, от моей мании не играться в игры, а крякать их. Я уже не помню чтоб когда-то проходил гейму не крякая. Помню лет шесть назад мне принесли Миф-2. Забавная игрушка, 3d-графика. Но вот её сохранка... Ломалась легко, но вот сохранка была сделаны в виде видиозаписи о всех твоих действиях. Ну так как меня накололи... Я ставлю гномам целую кучу мин, а по умолчанию у них их всего 4 штуки, минирую большой пространство, потом заманиваю нежеть на эту площадь и детанирую всю эту западню. Потом сохраняюсь, от радости, как лихо я сделал их не потеряв ни одной единицы войска, ну и оставляю прохождение на потом. Загружаюсь я позже... Предо мной странная картина... От моего войска осталось только несколько побитых рыцарей, гномов и лучников вообще нет... Ну так эта сохранка такого типа позволяла просматривать в виде видеоролика весь ход игры... Я начинаю проигрывать, и что вижу... Естественно, что легально гном не мог приобрести столько мин, поэтому на той площади, что я минировал оказалось только первые 4 мины, а в остальные точки он тупо тыкался, типо ставит. Потом процес заманиловки большой армии нежети, естественно, что ничто не сдетанировало, так как в точке, где должна была быть мина цель, от которой пошла бы детанация ничего не было. Ну а потом было кровавое месиво, в котором полегли многие мои войны. После чего я продолжил ломать и нашёл один байтик отвечающий за принадлежность единицы тебе или компу. Так я научился поворачивать вражеское войско на самих себя. Но всё равно приходилось проходить миссию без сохранения. Вернее сохранялся только в начале, а потом проходил на одном дыхании. А выгода в сохранении единиц была большой, так как все единицы переходили на следующий этап, с накопленым опытом, а создавать новых юнитов было нельзя. Вот еслиб друиды в игрушке личили понармальному, а не два раза каждый за всю игру, то можно было и честно играть. Зато вот такие геймы запоминаются своей неординарностью. Дайте мне лучше новую цель поинтересней А то чувствую старфорц мне не одолеть, а если и одолеть, то не скоро. А я люблю геймы ломать. |
|
Создано: 30 мая 2005 14:13 · Личное сообщение · #20 |
|
Создано: 31 мая 2005 10:09 · Личное сообщение · #21 xShadow Можно конечно и эту цифорку найти. Метод её нахождения для старого такой же как и нахождение всех этих таблиц. Я хватался за буфер распечатки, в котором в текстовом виде находилось число, находим число с помощью поиска по памяти, ставил BPM с ключом W находил процедуру, которая забивает этот буфер, поднявшись на уровень выше (по RET), определялся, каким образом были переданы данные этой процедуре, а для выводов цифр в буфер процедура в старом общая, оказывалось, что через стек (проверил что не через регистры), даллее заметил, что значения переданые через стек всегда находятся в одном и том же месте памяти, ставим бряк BPM на запись в эту ячейку с условием, что в этой ячейке будет присутствовать интересующее наc значение BPMB #AAAAAAAA W IF (*(#AAAAAAAA)==BB) эта точка останова приводит нас к области, где собсно и передаются интересующиее нас значения. Остаётся разобраться, просмотрев немного код выше, откуда в регистре, который только что был послан в стек, оказалось это значение. А там уже можно добраться и до всего остального. Например, вот с жизнями и щитами значения брались из [EBP + VL]. Логично было предположить, что EBP указывало на структуру юнита VL смешение в этой структуре. А дальше уже эксперементируй. |
|
Создано: 31 мая 2005 11:04 · Личное сообщение · #22 Кстати, я всё таки крякнул кредиты в Космических Рейнджерах - 2, минуя старфрц, обычными читерскими инструментами. Главное - это метод, который нужно использовать, чтоб это получилось. Кому интересно загляните на топик StarForce - давайте ломать, присоединяйтесь http://exelab.ru/f/action=vthread&forum=1&topic=2060&page= 3 |
eXeL@B —› Основной форум —› Взлом Warcraft 3 (и Strarcraft в придачу) |