Просмотр сообщений

В этом разделе можно просмотреть все сообщения, сделанные этим пользователем.


Сообщения - DrMefistO

Страницы: [1] 2 3 4 5 ... 44 Далее
1
А, я потерял, да:) я забыл, что про Гниду уже разговор)
Используешь инструменты этой темы для этого? Допустим, делим игру пополам (кто какие части изучает), а потом нам надо как-то синхронизироваться. У Иды есть функция объединения баз? Если нет, каждому из нас придётся вручную вносить изменения другого? Наверно, можно бы редактировать совместно листинг на ГитХабе, но я им пока не пользовался и не умею.
Если же используешь не Иду, то давай в личку.

DrMefistO, в Иде есть возможность:
-отсортировать функции по популярности?
-давать имена функциям на русском языке? Пусть даже хак-мод какой-нибудь.
Совет от программиста: не давай функциям названий ни на каком языке, кроме английского.
Сортировки функций нет. Только если плагины искать специальные.

2
А, я потерял, да:) я забыл, что про Гниду уже разговор)

3
Ну и название :lol: Явно делал русскоязычный.
Я всё же надеюсь, что мне не придётся делать буквально полный аналог Иды и Гидры, а только лишь разбирать их выхлоп.
Я тебя когда-то спрашивал про возможность перестраивать блоки в графе Иды, и в сети про это ничего не нашёл. В итоге придётся реверсить формат базы Иды, искать где там координаты этих блоков :)
Название у неё Ghidra, она от АНБ, с рф её ничего не связывает)

4
Лол)
Был один, назвал проект: Gnida (GNU IDA), но проект успешно заброшен. Плюс есть гидра

5
Ну а так, полезная штука в итоге - экспорт листинга?)

6
А, теперь понял. Ну, я реверсил так: менял номер стартового уровня, и попадал на него)
Насчёт реализуемости твоего вопроса - хз)

Придётся при загрузке сейва делать паузу эмуляции и перекидывать в иду?

7
Т.е. возвращаемся к вопросу - возможно ли сделать что я имел в виду? Чтобы при загрузке сохранки в эмуляторе, в Иде процесс продолжился с той же инструкции, что и при сохранении?
Про то, чтобы с той же инструкции ты не говорил:) в сейве сохраняется состояние регистров, оперативки, видео памяти, звука и прочего. Ром в него не сохраняется. При загрузке сейва берётся ром с файловой системы. А ты хочешь, чтобы брались байты из иды или как? Формат сейвов я менять не буду, так как это поломает совместимость с тасами, если проходить игру самому лень, а исполняемые инструкции получить надо.

Решением в твоём случае я вижу GG-коды на инструкции - они применяются всегда, либо патчить ром сразу на фс. Всё равно не понимаю, что не так у тебя с F5/F8.

8
А, вон ты про что... Изменения в идб статичны - код грузится не из базы иды, а из рома и только при запуске. Для патча игрового процесса нужно патчить в хекс редакторе в генсе, в меню Tools.

9
Так есть же сейвы, по F5, F8, стандартные для генса.

10
Ромхакинг и программирование / Solid patcher
« : 14 Январь 2025, 14:23:09 »
Зависит от популярности патчера. Так как ромхакинг бъётся в предсмертных конвульсиях, шансы не велики. :unsure:

Ты о закрытии romhacking.net?

11
Ромхакинг и программирование / Solid patcher
« : 12 Январь 2025, 17:03:09 »
Окей, про линупс не увидел. Формат планируешь описывать где-либо?

12
Делать ещё одну патчилку с хер-пойми каким форматом хранения патчей, к тому же windows only - в 2025 это конечно сильно.

13
Сорсы не хочешь выложить на Github в виде форка?) Так может какие умельцы ещё подтянутся.

14
Even if it exists, nobody will start doing that because of somebody's topic:)

15
Nice ideas, thanks! I would like to see that mod too:)

16
Да уж, я даже не предполагал, когда создавал этот топик, что здесь напишут о том, что RH - всё. Жалко, конечно, этого добряка...
Хорошо, когда есть ресурс-база данных по какой-то одной теме, по которому можно вести поиск, добавлять свою инфу, искать поделки других людей. И дело не в ромхаках, конечно, мне на них всегда было практически пофиг. А вот переводы, утилиты (самое основное), какие-нибудь доки - это да, жаль, что больше не будет централизованного ресурса, куда это можно выложить.

Хотя, по идее, о чём-то можно было догадаться, когда с главной страницы убрали раздел с утилитами, мол, мало кому нужны...

17
:( Не очень понимаю, кому это нужно. Материалов что по простым типам данных полно, что по Basic... Даже по написанию GUI...

18
@trintel, крут!:) Рад, что пригодились инструменты)

19
Крашится IDA 8,3 на условных брейкпоинтах.
Сначала брейкпоинт срабатывает нормально.
Потом делаешь сброс на эмуляторе, игра доходит до брейкпоинта и IDA крашится.
Содержимое скрипта брейкпоинта
Reg = idaapi.get_reg_val('A0')
return Reg == 0x1A4

