eXeL@B —› Вопросы новичков —› HexRays для PowerPC |
Посл.ответ | Сообщение |
|
Создано: 05 декабря 2019 14:06 · Поправил: Boostyq · Личное сообщение · #1 Привет, есть исполняемый файл 5мб для старой игры на WIi, в dol формате В иде загружается если выставить как бинарный файл с процессором PowerPC Big-Endian 64-bit (ppc) Я знаю, что год назад уже кто-то спрашивал, собственно хочется узнать не изменилась ли ситуация с приватностью иды с таким декомпилятором, потому что сейчас им особо и декомпилировать нечего кроме игр? Ну или если знаете что-нибудь другое нормальное, смотрела этот плагин https://github.com/gibbed/ppc2c, но это вовсе не декомпилятор, retdec написано что поддерживает только 32-битный ppc Главное чтобы показывало достоверно как хексрейс, потому что например гидра для мипса такой бред выдавала, что приходилось руками из асма разбирать ----- В облачке многоточия |
|
Создано: 05 декабря 2019 14:23 · Поправил: SDK · Личное сообщение · #2 Boostyq пишет: ситуация с приватностью иды с таким декомпилятором у китайцев есть на торенте hexreys разных версий - но торренты мёртвые. можете найти их через их китайский поисковик там будет китайское хранилище торрентов скачать торренты и посмотреть что там в нутри и от туда найдёте название версии и файлов и дальше своим ходом год за годом найдете приватную версию. на других сайтах или ftp или облоках обменниках\попробуйте я так находил много того чего нет в свободном доступе. |
|
Создано: 05 декабря 2019 15:14 · Личное сообщение · #3 Ну я пробовала подобное, на каком-то китайском сайте описывалось как установить хексрейс и вроде говорилось про powerpc, и на скрине было имя установочника, но это оказалась старая версия и вовсе без powerpc ----- В облачке многоточия | Сообщение посчитали полезным: SDK |
|
Создано: 05 декабря 2019 15:39 · Личное сообщение · #4 |
|
Создано: 05 декабря 2019 21:57 · Личное сообщение · #5 |
|
Создано: 05 декабря 2019 22:42 · Личное сообщение · #6 |
|
Создано: 06 декабря 2019 06:12 · Личное сообщение · #7 |
|
Создано: 06 декабря 2019 15:25 · Поправил: Boostyq · Личное сообщение · #8 К сожалению не получается подготовить файл ._. Я сделала все что могла, сконвертировала в elf чтобы легко загружалось и были правильные секции, выбрала расширение Paired Singles чтобы ида разобрала неизвестные инструкции с плавающей точкой, стала смотреть и оказалось что ссылки на строки хоть и работают, но на очень малое колво, те что мне были интересны были без ссылок Дальше стала проставлять функции что не распознались и заметила кучу использования r13 вида "r13, -0x6C48", оказалось это что-то вроде некой базы, которая не меняется во всей программе и используется для рассчетов, нашла инициализацию Code:
Поставила в настройках анализа SDA (r13) = 0x8062BA60, и нифига, и так и сяк жмакала Reanalyze program, сработало только если прямо после открытия остановить анализ и выставить значение, секцию еще одну прилепила, потому что эти адреса-то вообще за пределы ссылаются (но видимо всегда с отрицательным смещением, наверное там какие регионы еще есть создающиеся чем-то еще) r1 это похоже стек (сразу говорю что я ничего не знаю про ppc), и с ним вроде ничего делать не нужно А с r2 я похоже ничего не могу сделать, под него нет слота в настройках (или разве что это и есть TOC) и никак нельзя задать значение регистра как в гидре, но в отличии от r13 r2 меняется несколько раз, а используется очень много раз и возможно отсутствие ссылок объясняется этим ----- В облачке многоточия |
|
Создано: 06 декабря 2019 15:35 · Поправил: reversecode · Личное сообщение · #9 |
|
Создано: 06 декабря 2019 16:09 · Личное сообщение · #10 Да даю я >.< Там же куча нерешенных проблем, сейчас надекомпилишь мне только половину, и криво окажется, а попытка то одна Если высставить r2 как в первой инициализации, то вообще почти все ссылки на r2 пропадают, что кстати нехорошо сделано, потому что непонятно верно они разрешились или нет Однако ссылки на нужные строки все равно не появляются, не мог же компилятор просто так их навставлять, потому что в той же игре на PC они используются ----- В облачке многоточия |
|
Создано: 06 декабря 2019 16:10 · Личное сообщение · #11 оно не резолвит потому что выходит за пределы сегментов в файле _text_0:80006304 000 lis r1, -0x7F9D _text_0:80006308 000 ori r1, r1, 0x9C58 _text_0:8000630C 000 lis r2, -0x7F9D _text_0:80006310 000 ori r2, r2, 0xF00 # 0x80630F00 _text_0:80006314 000 lis r13, -0x7F9E _text_0:80006318 000 ori r13, r13, 0xBA60 # 0x8062BA60 0x8062BA60 таких уже нет в файле или конвертилка не правильная или как то в игре оно цепляется по другому хз какой там импорт експорт Добавлено спустя 3 минуты кстати это обчный ppc32 а не 64 |
|
Создано: 06 декабря 2019 16:19 · Поправил: Boostyq · Личное сообщение · #12 Как я написала ранее, если высставить r2 и r13 прямо после открытия файла, то все будет работать нормально Да там нет таких адресов, но я и не видела туда обращений, смещение всегда корректирует адрес до того что внутри игры, это, как я понимаю, сделано просто чтобы смещение влезало в 16-бит, поэтому адрес где-то в конце, ну или там должны быть еще секции Насчет конвертации там отдельная эпопея была, в итоге пришлось скомпилить какие-то сорсы с гитхаба А ссылки на строки не работают, потому что они рассчитываются относительно (это я про те, которые мне интересны), и это наверное никак не решить, это просто компилятор так сделал, а ида не подсвечивает к сожалению Я думала, что это вот ссылка на текст, на самом деле это просто запись базы Code:
А уже само обращение происходит ниже Code:
Что-то вроде оптимизации обращения к нескольким близлежащим адресам, чтобы не рассчитывать каждый через lis и addi, жаль что ида такое не просчитывает Поэтому наверное остается только все функции, которые не распознались проставить А насчет разрядность не знаю, когда открывала dol еще файл, он открылся только в Big-Endian 64-bit ----- В облачке многоточия |
|
Создано: 06 декабря 2019 16:27 · Личное сообщение · #13 _text_1:8024090C 110 addi r6, r31, 0 _text_1:80240910 110 stw r3, (dword_80604014 - 0x80603EE4)(r4) _text_1:80240914 110 addi r4, r31, (aUnableToOpenFi - 0x804A30A0) # "Unable to open file" _text_1:80240918 110 addi r3, r31, (aBigGstGearfile - 0x804A30A0) # "BIG_gst.gearFile != NULL" _text_1:8024091C 110 bne loc_8024092C Добавлено спустя 2 минуты какой правильный r13 ? |
|
Создано: 06 декабря 2019 16:33 · Поправил: Boostyq · Личное сообщение · #14 Ну я ставлю 0x8062BA60, кстати у тебя похоже ида умеет рассчитывать такие смещения, у меня нет комментариев таких Быстренько приобрела 7.2 Она гораздо лучше распознает функции, вообще почти нет пробелов, а вот строки некоторые не распознала совсем, при чем в списке строк они есть, а как тип данных не выставлены, но если сделать вручную и затем нажать реанализ, то тогда даже ссылки через смещения показывает, круто Еще плюсом идет то, что не надо пререывать анализ вначале, а там есть сразу настройка регистров r13 и r2 перед анализом, и даже дополнительно подписано ----- В облачке многоточия |
|
Создано: 06 декабря 2019 16:46 · Поправил: reversecode · Личное сообщение · #15 |
|
Создано: 06 декабря 2019 17:42 · Личное сообщение · #16 Кстати насчет кривого конвертера вполне может быть, учитывая, что я еще пока фиксила ошибки компиляции допустила один баг Там было elf_offset += -(-(section[i].size) & -(0x100)); что не компилится в C++, поэтому я заменила на ~, а нужно было на ~val + 1 Сейчас исправила, но никакой разницы не увидела, по прежнему r13 и r2 за пределами, да и раньше же было правильно, так что не знаю на что это влияет ----- В облачке многоточия |
|
Создано: 06 декабря 2019 17:52 · Поправил: reversecode · Личное сообщение · #17 самая большая проблема сейчас это пролог функции ppc специфичные который никак не распознался и из за него сьедаются аргументы при декомпиляции Добавлено спустя 1 минуту в лог нужно было вывести итоговый ельф офсет при конвертации и узнала бы что там да как Добавлено спустя 53 минуты // nfuncs=21315 queued=20010 decompiled=20010 lumina nreq=0 worse=0 better=0 #error "There were 9 decompilation failure(s) on 20010 function(s)" | Сообщение посчитали полезным: Boostyq |
|
Создано: 06 декабря 2019 19:59 · Личное сообщение · #18 |
|
Создано: 06 декабря 2019 20:31 · Личное сообщение · #19 |
eXeL@B —› Вопросы новичков —› HexRays для PowerPC |