Сейчас на форуме: (+3 невидимых) |
eXeL@B —› Дневники и блоги —› g-l-u-k's blog |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 11 . 12 . >> |
Посл.ответ | Сообщение |
|
Создано: 31 июля 2008 21:47 · Личное сообщение · #1 - Все побежали и я побежал(с) Василий Алибобаевич Посмотрел я что все начали создавать здесь свои блоги, да и подумал что 4-й по счету блог мне не помешает. Буду по мере появления нового гамна в своей жизни рассказывать здесь. Кстате, кто еще не запасся монтировкой, советую вам сбегать и прикупить ее пока не поздно, поскольку до запуска Большого Адронного Колайдера осталось 6 дней, если конечно запуск снова не перенесут. ))) Вот вам песенка хедкраба, новый гимн апокалипсиса:
(c)bash.org.ru |
|
Создано: 08 августа 2008 20:59 · Личное сообщение · #2 |
|
Создано: 08 августа 2008 21:10 · Личное сообщение · #3 |
|
Создано: 08 августа 2008 21:27 · Личное сообщение · #4 |
|
Создано: 09 августа 2008 10:07 · Личное сообщение · #5 |
|
Создано: 09 августа 2008 10:44 · Личное сообщение · #6 |
|
Создано: 09 августа 2008 13:50 · Личное сообщение · #7 |
|
Создано: 09 августа 2008 16:12 · Личное сообщение · #8 |
|
Создано: 09 августа 2008 16:47 · Личное сообщение · #9 asser Я истинный буддист и люблю всех И тебя дурака люблю. Не надо быть злым .... А скорость суждений говорит о не зрелости. Мне жаль этих людей. Я встречал автобус с детьми ..... и видел их глаза..... Если ты из "тех" .... кто любит насилие и болен расизмом то да, я из "этих". А болтать это все не по мне. Как и спорить с тобой. Я просто взял деньги и купил продуктов людям. А детям книги и игрушки. Те ..... эти ..... Дурак ты. |
|
Создано: 09 августа 2008 16:59 · Личное сообщение · #10 |
|
Создано: 10 августа 2008 10:44 · Личное сообщение · #11 |
|
Создано: 10 августа 2008 10:47 · Личное сообщение · #12 |
|
Создано: 10 августа 2008 10:57 · Поправил: SpoliatoR · Личное сообщение · #13 |
|
Создано: 10 августа 2008 10:57 · Личное сообщение · #14 |
|
Создано: 10 августа 2008 11:28 · Личное сообщение · #15 |
|
Создано: 12 августа 2008 04:06 · Поправил: Dian · Личное сообщение · #16 |
|
Создано: 12 августа 2008 05:49 · Личное сообщение · #17 |
|
Создано: 12 августа 2008 06:58 · Личное сообщение · #18 |
|
Создано: 15 августа 2008 22:44 · Поправил: g-l-u-k · Личное сообщение · #19 DOOM'НЫЙ ВЗЛОМ. Всем привет. Данная статья будет адресована в основном новичкам, поскольку все то, что я здесь опишу старички и так давно знают )). Ну что же меньше слов – больше дела. Взламывать мы с тобой будем игру от моей любимой студии id Software – Doom 3. Для взлома нам понадобятся следующие инструменты: 1. Cheat Engine 5.4 (Далее по тексту просто CE) 2. The MinimizoR ver. 1.8a для сворачивания окна игры. 3. Калькулятор в инженерном режиме. 4. Наличие небольшого кол-ва серого вещества и прямых рук обязательно. Теперь расскажу немного о игре, для чего нам нужен минимизатор, спросишь ты. Дело в том окно игры нельзя свернуть привычным Alt+Tab, следовательно, ты не сможешь переключиться на окно CE и приступить к взлому. Я выбрал минимизатор от Guru.eXe поскольку он мне нравиться больше всех остальных ), Guru.eXe тебе привет от меня. Ну что же, можно начинать. Для начала я советую запустить MinimizatorR и назначить в нем удобный для тебя hot-key. Я выбрал F10, теперь можно запустить игру и загрузить сейв. После того как ты загрузил свой сейв, ставь игру на паузу и жми F10 (или ту кнопку которую ты назначил в минимизаторе). Теперь можешь запустить СЕ и выбрать процесс игры. Здоровье: Предлагаю для начала найти адрес здоровья главного игрока, что бы в последствии тебе было легче играть ну и взламывать остальные значения ))). Итак у моего игрока здоровье полное и равно 100. Значит, тебе необходимо искать именно это значение вводи в СЕ в поле Value свое значение здоровья и жми Find Scan. У меня СЕ нашел не так уж и много адресов, всего ~25000. Теперь можешь возвращаться в игру и изменить значение здоровья. После того как ты изменил кол-во здоровья игрока возвращайся в CE вводи свое кол-во здоровья в поле Value и жми на кнопку Next Scan. Ну что я могу сказать у меня после отсева остался всего один адрес, который и является адресом здоровья для нашего игрока, но могу сразу тебе сказать, что этот адрес динамический, т.е. после перезапуска игры он будет для нас бесполезен, значить будем ставить бряк на запись на данный адрес и искать адрес инструкции, которая отвечает за жизни игрока. Для того чтобы поставить бряк на запись необходимо нажать правой кнопкой мыши на найденном адресе и выбрать пункт меню – “Find out what writes to this address”. Если ты все сделал правильно, то ты увидишь следующее окно, в котором после очередного изменения адресов всплывут адреса инструкций. Теперь вернись в игру и измени значение жизней, затем вернись в СЕ и ты сможешь увидеть инструкции которые всплыли после записи в адрес жизней. Вот какие инструкции всплыли у меня, методом научного тыка я установил, что инструкция, которая отвечает за изменение кол-ва жизней в этом списке предпоследняя. Вот собственно инструкция отвечающая за изменение жизней игрока, давайте её проанализируем: 101E4AF1 - 89 96 bc 00 00 00 - mov [esi+000000bc],edx
Этой инструкцией в [esi+000000bc] помещается значение находящееся в регистре edx. Ради интереса можешь сложить значение регистра esi c 000000bc и в итоге ты получишь адрес наших жизней. Давай прикинем как нам поступить с найденным адресом, можно конечно его занопить (nop) и мы станем бессмертными, но такой подход мне не нравится по одной простой причине игра может попросту упасть, я предлагаю создать code cave и вписать в регистр edx наше значение, так мы избежим падения игры да и взлом будет выглядеть элегантнее ;). В окне с инструкция можешь нажать Stop а затем Close, поскольку пока нам это окно не нужно. Я надеюсь что ты уже перешел в окно отладчика CE ))). Для того чтобы создать code cave нам необходимо найти свободное место в адресном пространстве игры, для этого ты можешь воспользоваться сторонними тулзами или использовать встроенный в СЕ сканер. Мы с тобой используем последний. Нажми Ctrl+Alt+C или иди в Tools -> Scan for code caves и в появившемся окне в поле Size of cave введи размер cave в байтах нажми Scan, я буду искать кейв с запасом для остальных опций размером в 50 байт, этого я думаю, нам будет достаточно. Я выбрал самый первый адрес – 00400308. Теперь после того, как мы нашли адрес для кейва возвращаемся в окно Memory Viewer’а и по нашей инструкции жмем правой кнопкой мыши и выбираем пункт “Create jump and initialize Code-Cave”. После чего тебе будет необходимо ввести адрес для нашего кейва и указать кол-во байт для него. Нам хватит 20 байт. После всех этих манипуляций СЕ вместо нашей инструкции вставит прыжок на кейв и перенесет нашу инструкцию в сам кейв. Вот какой код появится на месте нашей инструкции:
Теперь можешь отправляться по адресу нашего кейва, для чего вызываем правой кнопкой мыши контекстное меню и выбираем пункт “Go to address” и вводим адрес кейва, после чего жмем ОК. Как ты теперь можешь видеть в кейве пока у нас лежит наша старая инструкция. Теперь немного пошаманим с кодом, впишем в регистр edx наше значение и затем запишем его куда нужно. В результате у тебя должен получится следующий код:
Теперь можешь вернуться в игру и посмотреть на результат. Как ты видишь мы бессмертные с 255 единицами здоровья. Мы добились того чего хотели, теперь для полного счастья доломаем Броню, Амуницию и Стамину. Следующие шаги будут идентичны уже проделанным нами, так что я буду описывать происходящее менее детально. Броня: Теперь возвращайся к главному окну CE и ищи адрес Брони, после того как найдешь адрес, ставь на него бряк и ищи инструкцию. Вот моя инструкция отвечающая за вычитание урона от общего кол-ва брони:
Сразу оговорюсь, что можно было бы найти инструкцию по типу той, которую мы нашли для адреса здоровья, но поскольку мне это делать лень ), то я выберу эту инструкцию и продолжу работать именно с ней. Итак, давай для начала посмотрим на инструкцию, как я писал ранее инструкция отвечает за вычитание кол-во урона от общего кол-ва брони, можно в принципе изменить sub на add, в результате чего, кол-во брони будет увеличиваться после каждого выстрела, но тут может быть такая проблема, что при переходе на новый уровень кол-во брони сбросится на 0, что не есть хорошо. Здесь я предлагаю поступить так же как и со здоровьем, создать кейв, записать наш код и радоваться жизни. Итак нажимай правой кнопкой, и жми на пункт создать кейв. Далее вписывай этот адрес 00400318, поскольку так ты создашь новый кейв, сразу за прошлым, что согласись будет выглядеть в разы лучше чем если бы наши кейвы были разбросаны по всему адресному пространству игры ;). Нам также как и в прошлый раз хватит 20 байт для кейва. Вот что в итоге получилось у меня на месте нашей инструкции:
Теперь переходим на адрес 00400318 и начинаем править наш код на следующий:
Т.е. смотри, мы заменили инструкцию вычитания на mov – копирование, и теперь после выстрела в адрес жизней запишется значение 255 и так и останется, как мне кажется, так намного лучше, чем простой nop или замена sub на add. Теперь можешь вернуться в игру и посмотреть на результат нашей махинации. У меня все работает отлично, думаю у тебя тоже все в порядке. Амуниция: Ну что же, мы с тобой прошли половину этого туториала, с чем я тебя и поздравляю. Сейчас мы с тобой дадим главному герою бесконечный бое запас, ну а на десерт мы с тобой сломаем полоску стамины – сделаем из нашего героя бегуна на длинные дистанции )). Ну что же, поехали. Метод нахождение значения патрон аналогичен тому, как мы находили значения жизней и брони. Начнем с пистолета. Сразу хочу заметить, что с поиском патронов у тебя могут быть проблемы, но чтобы их не возникло, перед тем как начать поиск выбери в Memory Scan Options пункт All. Теперь можно начинать. После того как нашел адрес, ставь на него бряк и смотри какие инструкции обращаются к этому адресу. В итоге я вышел на этот адрес:
Теперь давай создадим кейв и продолжим шаманить над нашей инструкцией. Адрес для кейва я выбрал следующий 00400328, данный кейв я сделал в 30 байт, поскольку помимо нашей инструкции придется захватить в кейв еще одну, т.к. для создания прыжка необходимо 5 байт, а наша инструкция длинной всего в 4 байта. После того как кейв создан у тебя не месте старой инструкции будет следующий код:
Теперь перейдем в наш кейв и дадим нашему герою бесконечных патронов. Вот что у меня в итоге получилось:
В итоге вернувшись в игру, ты увидишь, что у игрока стало 255 патронов в целом, т.е. патроны в запасе + патроны в обойме = 255 единиц. Постреляй из пистолета и перезарядись и ты увидишь, что кол-во патронов постоянное и я думаю, что можно остановиться на этом, так как эти 255 единиц будут постоянны для всех типов оружия. |
|
Создано: 15 августа 2008 22:47 · Личное сообщение · #20 Стамина: Что такое стамина – это полоска, которая находится непосредственно под счетчиком жизней главного героя и которая отвечает за выносливость, т.е. взломать стамину игрок сможет постоянно бежать, причем без передышек ;) этим мы и займемся. Сейчас ты узнаешь как взламывать полоски, поскольку я уверен на все 255 единиц здоровья, что умение взламывать полоски тебе пригодится в будущем. Итак, ты возможно спросишь как мы сможем взломать стамину, если мы не знаем чему равно значение полоски. На самом деле все не так сложно как может показаться. Начни новый поиск в CE и в поле “Scan type” выбери пункт “Unknown initial value”, после чего нажми на кнопку “First Scan”. Теперь вернись в игру и немного побегай, для того чтобы уменьшить значение стамины, после чего вернись в СЕ поле “Scan type” выбери пункт “Decreased value” и нажми “Next Scan”. После чего вернись в игру и постой на месте для того чтобы кол-во стамины увеличилось. Теперь снова вернись в СЕ и проделай обратное действие предыдущему, т.е. в поле “Scan type” выбери пункт “Increased value” и нажми “Next Scan”. Теперь проделай эти действия до тех пор, пока СЕ не оставит ~15 значений или менее. Не знаю как у тебя но, у меня после 10 отсевов осталось всего 20 адресов, среди которых, при помощи научного тыка, я нашел свой адрес стамины. Теперь ставь на найденный адрес бряк и вернувшись в игру побегай для того чтобы изменить значение стамины. Теперь вернись в СЕ и посмотри какие инструкции всплыли у тебя. Сразу облегчу тебя задачу сказав что инструкция отвечающая за стамину – это:
Если мне не веришь, то посмотри в Memory Viewer на одну инструкцию вверх, там ты увидишь инструкцию вычитания. Ну что я могу тебе сказать, на моих часах уже 1:11 ))) и я дико хочу спать, поэтому давай просто занопим эту инструкцию, авось не упадет ;). Заключение: Ну вот ты и закончил прочтение данной статьи ))), надеюсь что тебе понравилось, и самое главное, надеюсь, что ты смог вынести из этой статьи что-то для тебя полезное. Как ты мог видеть взлом игр это не такое уж и сложное занятие, главное понять основные принципы, и кое-что запомнить, к примеру как взламывать полоски, после чего ты сможешь с легкостью взламывать игры и писать для них трейнеры. На этом мы с тобой прощаемся, надеюсь что не надолго, так как в ближайшее время я планирую написать еще одну статью. Успехов тебе в геймхаке и спасибо что ты дочитал весь этот бред до конца. ;) (c) g-l-u-k^tmx 2008
|
|
Создано: 15 августа 2008 22:49 · Личное сообщение · #21 |
|
Создано: 16 августа 2008 18:33 · Личное сообщение · #22 |
|
Создано: 16 августа 2008 19:02 · Поправил: Guru_eXe · Личное сообщение · #23 |
|
Создано: 16 августа 2008 19:08 · Личное сообщение · #24 |
|
Создано: 16 августа 2008 20:39 · Личное сообщение · #25 |
|
Создано: 16 августа 2008 23:28 · Личное сообщение · #26 |
|
Создано: 17 августа 2008 22:18 · Личное сообщение · #27 |
|
Создано: 20 августа 2008 15:35 · Личное сообщение · #28 |
|
Создано: 20 августа 2008 15:55 · Личное сообщение · #29 |
|
Создано: 20 августа 2008 15:55 · Личное сообщение · #30 |
|
Создано: 20 августа 2008 19:27 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . 4 . 5 . 6 . 7 . 8 . 9 . 10 ... 11 . 12 . >> |
eXeL@B —› Дневники и блоги —› g-l-u-k's blog |