Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
[JTS] Анализ\Документация по ai.obj
#1
Приветствую уважаемые юзеры ЗГшечки. Думаю многих овнеров эмуляторов, посещала мысль "ПТС же круче, надо что-то думать...". Многие смотрели в скрипты, дизасмили бинарники, экстили и пробовали. Но есть и те, кому это...не совсем под силу. Вот посему, наш товарищ Camelion, после анализа, решил написать небольшую(а может наоборот, будет видно) документацию, по целевому ai.obj В текущий момент, документация не завершена, и ее 2я часть появится в скором времени(Ибо человеку нужно передохнуть, отполировать декомпилятор для публикации, да и просто развеяться). Мы с радостью делимся полученной инфой, постараемся описать подводные камни\проблемы и пути их решения, принятые нами в написании декомпилятора. Дай бог, что данная документация послужит и окружающим - верой и правдой Smile
Собственно: линк на PDF файл, без регистраций и СМС

После написания 2й части документации, мы обновим трид, добавив линки на "полную" версию и новую часть. Пользуйтесь на здоровье.

С вами были JTS, спа-си-бо за внимание Smile

(*) Огромная просьба, при переносе данной документации на сторонние ресурсы, укажите линк на данный трид и автора - Camelion
Ответ
#2
Вопрос!
Ответ
#3
Не могу не сказать спасибо за труд, который вы отдаете в паблик!

Пока что достаточно скудная информация Smile К операции add стоит добавить больше комментариев для случаев, когда операция используется для формирования обращений к классам (foo.bar.baz). Отдельное внимание стоит уделить вызовам функций и пониманию в контексте декомпилятора пределов выражений (там, где необходимо разделять операции semicolon-ом).

Собираетесь ли описывать блочные операции (while/for/etc.)? Обработку вложенных операций, сложных условий в if-else?
Или решили просто создать документацию по байт-коду?

Было бы очень интересно посмотреть, как вы опишете работу if-else-endif блоков Smile

P.S. За какое время ваш декомпилятор разбирает полный AI, если не секрет? =)
// aka Deft
Ответ
#4
Примерное время 20 минут
Инфы будет больше естесно, ибо это "часть I". И блоки в том числе. Так же решения для всех вытекающих проблем, динам. кол. параметров в функциях и прочее, с чем можно столкнуться в данном случае.
Ну и прошу обратить внимание, что это лишь часть из всей документации. После того, как Camelion закончит всю доку, вместе с "финалом" зарелизим и сам декомпилятор Wink Сроки не скажем, но постараемся в скором времени. Ждите новостей Smile
[Изображение: E0s5o.png]
[Изображение: OzRCh.png]
[Изображение: D1X5h.png]
Ответ
#5
KilRoy Написал:Примерное время 20 минут
Инфы будет больше естесно, ибо это "часть I". И блоки в том числе. Так же решения для всех вытекающих проблем, динам. кол. параметров в функциях и прочее, с чем можно столкнуться в данном случае.
Ну и прошу обратить внимание, что это лишь часть из всей документации. После того, как Camelion закончит всю доку, вместе с "финалом" зарелизим и сам декомпилятор Wink Сроки не скажем, но постараемся в скором времени. Ждите новостей Smile

Успехов вам в сем не легком труде Smile

А на чем написан декомпилятор?
20 минут очень долго - не знаю, может у вас там что-то специфичное, но рекомендую поработать над перфомансом - с уверенностью могу сказать, что можно подобраться к 1-й минуте по времени выполнения =)
// aka Deft
Ответ
#6
Yorie Написал:Успехов вам в сем не легком труде Smile

А на чем написан декомпилятор?
20 минут очень долго - не знаю, может у вас там что-то специфичное, но рекомендую поработать над перфомансом - с уверенностью могу сказать, что можно подобраться к 1-й минуте по времени выполнения =)

Смысл? если его 1 раз заюзал и забыл про него.
Ответ
#7
Yorie Написал:Не могу не сказать спасибо за труд, который вы отдаете в паблик!

Пока что достаточно скудная информация Smile К операции add стоит добавить больше комментариев для случаев, когда операция используется для формирования обращений к классам (foo.bar.baz). Отдельное внимание стоит уделить вызовам функций и пониманию в контексте декомпилятора пределов выражений (там, где необходимо разделять операции semicolon-ом).

Собираетесь ли описывать блочные операции (while/for/etc.)? Обработку вложенных операций, сложных условий в if-else?
Или решили просто создать документацию по байт-коду?

Было бы очень интересно посмотреть, как вы опишете работу if-else-endif блоков Smile

P.S. За какое время ваш декомпилятор разбирает полный AI, если не секрет? =)

Про add и обращения к классам там есть, возможно Вы не дочитали, описание присутствует. Вызов функций, и блочные операции будут описаны в следующих частях. Полное время разбора аи ~ 40 секунд. Остальные 10-15 минут занимает компиляция Scala в байткод. Дабы не быть голословным:

Говоря о 20 минутах KilRoy имеет ввиду полный цикл от чтения файла ai.obj до упаковки скриптов в jar.
Пруф

Проскочил вопрос - на чем написан. Java, частично Scala.
Ответ
#8
Camelion Написал:Про add и обращения к классам там есть, возможно Вы не дочитали, описание присутствует.
Дочитал, просто если вы описываете операцию, следует в этом же разделе упомянуть о всех ее применениях со ссылками на детальное описание того или иного применения, иначе сумбур будет - разброс по страницам информации об одном "объекте".

Цитата: Вызов функций, и блочные операции будут описаны в следующих частях. Полное время разбора аи ~ 40 секунд. Остальные 10-15 минут занимает компиляция Scala в байткод. Дабы не быть голословным:

Говоря о 20 минутах KilRoy имеет ввиду полный цикл от чтения файла ai.obj до упаковки скриптов в jar.
Ясно, так и думал Smile

Цитата:Проскочил вопрос - на чем написан. Java, частично Scala.
А для каких целей применяете Scala, если не секрет?

Добавлено через 58 секунд
offtop
// aka Deft
Ответ
#9
Информацию по последовательностям скорее всего вынесу в отдельную секцию, т.е. останется чисто описание операторов, далее описание последовательностей, описание самого декомпилятора и в конце описание всех хитрых трюков, которыми воспользовались. Втч почему взяли Scala а не Java. Вы говорите что читали. Предпосылки к Scala описаны в статье, возможно Вам следует прочитать её ещё раз.
Ответ
#10
У кого-нибудь есть эти файлы? А то ссылка уже битая Sad
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 3 Гость(ей)