PS2 как определить оригинальный носитель игры?

Тема в разделе "PlayStation 5", создана пользователем nrl_quaker, 26 авг 2007.

  1. romka

    romka Очень главный

    Сообщения:
    4.450
    Симпатии:
    184
    Баллы:
    203
    Программой, которая на скриншотах выше - ИДА Про Эдвэнсд.
     
  2. nrl_quaker

    nrl_quaker Well-Known Member

    Сообщения:
    672
    Симпатии:
    35
    Баллы:
    73
    не могу найти адрес таблицы "экспорта". у меня вообще нету такого, как на первом скриншоте. перечисления функций и т.п.
    в самом начале пишет
    This file is generated by The Interactive Disassembler (IDA), а таблицы нет. я что-то не так делаю?
     
  3. romka

    romka Очень главный

    Сообщения:
    4.450
    Симпатии:
    184
    Баллы:
    203
    На первом скриношоте структурированная таблица экспорта, после загрузки её в таком виде нет, так как сам программа ничего не знает о структуре и даже самом факте существования такой таблицы. Зачастую эта таблица находится ближе к концу сегмента .text прямо перед таблицами импорта. На первом скриншоте видно DATA REF: start+8 - это место в самом начале модуля, где адрес данной таблицы передаётся для регистрации.
     
  4. owieri

    owieri Well-Known Member

    Сообщения:
    238
    Симпатии:
    5
    Баллы:
    63
    По-моему из-за этой функции нет необходимости лезть в иду, есть прога DVD Scanlite, она такой патч обнаружит.
    Кроме того, наличие патча не есть неопровержимое докозательство того, что оригинал был на другом носителе. Может кто-то хохмы ради пропатчил. :)
     
  5. nrl_quaker

    nrl_quaker Well-Known Member

    Сообщения:
    672
    Симпатии:
    35
    Баллы:
    73
    странно. нету никаких таблиц. даже, когда ищу стринги cdvdman, CDGetDiskType или DATA REF: start+8 ничего не находит. пробовал на файлах от Killzone (E) и Disgaea (E).
    видно у меня старый IDA. у меня 4.1.5.520. может поэтому?
    так она, вроде только патчит и ресторит. как там посмотреть патчились ли файлы?
     
  6. owieri

    owieri Well-Known Member

    Сообщения:
    238
    Симпатии:
    5
    Баллы:
    63
    Когда открываешь файл она пишет состояние на момент открытия.
     
  7. romka

    romka Очень главный

    Сообщения:
    4.450
    Симпатии:
    184
    Баллы:
    203
    Я сам примерно такой версией пользуюсь, а таблиц нету видимо потому, что они на момент открытия там в виде отдельных байт сохранились.
     
  8. romka

    romka Очень главный

    Сообщения:
    4.450
    Симпатии:
    184
    Баллы:
    203
    Вот так вот выглядит начало модуля, написи, подкчеркнутые красным - мои комментарии.
    [fullimage]7019[/fullimage]
    В данном случае, если кликнуть по надписи dword_2670, то как раз перейдешь к искомой таблице. В других версиях модуля эта надпись будет отличатся, само собой поменяются цифры, да и вместо dword может быть написано word или byte.
     

    Вложения:

    • da_mst.jpg
      da_mst.jpg
      Размер файла:
      61,1 КБ
      Просмотров:
      500
  9. Chook

    Chook Дерусификато

    Сообщения:
    1.677
    Симпатии:
    85
    Баллы:
    93
    Теория - это супер! Но практика как всегда проще :)
    Тупо ищем во всех файлах *.IMG строку байт
    40 BF 02 3C 0F 20 42 34 00 00 42 90 08 00 E0 03
    если находится - функцию не правили. Если не находится... то смотрим есть ли там вообще модуль CDVDMAN (в начале файла IMG список модулей видно)

    Но метод не срабатывает :( Например Gigants: Citizen Cabuto была на DVD а пиратили ее на СД. Все модули целые. Но это пол беды. Беда в том что если свалить все файлы на ДВД - игра не идет... Но если модули и елф игры пропатчить под работу с ДВД, то все запускается. Мысли есть?
     
  10. romka

    romka Очень главный

    Сообщения:
    4.450
    Симпатии:
    184
    Баллы:
    203
    Это скорее всего влияет MediaMode. Игры в начале сами устанавливают MediaMode - CD или DVD (это сугубо программная настройка, не влияющая на работу "железа"). За эту настройку отвечает функция, которая находится в таблице экспорта под номером 75.
    Оринальный код выглядит вот так:
    [fullimage]7280[/fullimage]
    но патч, весьма вероятно, поменял не его, основной ELF в том месте, где производится вызов этого кода. Там в $a0 записывает 1 для CD или 2 для DVD. Если использовать значение 0xFF, то будет что-то типа "автодетекта", но не уверен, что это надёжный способ.

    Найти нужное место в основном ELF гораздо сложнее, чем покапаться в IOPRP.IMG, но если тема всерьёз интересует, могу объяснить как это делается.
     

    Вложения:

    • mmode.jpg
      mmode.jpg
      Размер файла:
      16,6 КБ
      Просмотров:
      486