как редактировать код игры

Гайд. Как редактировать исходный код игры.

Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК.

Необходимый софт

как редактировать код игры. epOQSVACDeE. как редактировать код игры фото. как редактировать код игры-epOQSVACDeE. картинка как редактировать код игры. картинка epOQSVACDeE. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК.

С помощью этой программы и будет осуществляться декомпиляция (а если точнее — дизассемблирование).

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

Немного теории

И так, что же мы будем делать?

Мы сначала дизассемблируем AoC2, проверим результат, внесем некоторые изменения и заново соберем АоС2.

Что же такое дизассемблирование?

Для начала, разберемся с Java Virtual Machine (JVM).

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

Вот мы и подошли к дизассемблированию. Дизассемблирование — это трансляция машинного кода в изменяемый байт-код.

(Если кто-то еще не понял, то АоС2 написана на Java)

Итак, мы разобрались как работает JVM, и можем приступать к работе.

Дизассемблирование

Заходим в скачанную нами программу (muxv.exe) и выбираем раздел «Дизассемблирование».

как редактировать код игры. 5pVvNJikCr0. как редактировать код игры фото. как редактировать код игры-5pVvNJikCr0. картинка как редактировать код игры. картинка 5pVvNJikCr0. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК.

Указываем путь к файлу «disassemble.pу», который лежит в папке, в которую установлена Krakatau, потом указываем все остальные папки и файлы.

как редактировать код игры. . как редактировать код игры фото. как редактировать код игры-. картинка как редактировать код игры. картинка . Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК.

Если вы все сделали правильно, то у вас должно появиться такое окно командной строки:

как редактировать код игры. 1sOWt4 wIF0. как редактировать код игры фото. как редактировать код игры-1sOWt4 wIF0. картинка как редактировать код игры. картинка 1sOWt4 wIF0. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК.

Если у вас не получается дизассемблировать, то проверьте еще раз все папки и файлы. В названиях папках не должно быть знака «+». Если и это не помогает, смените папку, в которой находится файл.

После окончания дизассемблирования, откройте папку, которую вы указали, как «Директория, куда отправятся дизассемблированные файлы» и найдите там файл Menu_About.j (без цифр). Откройте его любым текстовым редактором.

Перед вами должна появиться примерно такая картина:

как редактировать код игры. sOtFd0TrQoc. как редактировать код игры фото. как редактировать код игры-sOtFd0TrQoc. картинка как редактировать код игры. картинка sOtFd0TrQoc. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК.

Это — байт-код java, с ним мы и будем дальше работать.

Для начала определимся, что мы будем изменять. Допустим, вы решили заменить автора музыки в разделе «Подробнее».

Открываем JDGUI, затем выбираем местонахождение AoC2.jar

Источник

Модификация исходного кода android-приложения с использованием apk-файла

Так уж получилось, что приложение для чтения комиксов и манги, которое я использую на своем android-смартфоне, после обновления стало показывать рекламу в конце каждой главы комикса. Данное приложение пару лет назад было доступно на Google Play (платная версия которого и была мной куплена), но было удалено в силу «нарушения авторских прав», после чего ушло в подполье и стало распространятся через сайт разработчика. Увы, достойных альтернатив этому приложению на android и iOS я не нашел, но и смотреть рекламу особо не было желания, тем более я уже покупал версию без рекламы. Сам разработчик почему-то не сделал возможности отключить ее, а на просьбы добавить такую возможность не отозвался. Поэтому пришлось искать альтернативные методы ее отключения. Первое, что пришло в голову, это то, что android-приложения пишутся на java, а значит есть вероятность, что автор не обфусцировал свое приложение и его можно попытаться декомпилировать. Немного подумав, я приступил к работе.

