Автор Тема: Smd IDA Tools - Sega Mega Drive reversing helpers  (Прочитано 21664 раз)

0 Пользователей и 3 Гостей просматривают эту тему.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« : 08 Февраль 2015, 21:16:43 »
Собственно, проект по написанию крутых специфичных плагинов в помощь ромхакерам SMD.

Включает:
 - ROM loader - загрузчик, позволяющий грузить ромы сеги в IDA Pro. Благодарности HardwareMan'у за основу;
 - Z80 sound drivers loader - позволяет загружать звуковые драйвера для Sega в IDA Pro. Автоматически именуются порты и создаются сегменты;
 - Z80 sound drivers debugger - позволяет отлаживать звуковые драйвера в IDA Pro;
 - Gensida debugger - дебагер-плагин который позволяет дебажить ромы Sega Genesis / Mega Drive);
 - Smd Constants identifier - при нажатии на J на константе, отправляемой в какой-либо командный регистр, в комментарий выведется инфа о том, что данное число значит, какие флаги устанавливает;
 - ASM Fixer - помогает при экспортировании листинга из IDA, и приведении его к ассемблируемому виду.
 - Генерация компилируемого ассемблерного листинга для AS/VASM/ASM68K прямо из коробки.

Проект развивающийся, поэтому каждый может предлагать свои идеи, изменения.

Исходники проекта и скомпиленые плагины здесь: https://github.com/lab313ru/smd_ida_tools2/releases
« Последнее редактирование: 26 Январь 2023, 03:03:14 от DrMefistO »

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #120 : 16 Январь 2023, 13:37:27 »
Вроде сделал, но ничего не изменилось. Но заметил ошибки при загрузке плагинов, они могут влиять на проблему?
LoadLibrary(E:\dstr\IDA Pro 7.5\ida75sp3\plugins\idapython3_64.dll) error: Не найден указанный модуль.
E:\dstr\IDA Pro 7.5\ida75sp3\plugins\idapython3_64.dll: can't load file
Но этот dll есть в папке.
Python 3 x64 должен быть установлен глобально.

Кстати, хорошие новости: скоро будет релиз, в котором я поправлю некоторые штуки при дизазме моторолки, плюс сделаю экспорт ассемблерного листинга полностью собираемым прямо из коробки (при условии использования smd_ida_tools2).

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #121 : 20 Январь 2023, 01:11:06 »
Обновил наконец-то smd_ida_tools2 до новой версии. Теперь можно прямо из коробки генерировать листинг, компилируемый ассемблером AS.
Также поправлен вывод некоторых опкодов, например "move #$1234, $0.w(aX)" IDA выводила как просто "move #$1234, $0(aX)", что приводило к компиляции в другой опкод, более короткий. Для более подробной информации читайте ридми проекта на Github.

Оффлайн Ti_

  • Пользователь
  • Сообщений: 3265
  • Пол: Мужской
    • ВКонтакте
    • Youtube
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #122 : 20 Январь 2023, 09:21:56 »
Обновил наконец-то smd_ida_tools2 до новой версии. Теперь можно прямо из коробки генерировать листинг, компилируемый ассемблером AS.
Также поправлен вывод некоторых опкодов, например "move #$1234, $0.w(aX)" IDA выводила как просто "move #$1234, $0(aX)", что приводило к компиляции в другой опкод, более короткий. Для более подробной информации читайте ридми проекта на Github.
move.w #$1234,0(a0) , он и должен так выводится и асм68к его и собирает как длинный,
а move.w #$1234,(a0) это другой опкод, он короткий.

0.w(a0) - это тупость, так как .b и .l там невозможны в принципе, что там в AS думали непонятно.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #123 : 20 Январь 2023, 09:27:51 »
Видимо ты прав:) тем не менее такая запись валидна.

Оффлайн nikobonus

  • Пользователь
  • Сообщений: 6
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #124 : 20 Январь 2023, 11:18:10 »
Можно ли исправить подсказки при отладке при доступе к адресным регистрам по индексу?
Например,


тогда как в адресном регистре


то есть в подсказке должно быть $FFA126. Понятно, что можно посчитать самому. Но удобство немного теряется.

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #125 : 20 Январь 2023, 11:32:34 »
Можно ли исправить подсказки при отладке при доступе к адресным регистрам по индексу?
Например,
(Ссылка на вложение)

