Разработка и ромхакинг > Ромхакинг
Smd IDA Tools - Sega Mega Drive reversing helpers
<< < (11/15) > >>
DrMefistO:
Собственно, проект по написанию крутых специфичных плагинов в помощь ромхакерам 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
DrMefistO:

--- Цитата: SeregaZ от 07 Февраль 2024, 19:35:31 ---о
--- Конец цитаты ---
Обнови плагин из последнего релиза. Я починил создание листинга для 7.7.
ASM создавать не нужно.

Папка script содержит полезные файлы для сборки конккретным азмом. Передаёшь батнику путь к lst-файлу и пойдёт сборка.
SeregaZ:
рядом с ромом src надо папку создавать. и видимо независимо от того куда путь для создания lst. на диск д сохранял сам файл lst, а эти файлы из инклуда он рядом с ромом положил :) кое кто, не будем показывать пальцем, забыл в диалоге сохранения файла указать этот-же путь для сохранение инклудных файлов.

еще запускал иду от администратора.
DrMefistO:

--- Цитата: SeregaZ от 07 Февраль 2024, 19:45:58 ---рядом с ромом src надо папку создавать. и видимо независимо от того куда путь для создания lst. на диск д сохранял сам файл lst, а эти файлы из инклуда он рядом с ромом положил :) кое кто, не будем показывать пальцем, забыл в диалоге сохранения файла указать этот-же путь для сохранение инклудных файлов.

еще запускал иду от администратора.

--- Конец цитаты ---
Не нужно вручную папки создавать, всё создастся. Нужно только выбрать куда сохранять lst. Перекачай плагин, говорю же.
SeregaZ:
при сохранении папки src - используется путь до рома, а не до места сохранения lst. я ж объясняю - выбрал сохранить lst на диске Д, а папку scr он создает рядом с ромом :) в итоге lst и scr разлучены с детства. так то понятно если сохранять lst рядом с самим ромом - то проблемы как бы и нет... но она все-же как бы есть :)

и все так-же не хватает lea FF в начале. асм ругается на эти строки.
DrMefistO:

--- Цитата: SeregaZ от 07 Февраль 2024, 20:01:33 ---и все так-же не хватает lea FF в начале. асм ругается на эти строки.
--- Конец цитаты ---
Не понял.
SeregaZ:
ида разбирает код как

--- Код: ---lea     ($FFF152).w,a0
--- Конец кода ---
ASM68K.exe при сборке такого файла - ругается что адрес инвалидный. если вручную найти все такие строки и исправить на

--- Код: ---lea     ($FFFFF152).w,a0
--- Конец кода ---
то все начинает собираться без ошибок и работать.
DrMefistO:

--- Цитата: SeregaZ от 07 Февраль 2024, 20:06:08 ---ида разбирает код как

--- Код: ---lea     ($FFF152).w,a0
--- Конец кода ---
ASM68K.exe при сборке такого файла - ругается что адрес инвалидный. если вручную найти все такие строки и исправить на

--- Код: ---lea     ($FFFFF152).w,a0
--- Конец кода ---
то все начинает собираться без ошибок и работать.

--- Конец цитаты ---
А, всё, туплю, адрес правильный. Ты в моём плагине базу начинал, или раньше, руками?
SeregaZ:
ида 77. версия 32 битная. скачал новую версию тулсов как ты сказал, распаковал и открыл по новой ром батл сити. сам ничего не разбирал - что изначально ида разобрала - то и выгружаю. и там вот с этой lea ошибка. ну и с путями до папки src, в случае если ром лежит в одном месте, а файл lst я сохраняю в другом месте.

Добавлено позже:
и проблема с диалогом отмены при создании lst файла. отмена не работает - ида все равно ныкается создавать файл по новой. то есть в диалоге на моменте выбора вида ассемблера:
Choose output assembler
по идее кнопка отмены должна полностью отменять процесс выгрузки, но тут отмена работает по сути как подтверждение что ты типа выбрал первый вариант AS Assembler и начинает выгружать. но по идее должна была произойти глобальная отмена выгрузки.
DrMefistO:

--- Цитата: SeregaZ от 07 Февраль 2024, 20:09:33 ---ида 77. версия 32 битная. скачал новую версию тулсов как ты сказал, распаковал и открыл по новой ром батл сити. сам ничего не разбирал - что изначально ида разобрала - то и выгружаю. и там вот с этой lea ошибка. ну и с путями до папки src, в случае если ром лежит в одном месте, а файл lst я сохраняю в другом месте.

Добавлено позже:
и проблема с диалогом отмены при создании lst файла. отмена не работает - ида все равно ныкается создавать файл по новой. то есть в диалоге на моменте выбора вида ассемблера:
Choose output assembler
по идее кнопка отмены должна полностью отменять процесс выгрузки, но тут отмена работает по сути как подтверждение что ты типа выбрал первый вариант AS Assembler и начинает выгружать. но по идее должна была произойти глобальная отмена выгрузки.