Для начала был загружен сам apk-файл приложения. Затем недолгий поиск по интернету привел меня на сайт http://www.decompileandroid.com/. С его помощью можно было загрузить apk-файл с приложением и на выходе получить набор исходников. Увы, декомпиляция в java-классы происходит не совсем идеально и поэтому восстановить полностью сам проект приложения в IDE(Idea) у меня не получилось, но это позволило проанализировать саму структуру проекта и разобраться как он примерно работает. После проведения анализа, было найдено два перспективных метода в классе BaseReaderFragment.javaplaceAdViewIfNeeded и removeAdViewIfNeeded.

Код метода placeAdViewIfNeeded:

Самое простое, что пришло на ум после чтения кода, это убрать все лишнее, и оставить лишь вызов return;

Но, как уже было сказано, даже если бы я изменил в java-классе что-либо, я бы не смог в итоге скомпилировать приложение в IDE. Поэтому пришлось искать альтернативу. Оказалось, что smali-файлы, которые создаются в процессе декомпиляции, позволяют также после внесения нужных изменений, вновь собрать модифицированное приложение. Увы, сайт, что был приведен выше, позволял лишь получать исходники, но не собирать новые. Поэтому пришлось искать способы сделать это самостоятельно.
Была найдена утилита ApkTools, которая позволяла декомпилировать и компилировать apk-файлы. Кроме того, потребовалась утилита aapt.exe, которая была взята мной из стандартного SDK под андроид в папке android-sdk\build-tools\20.0.0.

Для удобства вызова утилиты из под windows был создан скрипт apktool.bat:

Для декомпиляции приложения были выполнены команды:

После чего, в полученных исходниках был найден файл BaseReaderFragment.smali и нужные нам методы были изменены следующим образом:

Далее пришла очередь сборки apk-файла из исходников.

Сделать это можно cледующей командой:

Но это еще не все. Чтобы приложение можно было установить, его нужно было подписать цифровой подписью. Самый простой способ сделать это – это скачать архив в котором находится утилита для подписи приложений и цифровые сертификаты к ней.

Распаковываем архив, выполняем команду:

Полученный apk-файл можно загружать на телефон, чтобы проверить наше модифицированное приложение. Однако в процессе тестирования изменений оказалось, что объявления больше не показываются, однако сама страница для их показа создается, что не очень приятно. Снова был проанализирован код приложения, найден класс BaseSeamlessReaderFragment, а в нем метод appendPages.

В нем было видно, что строчка:

создает дополнительную страницу, помимо тех, что есть в главе манги, с параметром, отвечающим за показ объявлений. Было решено удалить эту строчку и посмотреть результат. Снова заглядываем в аналогичный smali-файл(BaseSeamlessReaderFragment$4) и удаляем строчку:

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

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

Источник

Это читерство! Учимся взламывать игры и писать читы на простом примере

как редактировать код игры. td h. как редактировать код игры фото. как редактировать код игры-td h. картинка как редактировать код игры. картинка td h. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК.

Содержание статьи

Виды читов и применяемые тактики

Существуют разные виды читов. Можно разделить их на несколько групп.

External — внешние читы, которые работают в отдельном процессе. Если же мы скроем наш external-чит, загрузив его в память другого процесса, он превратится в hidden external.

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

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

Network proxy — читы, которые используют сетевые прокси, те, в свою очередь, перехватывают трафик клиента и сервера, получая или изменяя необходимую информацию.

Есть три основные тактики модификации поведения игры.

Большинство современных игр написаны для Windows, поэтому и примеры мы будем делать для нее же.

Пишем игру на C

Про читы лучше всего рассказывать на практике. Мы напишем свою небольшую игру, на которой сможем потренироваться. Я буду писать игру на C#, но постараюсь максимально приблизить структуру данных к игре на C++. По моему опыту читерить в играх на C# очень просто.

Принцип игры прост: нажимаешь Enter и проигрываешь. Не особо честные правила, да? Попробуем их изменить.

Приступим к реверс-инжинирингу

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

как редактировать код игры. game behaviour. как редактировать код игры фото. как редактировать код игры-game behaviour. картинка как редактировать код игры. картинка game behaviour. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК. Начнем с поведения игры

При каждом нажатии Enter жизни игрока уменьшаются на 15. Начальное количество жизней — 100.

