Авг
5

Редактирование игр с использованием Softice (Айс) и W32Dasm (Васм)

Введение.

В этом руководстве, я покажу как использовать айс для нахождения кода, который и меняет заданную величину. Этим Вы можете обойти динамическую адресацию. Динамическая адресация – тот случай, когда величина, которую Вы пытаетесь отредактировать меняет своё местонахождение в памяти, каждый раз когда Вы запускаете игру снова. Для примера возьмем игру Старкрафт 1.08 b . Я покажу, как найти, где программа убавляет ваши материалы и как это отредактировать (изменить).

Используем Айс.

Мы уже знаем смещение, где хранится информация о минералах (см. руководство по поиску) – 508728. (лучше запишите его где-нибудь). Теперь запустите старкрафт и загрузите ваш Save. Дайте роботам команду остановить добычу минералов. Во время игры нажмите [ Ctrl + D ], чтобы попасть в Айс. Теперь мы должны поставить брикпойнт (точку останова) на смещение, по которому хранится информация о количестве минералов. Когда мы ставим брикпоинт, то Айс будет всплывать, если по этому смещению ( offset) будет что-либо записываться (изменяться). Наберите в Айсе:

BPM 508728 w

BPM ставит брикпойнт для памяти 0x508728 – ваш оффсет, w – ключ, который ставит ОСТАНОВ, только если в адрес что-либо пишется. (для лучшего понимания смотрите руководство по Айсу).

Теперь снова нажмите [ F 5], чтобы вернуться в Старкрафт. Измените количество минералов, например построив что-нибудь. Всплывет Айс и Вы увидете что-то вроде этого:

4020DD  SUB EDX, ECX                              ; EDX:=EDX-ECX

4020DF  MOV [EAX+00508718], EDX        ; Addr {EAX+508718} <- EDX4020E5 MOV EDX, [EAX+0051FE88]      ; EDX <- Addr {EAX+51FE88}

4020EB  SUB [EAX+00508748], EDX          ; Addr {EAX+508748} <- EDX

4020F1   POP ECX                                         ; ECX:=EAX

4020F2   RET                                                  ; выход из подпрограммы

Хорошенько посмотрите на  этот код. Как думаете, что мы будем изменять?

Видите команды SUB : они означают вычитание. Теперь мы знаем, что один из них уменьшает, но какой? Если Вы не провидец, то лучше попробовать оба. Начнем с первого. То есть мы собираемся изменять 4020 DD. Заметьте, что следующий оффсет 4020 DF. Если знаете шестнадцатиричную систему счисления, тогда вы должны знать, что разница здесь составляет два байта. Таким образом, команды SUB : EDX , : ECX имеют длину в два байта. Теперь поменяем их используя команду NOP. NO : P – значит нет операции ( no : operations ) в языке ассемблера. А hex значение для NOP90.

Таким образом, вы уже можете сделать тренер, используя команду: POKE 4020 DD 90 90 или сделать это вручную в Айсе, введите :

a 4020dd

nop[Esc]

или так:

E 4020 DD

Это приведет вас к коду с оффсетом 4020 DD. Теперь просто введите 90 90 и нажмите [ F5] для возвращения в Старкрафт. Постройте что-нибудь. Ваши минералы не уменьшились. Но роботы все еще их собирают. Данный код лишь предотвратил уменьшение, но не увеличил их количество

Используем Дизассемблер.

Айс конечно хорош, но смотреть c помощью него на Asm-код трудновато. Поэтому откроем дизассемблер. Кликнете на дизассемблере и откройте файл starcraft. exe. Обычно требуется несколько минут для дисассемблирования файла. Можете создать проект, чтобы постоянно не дисассемблировать. Когда файл загрузится, нажмите Goto и выберете локализацию кода, введите Goto 4020 DD. Как видите вид намного лучше. Главная разница, в том, что Вы можете видеть хекс-коды, которые собираетесь изменять. Заметьте 2 B D1 в оффсете 4020 DD. Это хекс коды, в которых находятся SUB EDX, ECX. Это два байта, которые мы меняли на 90 90 ( NOP NOP). Теперь попробуем что-нибудь другое. Попробуем сказать ADD EDX, ECX взамен SUB EDX, ECX. Главная проблема, найти что ввести взамен 90 90. В дизассемблере вызовете поиск, найти текст. Введите ADD EDX, ECX. Нажмите поиск. Посмотрите на хекс коды для ADD EDX, ECX. Это 03 D1. Поэтому если  мы поменяем в 4020 DD на 03 D1, будет команда ADD EDX, ECX. Так как D1 уже есть его менять не будем. Теперь можем сделать трейнер или попробавть в Айсе. Старкрафт лучше перезагрузить, поскольку в первый раз мы ставили 90 90

В ТМК

POKE 4020 DD 03

Или в Айсе:

E 4020 DD 03

Теперь если Вы что-нибудь построите, это добавит количество материалов, вместо того чтобы отнять.

Заключение

Этот метод не только поможет Вам справиться с , но также поможет создать действительно крутые читы. Айс – лучший инструмент для геймхакинга.

Теперь попробуйте сделать что-нибудь сами.

Кстати, возможно Вы захотите создать свой вебсайт, тогда вам нужен хостинг. Самая его распространенная разновидность — php хостинг, так как сейчас 21 век и уже никого не удивишь статическими страницами.

Перевод: © Dark Yukon

Написал туториал ( Written by)  Drakken

Написать комментарий

XHTML: Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>