Внимание! Данная статья предназначена исключительно для образовательных целей: она поможет понять принципы работы с «кодом Белого мага», используемым в популярных RPG‑играх и фан‑проектах. Мы не призываем к нелегальному взлому или нарушению условий использования программного обеспечения.
Что такое «код Белого мага»?
Термин «код Белого мага» (англ. White Mage Code) часто встречается в сообществах игроков, которые занимаются:
- Разбором внутриигровых скриптов, отвечающих за заклинания исцеления;
- Созданием пользовательских модов, меняющих баланс магических способностей;
- Решением головоломок, встроенных в сюжетные квесты (например, набор символов, который необходимо «раскодировать»).
В большинстве случаев код представляет собой зашифрованный набор байтов, который хранится в файлах .pak, .dat или в виде строк внутри конфигурационных файлов.
Прежде чем начать: подготовка окружения
Для безопасной и эффективной работы вам понадобится:
- Рабочий компьютер с ОС Windows, macOS или Linux.
- Текстовый редактор с подсветкой синтаксиса. Рекомендуем VS Code или Sublime Text.
- Утилиты для работы с архивами и бинарными файлами:
- 7‑Zip – для извлечения
.pak/.zip‑архивов; - HxD или 010 Editor – для просмотра и редактирования бинарных данных;
- Decompiler (например, dnSpy для .NET‑игр) – если код находится в сборках.
- 7‑Zip – для извлечения
- Инструменты для дешифровки:
- Онлайн‑расшифровщики (Base64, XOR, ROT13 и др.);
- Python‑скрипты (модуль
base64,codecs); - Отладчики (Cheat Engine, x64dbg) – при необходимости отследить процесс расшифровки в памяти.
Общий алгоритм распаковки кода
Ниже представлен типичный пошаговый план распаковки кода Белого мага. В зависимости от конкретного проекта некоторые шаги могут отличаться.
Выявление места хранения кода
- Откройте каталог с игрой и найдите файлы с расширениями
.pak,.dat,.binили.json. - Если используется движок Unity, ищите файлы
resources.assetsиsharedassets*.assets. - Для движков Unreal Engine обратите внимание на
.uassetи.umap.
Извлечение содержимого архива
С помощью 7‑Zip или специализированных утилит (например, UnrealPak) раскройте архив и найдите файлы, похожие на скрипты магии (часто имеют имена spell_.bin или magic_.dat).
Анализ структуры файла
Откройте полученный файл в hex‑редакторе и обратите внимание на:
- Заголовок (первые 4‑8 байт) – часто содержит сигнатуру
0x4D4753(ASCII «MGS»). - Последовательность повторяющихся паттернов – может указывать на простой XOR‑шифр.
- Текстовые блоки – если встречаются читаемые строки (например, «Heal», «Revive»), они обычно находятся в конце.
Выявление метода шифрования
Самые популярные методы, используемые в подобных файлах:
- Base64 – часто встречается в JSON‑файлах.
- XOR с фиксированным ключом – ключ может быть 1‑байтовым (0x5A) или многобайтовым.
- ROT13/ROT47 – применяется к строковым данным.
- Простая сжатая упаковка (LZ4, Zlib) – после дешифровки файл нужно распаковать.
Дешифровка и распаковка
Пример Python‑скрипта для XOR‑расшифровки с однобайтовым ключом:
import sys
def xor_decode(data, key):
return bytes([b ^ key for b in data])
if __name__ == "__main__":
input_path = sys.argv[1]
output_path = sys.argv[2]
key = 0x5A # пример ключа, менять при необходимости
with open(input_path, "rb") as f:
encrypted = f.read
decrypted = xor_decode(encrypted, key)
with open(output_path, "wb") as f:
f.write(decrypted)
print("Дешифровка завершена, результат сохранён в", output_path)
Для более сложных сценариев (многобайтовый ключ, переменный XOR) используйте цикл перебора и сравнение полученных строк с известными паттернами.
Декомпиляция полученного скрипта
Если после дешифровки вы получили файл .lua, .js или .cs, откройте его в редакторе и изучите логику:
- Ищите функции
Heal,Revive,Buff– это «заклинания Белого мага». - Обратите внимание на параметры:
manaCost,cooldown,healAmount.
Практический пример: распаковка кода из условного файла white_mage_spell.dat
- С помощью 7‑Zip извлекли
white_mage_spell.datизmagic_assets.pak. - Открыли файл в HxD и обнаружили сигнатуру
0x4D4753и последовательностьAA BB CC DD– типичный XOR‑ключ 0xAA. - Запустили скрипт выше с ключом
0xAA. Получили файлspell_decoded.bin. - Выполнили команду
zlib‑decompress(утилитаpython -m zlib) и получили чистыйspell.lua. - В
spell.luaнашли функцию:function WhiteMageHeal(target) local heal = 150 + (target.maxHealth * 0.25) target:Heal(heal) target:ApplyBuff("DivineProtection", 30) end - Таким образом, «код Белого мага» раскрыт: он восстанавливает 25 % от максимального HP и накладывает бафф защиты.
Часто встречающиеся проблемы и как их решать
| Проблема | Возможные причины | Решение |
|---|---|---|
| Файл «покрашен» в нечитаемые символы даже после XOR | Неправильный ключ или используется многобайтовый XOR | Попробуйте перебор всех 256 возможных однобайтовых ключей; если не помогло – проанализируйте паттерн «ключ‑зависимый» (например, каждый второй байт XOR‑ится другим ключом). |
| После дешифровки получилась «бинарная каша», а не текст | Файл сжат (LZ4, Zlib) после XOR | Воспользуйтесь утилитами lz4 -d или python -m zlib для распаковки. |
| Не удаётся найти сигнатуру в файле | Код может быть зашифрован двойным способом (например, сначала Base64, потом XOR) | Сначала декодируйте Base64 (он выглядит как строка из символов A‑Z, a‑z, 0‑9, +, /), затем примените XOR. |
Лучшие практики и рекомендации
- Создавайте резервные копии оригинальных файлов перед любой модификацией.
- Ведите журнал изменений (дата, используемый ключ, применённый инструмент).
- Если работаете с онлайн‑игрой, убедитесь, что ваш процесс не нарушает Terms of Service сервера.
- Для автоматизации часто повторяющихся действий используйте скрипты на Python или PowerShell.
- Обменивайтесь находками в сообществах (Discord, Reddit, форумы моддеров) – совместный разбор ускоряет процесс.
Распаковка кода Белого мага – это сочетание анализирования структуры файлов, выявления метода шифрования и применения подходящих инструментов. Следуя изложенному выше алгоритму, вы сможете быстро получить читаемый скрипт, понять, как работает исцеляющая магия, и при желании адаптировать её под свои нужды.
Помните, что любые изменения в игровых файлах должны быть сделаны только для личного использования и в рамках правил конкретного проекта. Удачной разработки и новых открытий!
Статья подготовлена в 2026 году. © Все права защищены.