Сообщение, которое выскакивает при крахе:


Добавлено позже:
И ещё не нашёл где находится TileDataPreview
Спасибо, чекну.
Превью по Shift+D

20
Не все в интернетах появились с его основания:) Кто-то и вчера пришёл.

21
Релизнул новую версию, с Tiles Preview: https://github.com/lab313ru/smd_ida_tools2/releases/tag/v3.0

Если что, IDA Pro v8.3 была ликнута.

22
Привет, а был стрим?
На канале ничего
привет. неа, я отменил - был занят:)

23
DrMefistO, а сложно будет добавить, чтобы тайлы собирала в картинку?
Есть тайловые редакторы. Это их задача. Предпросмотр тайлов в иде нужен лишь для того, чтобы понимать, что вот это - графика (и какая именно), а вот это - не графика.

24
Вернул предпосмотр тайлов в иде во время статического анализа рома. Теперь можно выбирать и адрес палитры пока смотришь. Билд выкачу попозже.

А вообще, приходите на стрим завтра вечером, расскажу про плагин в целом, что теперь умеет, всякие базовые сценарии рассмотрим, чем может быть полезен.
273520-0

25
А есть возможность добавить пропуск срабатывания брейкпоинта по определенному адресу? Т.е. допустим я ставлю брейк на чтение по адресу 0xff0000  и у меня срабатывает брейк по адресу 0x1000. Но это место не то, которое мне необходимо и мне надо сделать так, чтобы в этом месте бряк на чтение не срабатывал. На каком тодебагере, сейчас не вспомню, можно было добавлять диапазон адресов, в которых бы ни один брейкпоинт не срабатывал бы. Возможно, fceux. Называлось что то типа "забыть".
Попробуй добавить условие на питоне в виде return False на адрес

26
Увидел, шикарно, будет немного боллерплейта, но благодаря питону можно любые условия делать  :cool:

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

27
Реализовал условные брейкпоинты на базе того, что предлагает сама Ида! Подробнее тут: https://github.com/lab313ru/smd_ida_tools2/releases/tag/v2.9

28
DrMefistO, зачем? Могу дать в личку, но пока нахожу мелкие баги, т.е. код постоянно дорабатывается.
Алгоритм прост: проходит по рому по чётным байтам (Сега же) и собирает адреса байтов 0x67 и 0x66 в надежде, что это BEQ и BNE. Далее по этому массиву адресов проходит двоичным поиском - делит пополам, первый сектор инвертирует BEQ <---> BNE, опрашивает пользователя, инвертирует обратно, потом повторяет это со вторым, потом делит первый пополам, и так до конца.
Пункты:
1 - просто пропускает текущий сектор. Раз баги в секторе мешают понять есть ли в этом секторе нужная инструкция, то лучше оставить на будущее, чтобы раздробить этот сектор.
2 - в этом секторе нет нужной инструкции, удаляем его из массива.
3 - в этом секторе есть нужная инструкция, удаляем все остальные секторы.


Yoti, да, я делаю дизасэмблер для этого. Но так как до его работоспособности далековато, не выдержал вот и сделал примитивный вариант, исследовательский проект  :)
Дизасэмблер будет отличаться тем, что можно вручную инвертировать блоки кода, их условия, чтобы сразу увидеть эффект на экране, отматывать назад, пробовать поменять другие. Т.е. явно быстрее.
У тебя вообще не остались хоть какие-то записи или мысли по своим исследованиям? Было бы интересно и полезно.


Тем временем, попробовал открыть секретное меню в Streets of Rage. Игра весит ~500 килобайт, инструкций в ней нашлось ~4000.
И оказалось, что она очень хрупкая - игра почти всегда неработоспособная после порчи, постоянно убивает BlastEm.
За час и 20 минут пробежал 800 проходов и надоело, очень демотивирует  :lol:
Т.е. найти-то мог далее, но не хотелось делать 4000 проходов, как если бы просто пройтись подряд по всем найденным инструкциям.
Сейчас решил попробовать перемешать инструкции в массиве перед поиском. Может чего даст.
Можешь создать приватный (либо публичный) реп, попробую помогать в разработке:)

30
тем временем меня расстраивает слишком долгое время загрузки кода. сам парсинг на команды то шустрый, ноооооо потом, чтобы это все выводить в окошке - я делаю копию массива текстовых строчек кода, и форматирую, добавляя пустые строки между блоками и добавляю "бэшки" (dc.b) где код не разобран. вот этот процесс и занимает кучу времени при запуске.

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

пойду сделаю копию проекта, и попробую с листом. хотя настроен я весьма скептически на этот лист :)
Есть виртуальные листы. Выводить строчки не все целиком, а чанками, по количеству Видимых.

Страницы: [1] 2 3 4 5 ... 44 Далее