тогда как в адресном регистре
(Ссылка на вложение)

то есть в подсказке должно быть $FFA126. Понятно, что можно посчитать самому. Но удобство немного теряется.
Заведи issue на гитхабе, плиз

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #126 : 26 Январь 2023, 03:04:19 »
Отличные новости: новый релиз! Теперь можно генерировать листинг для AS/VASM/ASM68K прямо из коробки. Также поправлен вывод некоторых инструкций.

Оффлайн Turbo2000

  • Пользователь
  • Сообщений: 102
  • Пол: Мужской
    • Просмотр профиля
Re: Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #127 : 04 Июль 2023, 15:24:03 »
Привет, а под какую версию Иды точно работает плагин? Почему-то перестала работать отладка с исходным кодом (Показывает только окно с графом вызовов, которая с нодами).
Пробовал ставить все версии для 7.x, не помогло. (Запускаю 32 битную версию)

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #128 : 04 Июль 2023, 15:26:36 »
Сними галку Source Code debugging.

Оффлайн Turbo2000

  • Пользователь
  • Сообщений: 102
  • Пол: Мужской
    • Просмотр профиля
Re: Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #129 : 04 Июль 2023, 18:21:52 »
Сними галку Source Code debugging.
Теперь так, или это не так галочка?

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Re: Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #130 : 04 Июль 2023, 18:22:49 »
Теперь так, или это не так галочка?
вроде та. теперь должно работать

Оффлайн Turbo2000

  • Пользователь
  • Сообщений: 102
  • Пол: Мужской
    • Просмотр профиля
Re: Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #131 : 04 Июль 2023, 18:29:37 »
вроде та. теперь должно работать
Да, спасибо, действительно заработало, открыл disassamble view через меню subviews

Оффлайн Turbo2000

  • Пользователь
  • Сообщений: 102
  • Пол: Мужской
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #132 : 06 Июль 2023, 00:35:38 »
Еще один дурацкий вопрос, можно каким-то образом получить стек вызовов?
Или искать все это вручную через xref?

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #133 : 06 Июль 2023, 00:36:38 »
Можно. У иды есть такой пункт меню, ищи)

Оффлайн Turbo2000

  • Пользователь
  • Сообщений: 102
  • Пол: Мужской
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #134 : 06 Июль 2023, 02:30:52 »
Можно. У иды есть такой пункт меню, ищи)
Это правда, но там пусто :neznayu:

Добавлено позже:
Может баг, могу видео записать
« Последнее редактирование: 06 Июль 2023, 02:40:50 от Turbo2000 »

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #135 : 06 Июль 2023, 11:18:11 »
Это правда, но там пусто :neznayu:

Добавлено позже:
Может баг, могу видео записать
Запиши.

Оффлайн Turbo2000

  • Пользователь
  • Сообщений: 102
  • Пол: Мужской
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #136 : 06 Июль 2023, 14:19:51 »
Похоже не то смотрю, а может то, не понимаю, как читать stack view. Он нереально большой.
P.S.:
Да, в стеке все подряд хранится :neznayu:

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #137 : 06 Июль 2023, 14:24:38 »
Похоже туда:)
Гляну, может я отключал эту штуку давно...

Оффлайн Turbo2000

  • Пользователь
  • Сообщений: 102
  • Пол: Мужской
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #138 : 06 Июль 2023, 14:27:28 »
Похоже туда:)
Гляну, может я отключал эту штуку давно...
Могу тоже глянуть, есть возможность отладки плагинов прям из студии?)

Добавлено позже:
API Иды не смотрел, вдруг там несложно)

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #139 : 06 Июль 2023, 14:36:21 »
Проверил: выключена. Можно будет включить.

Оффлайн Turbo2000

  • Пользователь
  • Сообщений: 102
  • Пол: Мужской
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #140 : 06 Июль 2023, 14:40:22 »
Проверил: выключена. Можно будет включить.
О, отлично, а почему отключали, плохо работает?

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #141 : 06 Июль 2023, 14:46:04 »
Не помню, но скорее просто при переходе на какую-то другую основу кодовой базы