Изучать память мы будем при помощи Cheat Engine. Это приложение для поиска переменных внутри памяти приложения, а еще хороший дебаггер. Перезапустим игру и подключим к ней Cheat Engine.

как редактировать код игры. ce connected. как редактировать код игры фото. как редактировать код игры-ce connected. картинка как редактировать код игры. картинка ce connected. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК. Подключение CE к игре

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

как редактировать код игры. ce found. как редактировать код игры фото. как редактировать код игры-ce found. картинка как редактировать код игры. картинка ce found. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК. Все значения, которые нашел CE

Вот и нужное значение! Изменим его и нажмем Enter для проверки результата.

как редактировать код игры. ce value changed. как редактировать код игры фото. как редактировать код игры-ce value changed. картинка как редактировать код игры. картинка ce value changed. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК. Значение изменено
как редактировать код игры. game value changed 1. как редактировать код игры фото. как редактировать код игры-game value changed 1. картинка как редактировать код игры. картинка game value changed 1. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК. Скрин игры, после того как мы нажали Enter

Проблема в том, что после перезапуска игры значение будет уже по другому адресу. Каждый раз отсеивать его нет никакого смысла. Необходимо прибегнуть к сканированию AOB (Array Of Bytes — массив байтов).

При каждом новом открытии приложения из-за рандомизации адресного пространства (ASLR) структура, описывающая игрока, будет находиться на новом месте. Чтобы найти ее, необходимо сначала обнаружить сигнатуру. Сигнатура — это набор не меняющихся в структуре байтов, по которым можно искать в памяти приложения.

Я скопирую небольшой регион памяти и вставлю в блокнот для дальнейшего изучения. Теперь перезапустим приложение и снова найдем значение в памяти. Снова скопируем такой же регион памяти и вставим в блокнот. Начнем сравнение. Цель — найти байты рядом с этой сигнатурой, которые не будут меняться.

как редактировать код игры. byte comparsion. как редактировать код игры фото. как редактировать код игры-byte comparsion. картинка как редактировать код игры. картинка byte comparsion. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК. Начинаем сравнивать байты

Проверим байты перед структурой.

как редактировать код игры. ce signature not unique. как редактировать код игры фото. как редактировать код игры-ce signature not unique. картинка как редактировать код игры. картинка ce signature not unique. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК. Сигнатура не уникальна

В подтверждение уникальности получим такой результат:

как редактировать код игры. ce signature unique. как редактировать код игры фото. как редактировать код игры-ce signature unique. картинка как редактировать код игры. картинка ce signature unique. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК. Сигнатура уникальна

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

Жизненный цикл external

Так как динамическое размещение данных в памяти мешает записать нужные адреса и постоянно к ним обращаться, можно использовать технику поиска AOB. Жизненный цикл external-чита выглядит так:

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Источник

Code Injection

Содержание:
1. Вступление
2. Теория
3. Изменение кода игры
4. Самый примитивный code injection
5. Более продвинутый code injection
6. Пишем трейнер
7. Контакты и ссылки
8. Условия распространения

Что нам потребуется:

— Artmoney/TSearch и т.п.

— Лист бумаги и ручка, голова, прямые руки, сгибающиеся в локтях

Хорошо бы иметь Red Alert 2, потому что я буду показывать на нём примеры (старьё? Я знаю, что старьё. Но ничего более нового и более показательного у меня не нашлось). Использую какую-то пиратскую русифицированную версию, v1.0.

Что ж, давайте посмотрим поближе на примерах.

3. Изменение кода игры

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

Я считаю, что SoftICE у вас уже установлен, настроен и готов к работе, и по нажатию Ctrl+D вылезает его окошко. Включим окна регистров и памяти, если выключены (команды WR и WD соотв.).

Запускаем игру. Начинаем/загружаем игру. Теперь нам нужен адрес денег, его нужно найти. Но я уже нашёл указатель на него, ещё в прошлой статье. Поэтому делаем по-нашему, по-геймхакерски: жмём Ctrl+D, смотрим, чтобы был выбран нужный процесс (Game), в SoftICE набираем:

