PS2 Разжимание ELF.

Тема в разделе "PlayStation 5", создана пользователем Oleg Soev, 17 апр 2006.

  1. Oleg Soev

    Oleg Soev Русский партизан

    Сообщения:
    1.411
    Симпатии:
    39
    Баллы:
    88
    Решил создать отдельную тему, посвященную разжиманию (т.е. извлечению из архива) исполняемых файлов PS2. Сразу хочу высказать благодарность уважаемому Чуку, который является её идейным вдохновителем.

    Чем они (сжатые ELF) вредны – мешают AR, патчам, возможно работе HDLoader.
    Пользы не обнаружено. Хотя уважаемый Ромка говорил, что в таком виде они быстрее грузятся с DVD.

    Выход – разжимать.

    Начнём.

    Сразу вопрос.

    Как выяснить, что ELF сжат и как можно определить, чем именно?
     
  2. TechnoWizard

    TechnoWizard Well-Known Member

    Сообщения:
    471
    Симпатии:
    22
    Баллы:
    73
    Попробуй поискать пакеры на wasm.ru, там в основном для винды и exe файлов, но может есть и для линукса(там как раз elf файлы идут).
     
  3. romka

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

    Сообщения:
    4.450
    Симпатии:
    184
    Баллы:
    203
    IMHO, это дохлый номер. Скорее всего пакеры для Linux не имеют ничего общего с пакерами для PS2.
     
  4. ShellShocked

    ShellShocked Critters У

    Сообщения:
    1.224
    Симпатии:
    120
    Баллы:
    103
    А разве на ps2bins нет, я качал как-то ps2packer-unpacker GUI :huh:
     
  5. Chook

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

    Сообщения:
    1.677
    Симпатии:
    85
    Баллы:
    93
    Ну что оно запаковано определить легко - попробуй его раром сжать. Если сжиматься будет плохо - то жатый.

    Есть пара распаковщиков. В принципе Тот кто написал пакер написал и универсальный распаклвщик, да вот только беда в том что обратно не разжимается как до упаковки было. Плюс к этому теряется еще дофига данных. Часто получаются неработоспособные модули.

    Но... Если подумать то эмулятор ПС2 как-то это дело запускает. Поэтому после запуска игры можно снять дамп и как на компе восстанавливать исполняемый модуль. Во всяком случае что примерно должно получится и что искать в дампе даст пасакованный (пусть и криво) модуль.

    Гораздо проще взять из англ версии елф не пакованый. И в дампе после запуска русской версии поискатьего. Пираты не так много правят в исполняемом модуле... Так что русский модуль можно восстановить.
     
  6. Oleg Soev

    Oleg Soev Русский партизан

    Сообщения:
    1.411
    Симпатии:
    39
    Баллы:
    88
    Ну вот этот уродец сжался в 4 раза. Хоть Ромка и говорит, что он запакованный.
    www.f-archives.narod.ru/SLUS_203.12.rar

    Поверить не могу! Это ж как такое возможно? Алгоритм JPEG используют? :)))

    Ничего не понял. Это ты предлагаешь делать через эмулятор PS2? Один раз посмотрел на этого убогого, уже больше года даже не интересуюсь им. Жаль, поэтому не умею с ним работать и не знаю функций.
     
  7. romka

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

    Сообщения:
    4.450
    Симпатии:
    184
    Баллы:
    203
    Через эмулятор PS2 конечно по идее то можно снять дамп, но только потом из него придётся делать ELF - а это уже не очень просто. Кстати, я как-то было попытался использовать относительно свежий эмулятор для подобных целей однако проблема в том что он даже HD loader у меня запускал с не более чем 5fps и т-о-р-м-о-з-и-л. лучше бы он вообще ничего не показывал на экран тогда уж. ivse тогда говорил, что для такой цели нужен графический null-плагин (или что-то вроде того), но только ведь его похоже нет.
     
  8. Chook

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

    Сообщения:
    1.677
    Симпатии:
    85
    Баллы:
    93
    Oleg Soev, дело не в том что пакуется с потерями как жпег. Дело в том что при паковке изменяется расположение секций и служебной информации. Как я понял некоторые секции почему-то выкидываются. После разжимания Даже рабочий модуль уже будет не тем что раньше - например будет смещена секция кода.

    По поводу пакованного файла... Ну я не знаю что сказать... 2/3 части этого файла просто забыты нулями (хвост). Остальная часть не то чтобы сжата, а скорее зашифрована.
    PS2-Unpacker version 0.1.2 обламывается на нем.

    На счет эмулятора. Да какая разница что там долго. После того как приставка что-то показала отличное от логотипа можно уже снимать дамп, так как елф уже распакован. Кстати как писал автор распаковщика, он использует наработки эмулятора, но вот что-то не всегда у него получается :(
     
  9. TechnoWizard

    TechnoWizard Well-Known Member

    Сообщения:
    471
    Симпатии:
    22
    Баллы:
    73
    Дамп не выход, распаковщик может поместить код в любое место памяти, по любому адресу, единственный реальный выход, это дизассемблирование участка кода, который отвечает за распаковку.
     
  10. Chook

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

    Сообщения:
    1.677
    Симпатии:
    85
    Баллы:
    93
    TechnoWizard, ты думаешь что сжатие ехе файла это как раром тока оно еще выполняться умеет? :)
    Ты не получишь послераспаковки 100% исходный файл. И ты предлагаешь вот сидеть и мучиться с дезассемблированием? А потом что? Написать свой распаковщик. Ну ты орел...
    Я же предлагаю взять английский оригинал и дамп русской версии и сделать замену переведенного текста и измененных имен файлов по английскому варианту, который РЕАЛЬНО существует в природе и который можно достать. (ну поделится кто-нито например :) )
    Да и в любом случае ну напишешь ты распаковщик. Только чтоон делать то будет? Он распакует исполняемую часть, хорошо. Дальше? Как ты воссоздашь исходные таблицы описаний, параметров и т.д. То ради чего это все затевалось - чтобы получить елф такой который сможет пропатчить АР МАХ. То есть практически такой же как оригинал.

    Извини за наезд, но то что ты написал - это красивая теория котрая не жизнеспособна. Даже на компе никто не дезассемблирует для распаковки упаковщик, так как это бестолку, если можно просто выудить то что после него получается. Нужны таблицы импорта, расположение секций, точка входа для воссоздания из полученного рабочего ехе. Зачем тебе алгоритм упаковки? Ты что перепаковщик делать собираешься? :)
     
  11. romka

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

    Сообщения:
    4.450
    Симпатии:
    184
    Баллы:
    203
    хочу обратить внимание, что ...
    обычный (неупакованный) ELF для PS2 загружается IO-процессором и копируется (по частям) в основную системную память через DMA-канал. Сам Emotion Engine в данном процессе почти не участвует. Загрузка ELF-файла, как я понимаю, происходит только на стандартный адрес, указываемый при компиляции программы, никакого "импорта/экспорта" в обычных ELF'ах для EE не предусмотрено, взаимодействие с ядром системы (биосом) происходит с помощью инструкций "syscall". Соответственно, из всякой дополнительно информации в ELF'e для обычной загрузки программы нужен самый минимум.
     
  12. Oleg Soev

    Oleg Soev Русский партизан

    Сообщения:
    1.411
    Симпатии:
    39
    Баллы:
    88
    М-да, друзья… Теме несколько дней, а мы пока так и не выяснили, как однозначно идентифицировать запакованный - зашифрованный модуль. Я надеялся, что компрессор (шифратор?) какие-то данные о себе оставляет в коде и по ним его можно обнаружить и всё полностью восстановить.

    Но, как выяснилось, дела обстоят намного хуже. Сжатые (зашифрованные и т.п.) elf это уже не просто зло, а зло в квадрате.
     
  13. TechnoWizard

    TechnoWizard Well-Known Member

    Сообщения:
    471
    Симпатии:
    22
    Баллы:
    73
    1) А расспаковщик распаковывает не только исполняемую часть но и сегменты данных и прочее. Если не распаковывает код в начале файла, то в любом случае где-то есть код, который делает это.
    2) На компе не дизассемблируют потому что все дизасемблировано до нас. И как правило народ предпочитает использовать стандартные пакеры к которым давно есть распаковщики. Но бывают и исключения, я лично не так давно собственноручно выдирал алгоритм распаковки из EXE файла, заняло это дело часа 4. И все потому, что мне мидишка понравилась, которая была засунута в ресурсы файла. Народ пускаеться и в более тяжкие ради меньшего, это своего рода экстрим :)
    3) Я даже не предлагал создавать распаковщик, я лишь заметил, что чтобы собрать из дампа памяти эмулатора ELF, нужно будет дизасемблировать часть кода отвечающую за распаковку, чтобы выяснить куда он эти самые сегменты засунул в памяти.

    Не замечал я чтот за IO процессорами такого, может не внимательно смотрел... :huh: Но все равно чтот мне подсказывает что загрузкой занимаеться именно BIOS. ;)
     
  14. Chook

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

    Сообщения:
    1.677
    Симпатии:
    85
    Баллы:
    93
    TechnoWizard, ты знаешь, наверно от компрессора этого есть исходники ведь! Я в этом почти уверен. :)
    Так что можно их посмотреть... :) как тебе идея? :)
    Вопрос в том кто будет этим заниматься? Я лучше из дампа выловлю русский запакованый елф. И буду просить чтоб английский оригинальный дал кто нито :)

    Распаковать - дело интересное, но увы времени сейчас на это нет :(
     
  15. TechnoWizard

    TechnoWizard Well-Known Member

    Сообщения:
    471
    Симпатии:
    22
    Баллы:
    73
    Исходники есть всегда, вопрос ток где ;)
    Представь себе звонишь ты ну напрмер в Squre Enix и просишь жалобным голосом, мол дайте люди добрые исходники пакера для elf файлов, а то у меня вашу игруху спиратить не получаеться :LOL:
    Учти, что у каждой фирмы вполне может быть свой пакер написанный ими лично. Тут же не идет речь о каких либо стандартах.
     
  16. romka

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

    Сообщения:
    4.450
    Симпатии:
    184
    Баллы:
    203
    К счастью такой фигней, как упаковка программ всякими пакерами, разработчики игр почти не занимаются. :)
     
  17. Chook

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

    Сообщения:
    1.677
    Симпатии:
    85
    Баллы:
    93
    TechnoWizard, мы говорим об елф упакованных пиратами :)
    Все несколько проще. :)
     
  18. TechnoWizard

    TechnoWizard Well-Known Member

    Сообщения:
    471
    Симпатии:
    22
    Баллы:
    73
    Угу, но все равно как ты себе представляешь искать того самого пирата ? Только в россии каждый второй - пират :LOL:
     
  19. Oleg Soev

    Oleg Soev Русский партизан

    Сообщения:
    1.411
    Симпатии:
    39
    Баллы:
    88
    Да брось… Матрица, знаток в этом деле, говорил что существует всего около 3-4 кантор. И еще несколько на Украине.
     
  20. GamerSuper

    GamerSuper New Member

    Сообщения:
    1.056
    Симпатии:
    16
    Баллы:
    0
    ничего не понял... чем можно разобрать ельф по ресурсам и обратно все запаковать после изменения? для начала ,в качестве тренировки попытаюсь русифицировать медиаплеер.