--- Конец цитаты ---
Ида не умеет никак прерывать выгрузку листинга или asm.

Добавлено позже:
Обновил до версии 2.8. Поправил некоторый выхлоп. https://github.com/lab313ru/smd_ida_tools2/releases/tag/v2.8
SeregaZ:
ошибки нет? может ты старое по ошибке залил? как ругалась lea при сборке - так и ругается. как создавалось src не там - так и создается. хотя может я чо не туда сохранил еще... еще раз скачаю, перепроверю.

Добавлено позже:
и ни фи га :) все по старому.

Добавлено позже:
или я не правильный асм выбираю при выгрузке?
DrMefistO:

--- Цитата: SeregaZ от 08 Февраль 2024, 00:00:22 ---ошибки нет? может ты старое по ошибке залил? как ругалась lea при сборке - так и ругается. как создавалось src не там - так и создается. хотя может я чо не туда сохранил еще... еще раз скачаю, перепроверю.

Добавлено позже:
и ни фи га :) все по старому.

Добавлено позже:
или я не правильный асм выбираю при выгрузке?


--- Конец цитаты ---
Как именно ругается на lea? Попробуй другой азм.
src я не правил. Я рассчитываю на сохранение листинга рядом с ромом.
SeregaZ:

--- Цитата ---src я не правил. Я рассчитываю на сохранение листинга рядом с ромом.
--- Конец цитаты ---
чтоб тебя... это не удобно и не верно с точки зрения безопасности информации. например я открываю чужой разобранный проект, где уже лежит папка src с такими файлами. но сохранить хочу новый переразбор в другой папке. но получится что оригинальную папку ида перезапишет, хотя и кинет lst файл в ту папку куда я и хотел, а вот src перезапишет оригинальную в изначальной папке с ромом.

это первый вариант ассемблера. ошибки сверху не смотри, так как это все равно не тот ассемблер. а вот леа как раз то. пока не добавишь вручную во все места еще FF чтобы стало 8 символов - он не заведется.

DrMefistO:

--- Цитата: SeregaZ от 08 Февраль 2024, 19:28:25 ---чтоб тебя... это не удобно и не верно с точки зрения безопасности информации. например я открываю чужой разобранный проект, где уже лежит папка src с такими файлами. но сохранить хочу новый переразбор в другой папке. но получится что оригинальную папку ида перезапишет, хотя и кинет lst файл в ту папку куда я и хотел, а вот src перезапишет оригинальную в изначальной папке с ромом.

это первый вариант ассемблера. ошибки сверху не смотри, так как это все равно не тот ассемблер. а вот леа как раз то. пока не добавишь вручную во все места еще FF чтобы стало 8 символов - он не заведется.



--- Конец цитаты ---
Пробуй другой ассемблер - ссылки там в окошке есть
SeregaZ:
как бы написать и не обидеть... ничего не буду писать.
DrMefistO:

--- Цитата: SeregaZ от 08 Февраль 2024, 19:58:33 ---как бы написать и не обидеть... ничего не буду писать.

--- Конец цитаты ---
не пиши, не пользуйся. значит не твоё:)
DrMefistO:
Реализовал условные брейкпоинты на базе того, что предлагает сама Ида! Подробнее тут: https://github.com/lab313ru/smd_ida_tools2/releases/tag/v2.9
Turbo2000:
Увидел, шикарно, будет немного боллерплейта, но благодаря питону можно любые условия делать  :cool:

А смотрел как можно реализовать трейс? Хотя бы трейсить вызов конкретного места, и значение операндов на чтение и запись
DrMefistO:

--- Цитата: Turbo2000 от 28 Февраль 2024, 23:56:59 ---Увидел, шикарно, будет немного боллерплейта, но благодаря питону можно любые условия делать  :cool:

А смотрел как можно реализовать трейс? Хотя бы трейсить вызов конкретного места, и значение операндов на чтение и запись

--- Конец цитаты ---
Так ты можешь питоном тоже сделать:
Ставишь бряк, делаешь код там, но делаешь return False и бряк не будет стопариться, но будет отрабатывать код из него
Turbo2000:
Хм, гениально, будет, конечно, лишний код, но с этим можно работать
Марат:
А есть возможность добавить пропуск срабатывания брейкпоинта по определенному адресу? Т.е. допустим я ставлю брейк на чтение по адресу 0xff0000  и у меня срабатывает брейк по адресу 0x1000. Но это место не то, которое мне необходимо и мне надо сделать так, чтобы в этом месте бряк на чтение не срабатывал. На каком тодебагере, сейчас не вспомню, можно было добавлять диапазон адресов, в которых бы ни один брейкпоинт не срабатывал бы. Возможно, fceux. Называлось что то типа "забыть".
Навигация
Главная страница сообщений
Следующая страница
Предыдущая страница

Перейти к полной версии