Автоматизация редактирования ASM кода

Материал из Perfect World Develop Wiki
Перейти к: навигация, поиск

В данной статье рассматривается создание программы, которая автоматически изменяет часть кода в сервере для каких-либо целей. Работа программы построена на шаблонах (англ. pattern), задающих то, что следует заменить, и то, на что следует заменить. Для большего понимания рассмотрим пример:

  • Входная строка

E9 2D 94 00 00 50 E9 4D 20 00 00

  • Паттерн поиска

E9 ?? ?? ?? ?? 50 E9 ?? ?? ?? ??

  • Паттерн замены

E9 ?? ?? ?? ?? 90 E9 ?? ?? ?? 01

  • Выходная строка

E9 2D 94 00 00 90 E9 4D 20 00 01 Как видно, здесь отсутствуют оффсеты — это одна из положительных сторон использования паттернов. Таким образом, они делают программу независимой от версий (в пределах разумного, конечно). Бла-бла-бла, статья еще пишется.

push eax