0030:00A1E0C4 60 6B C4 06 00 00 00 00 00 00 00 00 00 00 00 00

😕 06C46B60 + 24C
06C46DAC 0113536428 «. «

Проверим значение по этому адресу:

0030:06C46DAC 10 27 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Теперь поставим брейкпоинт на найденный адрес:

После того, как вернулись в игру, начинаем что-нибудь строить. Количество денег уменьшается, поэтому срабатывает брейкпоинт, вылезает окно отладчика. В нём видим что-то вроде этого (все адреса кода могут меняться в зависимости от версии игры):

В окне кода:
.
017F:004E48F7 JMP 004E4988
017F:004E48F9 SUB EAX, EDI
.

Break due to BPMB #0030:06C46DAC W DR3

: A 004E48F9
0028:004E48F9

: A 004E48F9
017F:004E48F9 NOP
017F:004E48FB NOP
017F:004E48FC

Теперь в окне кода мы должны увидеть такой код:

.
017F:004E48F7 JMP 004E4988
017F:004E48F9 NOP
017F:004E48FС NOP
017F:004E48FB MOV [ESP+24], EDI
017F:004E48FF MOV [EBX+0000024C], EAX
017F:004E4905 JMP 004E4953
.

4. Самый примитивный code injection

Итак, чтобы исправить досадную неприятность с количеством денег у врага, нам нужно будет написать немного своего кода. Как я говорил раньше, для этого мы будем использовать code caves. Здесь мы научимся ими пользоваться.

В Red Alert 2 имеем code cave с начальным адресом 00B12024, длины FDC (4060) байт.

Перед тем, как писать свой код, попробуем лишь сделать переход в code cave и вернуться назад.

:A 004E48F9
017F:004E48F9 JMP 00B12024
017F:004E48FE

Инструкция JMP имеет длину 5 байтов, поэтому последующие две инструкции окажутся запороты: вместо

017F:004E48F9 SUB EAX, EDI
017F:004E48FB MOV [ESP+24], EDI
017F:004E48FF MOV [EBX+0000024C], EAX
017F:004E4905 JMP 004E4953

поэтому нам придётся восстановить ещё и эти две инструкции в нашем code cave. Поэтому же нужно всегда предварительно смотреть, сколько байтов будет занимать написанная нами инструкция, и записывать на бумажку старые, чтобы их потом восстановить.

Хорошо, теперь займёмся собственно code cave’ом:

: A 00B12024
017F:00B12024 SUB EAX, EDI
017F:00B12026 MOV [ESP+24], EDI
017F:00B1202A MOV [EBX+024C], EAX
017F:00B12030 JMP 004E4905
017F:00B12035

5. Более продвинутый code injection

В нашем code cave пишем такой код:

: A 00B12024
01F7:00B12024 PUSH EDX

Всё 8) Мы успешно внедрили свой код.

Чтобы не проделывать все эти трюки вручную, напишем трейнер. Серьёзный, взрослый трейнер с code injection 8) Пишем его абсолютно так же, как писали если бы изменяли значение в памяти.

Просмотрим машинные коды ассемблерных команд до и после замены SUB на JMP:

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

Исходники трейнера на Delphi прилагаются.

На этом у меня всё. Удачи. br0k3n_MinD.

7. Контакты и ссылки

Сообщения об ошибках и неточностях также приветствуются.

8. Условия распространения и всё прочее

07 апреля 2006 года.

То, что было прочитано перед тем, как был написан этот туториал:

Источник

HTML5-игры и GodMode: все просто!

«Война… Война никогда не меняется». Думаю, многим знакома эта фраза. Каждый пользователь ПК хоть раз запускал компьютерную игру. Много компьютерного железа пострадало в баталиях от горячей руки геймера, потерявшего последнюю «жизнь». Иногда появляется мысль: а не поискать ли «читы» и не накрутить ли себе жизней или ресурсов. Так начинается путь читера.