Оффлайн Turbo2000

  • Пользователь
  • Сообщений: 102
  • Пол: Мужской
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #142 : 06 Июль 2023, 14:53:03 »
Для компиляции достаточно idasdk77 и grpc?

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #143 : 06 Июль 2023, 14:54:04 »
Да, делай по инструкции в ридми на гитхабе

Оффлайн Turbo2000

  • Пользователь
  • Сообщений: 102
  • Пол: Мужской
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #144 : 06 Июль 2023, 14:59:27 »
Да, делай по инструкции в ридми на гитхабе
Да, компилируется. Добавил системную переменную для IDA SDK.
Кстати, в новую студию добавили интегрированную vcpkg. Правда для CMake проектов надо писать манифест зависимостей, но в целом это даже лучше, там можно указывать точную версию vcpkg (через номер коммита) + нужные версии библиотек, и они наконец-то перешли на 64-й триплет.

Добавлено позже:
Оказалось, что и для любых других проектов с поддержкой vcpkg все равно надо писать манифест, либо ставить отдельный vcpkg, там можно вручную ставить пакеты.
« Последнее редактирование: 06 Июль 2023, 15:06:16 от Turbo2000 »

Оффлайн Turbo2000

  • Пользователь
  • Сообщений: 102
  • Пол: Мужской
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #145 : 06 Июль 2023, 16:07:32 »
Всё, победа!
Могу сделать пул рекверс.

Добавлено позже:
https://github.com/lab313ru/smd_ida_tools2/pull/7

Но там спорные моменты, можно просто вернуть обновления стека вызовов
« Последнее редактирование: 06 Июль 2023, 16:15:49 от Turbo2000 »

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #146 : 06 Июль 2023, 16:45:47 »
Замержил, спасибо) А в чём спорность?

Оффлайн Turbo2000

  • Пользователь
  • Сообщений: 102
  • Пол: Мужской
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #147 : 06 Июль 2023, 16:53:06 »
Замержил, спасибо) А в чём спорность?
Если надо будет использовать старый, как говорят майки "классический режим", надо будет немного настроить, но вроде, если не устанавливать новый vcpkg, все должно заработать.

Добавил зависимости только для Gensida, для Gens не добавлял, по идее манифест надо вынести на верхний уровень.

И поменял описание)

Добавлено позже:
Спасибо за такой отличный инструмент, мог о таком только мечтать  ^_^

А как с дополнением для Гидры, там есть что улучшать для декомпиляции? Пробовал читать листинг, сложно, хотя до этого переносил небольшие библиотеки на x86.

Добавлено позже:
Сеговский листинг проще всего читать сразу на ассемблере, но пока еще не научился распознавать структуры.
« Последнее редактирование: 06 Июль 2023, 17:01:39 от Turbo2000 »

Оффлайн DrMefistO

  • Пользователь
  • Сообщений: 1294
  • Пол: Мужской
  • Sega Mega Drive reversing
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #148 : 06 Июль 2023, 17:05:12 »
Если надо будет использовать старый, как говорят майки "классический режим", надо будет немного настроить, но вроде, если не устанавливать новый vcpkg, все должно заработать.

Добавил зависимости только для Gensida, для Gens не добавлял, по идее манифест надо вынести на верхний уровень.

И поменял описание)

Добавлено позже:
Спасибо за такой отличный инструмент, мог о таком только мечтать  ^_^

А как с дополнением для Гидры, там есть что улучшать для декомпиляции? Пробовал читать листинг, сложно, хотя до этого переносил небольшие библиотеки на x86.

Добавлено позже:
Сеговский листинг проще всего читать сразу на ассемблере, но пока еще не научился распознавать структуры.
Спасибо:) Для гидры есть конечно что улучшать, но да, как ты сказал, читать проще сразу азм. Структуры распознавать не так и сложно:) У меня в видосах я их частенько разбирал.

Оффлайн Turbo2000

  • Пользователь
  • Сообщений: 102
  • Пол: Мужской
    • Просмотр профиля
Smd IDA Tools - Sega Mega Drive reversing helpers
« Ответ #149 : 06 Июль 2023, 17:08:20 »
Еще немного оффтопа:
Прекрасно, как разберусь, может смогу что предложить по улучшению, сам только недавно начал, хотя бы ребята помогли с прерываниями.
Постоянно ищу какую-то сербрянную пулю, которая поможет все свои любимые игры изучить, но такого нет  :lol: