Автоматизация редактирования ASM кода — различия между версиями
Материал из Perfect World Develop Wiki
(Новая страница: «<syntaxhighlight lang="asm">push eax</syntaxhighlight>») |
|||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
+ | В данной статье рассматривается создание программы, которая автоматически изменяет часть кода в сервере для каких-либо целей. Работа программы построена на шаблонах (англ. pattern), которые задают то, что следует заменить, и то, на что следует заменить. Для большего понимания рассмотрим пример: | ||
+ | * Входная строка | ||
+ | <code>E9 2D 94 00 00 50 E9 4D 20 00 00</code> | ||
+ | * Паттерн поиска | ||
+ | <code>E9 ?? ?? ?? ?? 50 E9 ?? ?? ?? ??</code> | ||
+ | * Паттерн замены | ||
+ | <code>E9 ?? ?? ?? ?? 90 E9 ?? ?? ?? 01</code> | ||
+ | * Выходная строка | ||
+ | <code>E9 2D 94 00 00 90 E9 4D 20 00 01</code> | ||
+ | Как видно, здесь отсутствуют оффсеты — это одна из положительных сторон использования паттернов. Таким образом, они делают программу независимой от версий (в пределах разумного, конечно). | ||
+ | Бла-бла-бла, статья еще пишется. | ||
<syntaxhighlight lang="asm">push eax</syntaxhighlight> | <syntaxhighlight lang="asm">push eax</syntaxhighlight> |
Текущая версия на 17:43, 7 сентября 2015
В данной статье рассматривается создание программы, которая автоматически изменяет часть кода в сервере для каких-либо целей. Работа программы построена на шаблонах (англ. 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