В этой статье я на двух примерах покажу, как с помощью подручных средств можно нечестно играть в игры на HTML5.

Ядро любой HTML5-игры — JavaScript. Единственной, на данный момент, защитой этого ядра является обфускация кода. Согласитесь, увидеть «простыню» в 10 000 строк обфусцированного кода без new-line — это поначалу страшно. Но если немного покопать — логика и архитектура приложения как на ладони. Главное — определить цель читерства (скорость, ресурсы, GodMode). В качестве инструмента используем Chrome и его Web Inspector. Во вкладке Sources можно «на горячую» изменять исполняемый код.

Google Doodles

Начну с простого примера: http://www.google.com/doodles/slalom-canoe-2012. Сравнительно свежий олимпийский Doodle.

как редактировать код игры. image loader. как редактировать код игры фото. как редактировать код игры-image loader. картинка как редактировать код игры. картинка image loader. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК.

Основная цель игры — пройти трассу как можно быстрее. В голову сразу приходят несколько уловок:

Нас интересует JavaScript-код игры.

как редактировать код игры. image loader. как редактировать код игры фото. как редактировать код игры-image loader. картинка как редактировать код игры. картинка image loader. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК.

Логично предположить, что это slalom_canoe12-2.js.

Начинаем рассуждать. По нажатию клавиши или при прохождении через ворота лодка ускоряется. Следовательно, где-то есть параметр «скорость» и он должен (скорее всего) инкрементироваться. Ищем по коду все операторы «+=» (благо объем и сложность кода позволяют), их находится всего 12. В принципе можно включить метод «научного тыка» и попробовать изменить все 12 по очереди. А можно и подумать.

Остановимся и проверим. Обновляем страницу (на всякий случай). Открываем Sources slalom_canoe12-2.js. Находим R+=Qc*b. Предположим, что b — коэффициент ускорения. И заменим его на 500 (не забываем нажать Ctrl + S).

как редактировать код игры. image loader. как редактировать код игры фото. как редактировать код игры-image loader. картинка как редактировать код игры. картинка image loader. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК.

Жмем Play в игре и…

как редактировать код игры. image loader. как редактировать код игры фото. как редактировать код игры-image loader. картинка как редактировать код игры. картинка image loader. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК.

Бинго! Наш чудо-катер устремляется к финишу. Теперь можно похвастаться перед друзьями скоростью своих пальцев 🙂

Отмечу, что приведенный пример — это случай, в котором удалось обойтись малой кровью. И не потребовало глубоких знаний JavaScript, архитектуры, отладки. Только арифметика.

Перейдем к другому примеру.

Spelunky

как редактировать код игры. image loader. как редактировать код игры фото. как редактировать код игры-image loader. картинка как редактировать код игры. картинка image loader. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК.

Открываем сайт с игрой. В инспекторе находим index.js, это и есть код игры. Первая мысль: «Какой кошмар».

Однако стоп! Встречаются и понятные слова. Например Bomb, Rope. Это уже интересно. Значит можно попробовать найти кусок кода, который обрабатывает получение предмета. А там где-то должно увеличивать количество оного…

Ищем слово Bomb. Результатов немало — 79. Попробуем Bomb Bag. И вот оно, первым же результатом!

как редактировать код игры. image loader. как редактировать код игры фото. как редактировать код игры-image loader. картинка как редактировать код игры. картинка image loader. Сегодня мы наконец-то расскажем вам, как-же редактировать исходный код игры на ПК.

Открываем Console и вводим следующее.

Отпускаем паузу — и наслаждаемся полученным результатом! Не буду описывать, как нарисовать себе жизней. Пусть читатель сам попробует разобраться с этой переменной.

Вывод: умный в гору не пойдет. Изменение JavaScript-кода — это легче легкого. Обфускация — это не смертельно. Старайтесь мыслить логически. И еще: любое читерство постепенно убивает интерес к игре (во всяком случае у меня), аккуратней с этим.

Данная статья носит информационный характер.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *