Comments 19
«Ave, Caesar!», а не «Viva Caesar»
+2
Нужно было взять OSystem от ScummVM, на ней на разный платформах, в том числе для Андроида есть всяческие оптимизации рендернига.
+1
UFO just landed and posted this here
Хотелось более сжато и наглядно рассказать о результатах декомпиляции, процесс поначалу нереально скучен и представляет собой многочасовое смотрение в псевдо-си код в попытках отыскать закономерности, ориентируясь на куски отладочных сообщений, сейчас по прошествии нескольких лет, мне вообще он кажется не стоящим потраченного времени.
+1
Ничего гипер-сложного. Просто занудно. Из инструментов понадобится декомпилятор и очень желательно отладчик. Декомпилятор лучше всего брать IDA. Из нюансов, что его практически нереально самому купить — стоит дорого, а тем более с плагином Hexrays, который очень сильно облегчает код, т.к. позволяет смотреть сразу не в ассемблерный листинг, а в си-подобный псевдокод, правда, нужно его немного изначально настроить, но это несложно. Отладчик можно любой начиная от OllyDbg до SoftIce. Он позволит изучить то как идут вызовы функций и сразу перескакивать к интересным кускам кода, тем более, что точки останова можно устанавливать не только по адресам обращений, но и по условиям вроде «если в ячейку такую-то записывается значение вида такого-то». А потом можно открывать декомпилятор и смотреть в нем что же это за код был. Кстати, в отладчике минимальные функции декомпиляции то же есть — он отображает код в виде ассемблерных инструкций. Получается нагляднее, чем просто смотреть в машинные коды.
Далее очень быстро из листинга вычленяются строковые константы, отладочные выводы, стандартные функции (вроде memcpy — тут дизассемблеру помогает встроенная в него база стандартных сигнатур библиотечных функций, правда, memcpy можно самому угадать про тривиальному, «классическому» коду этой функции), импорты (это функции, которые вызываются из внешних библиотек — DLLек). Когда это сделано, то можно потихоньку, кропотливо восстанавливать алгоритм работы программы.
Учтите, что иногда с наскока результат не получается и приходится изобретать способ как узнать как работает программа. Поэтому зацикливаться на одном инструменте не стоит. Можно ставить эксперименты — портить или изменять файлы данных и ресурсов и смотреть как себя поведет программа. При этом она может быть переключиться на какие-то другие ветки исполнения, что даст дополнительную информацию для анализа.
Еще один метод анализа работы программы заключается в использовании снифферов (начиная от утилит фирмы sysinternals и кончая самопалом). Они перехватывают системные вызовы и пишут их в файл протокола. Обычно они более полезны для анализа вредоносных программ или, например, чтобы найти где хранятся настройки какой-либо программы для переноса ее на другой компьютер. Но и для разбора алгоритма работы они тоже могут пригодиться.
Далее очень быстро из листинга вычленяются строковые константы, отладочные выводы, стандартные функции (вроде memcpy — тут дизассемблеру помогает встроенная в него база стандартных сигнатур библиотечных функций, правда, memcpy можно самому угадать про тривиальному, «классическому» коду этой функции), импорты (это функции, которые вызываются из внешних библиотек — DLLек). Когда это сделано, то можно потихоньку, кропотливо восстанавливать алгоритм работы программы.
Учтите, что иногда с наскока результат не получается и приходится изобретать способ как узнать как работает программа. Поэтому зацикливаться на одном инструменте не стоит. Можно ставить эксперименты — портить или изменять файлы данных и ресурсов и смотреть как себя поведет программа. При этом она может быть переключиться на какие-то другие ветки исполнения, что даст дополнительную информацию для анализа.
Еще один метод анализа работы программы заключается в использовании снифферов (начиная от утилит фирмы sysinternals и кончая самопалом). Они перехватывают системные вызовы и пишут их в файл протокола. Обычно они более полезны для анализа вредоносных программ или, например, чтобы найти где хранятся настройки какой-либо программы для переноса ее на другой компьютер. Но и для разбора алгоритма работы они тоже могут пригодиться.
0
Вот бы кто смог портировать Warcraft II…
-1
И героев. Хотя где то видел порт, но он не самого лучшего качества
0
Героев пилят, и вторых, и третьих, посмотрите на osgameclones.com/
+1
Третьих можно найти здесь forum.vcmi.eu/portal.php
0
UFO just landed and posted this here
UFO just landed and posted this here
0
Очень надеюсь, что когда-нибудь портируют Космических рейджеров на Android.
+2
По пожеланиям фанатов — таки выпустили. play.google.com/store/apps/details?id=com.e1cog.spacerangerslegacy
0
Sign up to leave a comment.
Портирование любимой игры под Android