Помогает найти опкоды и имена пакетов
Я почти доделал свою утилиту по поиску опкодов и сравнению структур пакетов для определения имени пакетов. Суть этой утилиты сравнивать два текстовых файла с данными о пакетах, один с известными именами, например версия 1.0 и другой с неизвестными именами пакетов, например 1.2
Что она может делать?
- удалять ненужную для работы информацию из asm-исходников:
- ("PreClear" - почистить файлы, которые не вмещаются в оперативную память.
- "Clean up the source" - окончательная чистка, оставляет только нужную информацию для работы программы)
- искать структуры пакетов;
- искать опкоды;
- сравнивать автоматически и в ручную структуры пакетов для переименования пакетов;
- можно сохранить найденные имена пакетов в asm-исходник, для которого искали имена;
- можно заменить неправильно найденный опкод на правильный в ручную;
- выбрав имя пакета можно перейти к коду, где определено имя пакета для просмотра XREFS;
- выбрав имя пакета можно перейти к коду, где видно опкоды, что-бы исправить неправильно найденный опкод пакета;
- сохранить текущую работу и позже загрузить для дальнейшей работы, раздельно CS и SC пакеты;
- можно выбрать папку куда сохранять промежуточную работу (snapshot);
- может создать вспомагательные для работы с эмулятором файлы (CSOffsets.cs, SCOffsets.cs, CSOffsets.cs_AAEMU, SCOffsets.cs_AAEMU, сравнение структур пакетов CS|SCStructs.cs);
- может создать вспомагательные файлы (CSOffsets.cs_PDEC, SCOffsets.cs_PDEC) для утилиты ConstantFinder, с помощью которой можно обновить имена пакетов и опкоды в Rules для PacketDecoder;
Для начала работы создаем в IDA .asm файлы для x2game.dll для двух версий archeage, записываем адреса для CS и SC пакетов (xrefs), затем загружаем в утилиту и работаем с ними.