Важная информация

User Tag List

Показано с 1 по 5 из 5

Тема: Дизассемблирование спектрумовских игр

  1. #1
    Administrator Аватар для CityAceE
    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    4,566
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    395
    Спасибо Благодарностей получено 
    1,205
    Поблагодарили
    393 сообщений
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Дизассемблирование спектрумовских игр

    Решил попробовать получить исходный код одной из ZX-игр. При всей простоте, оказалось, что это довольно трудоёмкий процесс. Я опробовал:

    1. IDA Pro
    2. SPEDIZ
    3. ZX Spin

    Понятное дело, что ни один из этих инструментов не даст вот так сходу получить готовый исходный код. Нужно сидеть и тщательно анализировать строку за строкой, выделяя таблицы, переменные и графику. Безусловно IDA Pro - самый мощный инструмент. Однако очень странно, что нет ни одного эмулятора, который может выдавать более или менее готовый ассемблерный код (или я его не нашёл?), ведь именно эмулятор точно знает, где исполняемый код, который проходит через процессор, а где другие данные, достаточно только один раз прогнать через него исследуемую программу.

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

  2. #1
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #2
    Master
    Регистрация
    31.01.2007
    Адрес
    Москва
    Сообщений
    715
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    43
    Поблагодарили
    32 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    В связи с тем что последнее время периодически занимаюсь переделкой игр под эльфа сложился, небольшой алгоритм по дизасму. Мне не нужно всю игру, а только как правило меню, обработчик клавиатуры, иногда немного механику управления и музыку, поэтому все я не разбираю. Использую IDA Pro, ничего другого в качестве альтернативы не вижу. Немного по шагам.
    1. Разбираю в ZX-Blockeditor оригинальный образ, снимаю защиту, если есть, разбираю на блоки, записываю алгоритм загрузки и запуска.
    2. Делаю отладочный сборщик на асме, собираю в sna, в нем в последующем вношу изменения. При компиляции выгружаю и sna и bin файл только с необходимым кодом
    3. Загружаю bin в иду, разбираю, проставляю метки. Для моих целей на все уходит 3-4 часа, иногда если интересно втыкаю как все там устроено.
    4. Все необходимые исправления компилю поверх бинарников. Патченая игра готова. Далее сборка карика, но это уже совсем не по теме.
    Сейчас делаю nightshade, еще не готово, но в общих чертах понятно как это выглядит.
    Последний раз редактировалось krt17; 11.04.2016 в 19:43.

  4. #3
    Guru
    Регистрация
    08.10.2005
    Адрес
    Москва
    Сообщений
    13,554
    Спасибо Благодарностей отдано 
    1,216
    Спасибо Благодарностей получено 
    1,754
    Поблагодарили
    683 сообщений
    Mentioned
    67 Post(s)
    Tagged
    1 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    ведь именно эмулятор точно знает, где исполняемый код, который проходит через процессор, а где другие данные, достаточно только один раз прогнать через него исследуемую программу.
    Не достаточно. Только очень простые программы исполняют весь свой код в течение короткого время после запуска. 99% программ этого не делают, и часть кода может быть вообще не исполнена за время использования вами никогда.
    Однако, какую-то помощь в поиске заведомо исполняемых фрагментов кода эмулятор может все же оказать.

  5. #4
    Administrator Аватар для CityAceE
    Регистрация
    13.01.2005
    Адрес
    г. Москва
    Сообщений
    4,566
    Записей в дневнике
    7
    Спасибо Благодарностей отдано 
    395
    Спасибо Благодарностей получено 
    1,205
    Поблагодарили
    393 сообщений
    Mentioned
    48 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от krt17 Посмотреть сообщение
    Все необходимые исправления компилю поверх бинарников.
    Чем производится компиляция?

    Цитата Сообщение от krt17 Посмотреть сообщение
    Сейчас делаю nightshade, еще не готово, но в общих чертах понятно как это выглядит.
    Увы, посмотреть не смог:


    Цитата Сообщение от Titus Посмотреть сообщение
    Однако, какую-то помощь в поиске заведомо исполняемых фрагментов кода эмулятор может все же оказать.
    Вот именно такие случая я и имею ввиду.
    С уважением, Станислав.

  6. #5
    Master
    Регистрация
    31.01.2007
    Адрес
    Москва
    Сообщений
    715
    Спасибо Благодарностей отдано 
    7
    Спасибо Благодарностей получено 
    43
    Поблагодарили
    32 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от CityAceE Посмотреть сообщение
    Чем производится компиляция?
    Компилить sjasmplus. Я делаю incbin оригинального кода, а поверх org'ами с кодовыми вставками вношу изменения. Это позволяет, если что где напутал, видеть полный список изменений и не искать по бинарнику.
    Цитата Сообщение от CityAceE Посмотреть сообщение
    Увы, посмотреть не смог:
    Ничего не знаю, честно скачал с сайта проверенного хакером Димой.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Netplay для Спектрумовских игр
    от CityAceE в разделе Эмуляторы
    Ответов: 5
    Последнее: 20.06.2008, 03:21
  2. Ответов: 25
    Последнее: 21.03.2008, 07:57
  3. Ответов: 11
    Последнее: 12.09.2007, 12:07
  4. TTF фонт из спектрумовских кнопоёчек...
    от rasmer в разделе Разный софт
    Ответов: 3
    Последнее: 04.01.2007, 10:07

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •