ZXNet эхоконференция «code.zx»


тема: декомпиляция



от: Сергей Билибин
кому: All
дата: 05 Feb 2007
Hello, All когдато давно, лет 8 - 9 назад я писал всевозможные програмки и игрульки для себя. писал их на бейсике с применением граф.редактора Art Studio и компилятора Tobos FP. вот недавно я посписывал всё это добро с касет и хотел бы снова поковыряться в своих произведениях. в общем вопрос такой: можно ли как нибудь превести из машинного кода программы назад в бейсик? если да то как? для примера выкладываю пару своих произведений :) Файл: game.rar http://zx.pk.ru/attachment.php?attachmentid=4547

от: deathsoft
кому: All
дата: 05 Feb 2007
Hello, ZEman ZEm> можно ли как нибудь превести из машинного кода программы назад в ZEm> бейсик? Если нету исходных бэйсик файлов (из которых Tobos FP получил машинный код), то никак, а если они есть в образах касет, то см. пункт ниже.

от: deathsoft
кому: All
дата: 05 Feb 2007
Hello, ZEman Скачать вот эту прогу (ZX-Blockeditor) http://home.arcor.de/clausjahn/spectrum/. После чего выдрать все файлы с бэйсиком и кодом в виде отдельных файлов, дальше их можно засунуть в .trd/.scl

от: Dmitry Malychev
кому: All
дата: 06 Feb 2007
Hello, cyrax inc cyr> есть выражение: мяса из котлет не восстановишь и фарш не провернуть cyr> назад... Переврал немного. :) Это такая песня-пародия на Пугачиху.

от: Алексей Михеев
кому: All
дата: 06 Feb 2007
Hello, ZEman ZEm> исходных бейсик файлов нету, стёр давным-давно.. ZEm> а так значит никак нельзя? ZEm> ведь компилятор же перводит из бейсика в машинный код, почему нельзя ZEm> сделать процесс наоборот? как компилятор перевел исходную бейсик-программу в машкод одним только авторам тобоса и известно. есть выражение: мяса из котлет не восстановишь и фарш не провернуть назад...

от: Сергей Билибин
кому: All
дата: 06 Feb 2007
Hello, deathsoft исходных бейсик файлов нету, стёр давным-давно.. а так значит никак нельзя? ведь компилятор же перводит из бейсика в машинный код, почему нельзя сделать процесс наоборот?

от: deathsoft
кому: All
дата: 06 Feb 2007
Hello, goodboy goo> если бы переводил зачем тогда нужен сам Tobos в памяти для работы goo> проги ? Скорее всего используются процедуры не из ПЗУ, а из самого Tobos'а, тоже самое касается, например, MegaBasic'а. Вполне возможно, что Tobos работает как старые версии VisualBasic (до 5.0) на PC (компилирует в байт код), а наличие Tobos'а требуется для исполнения этого байткода (по сути это виртуальная машина).

от: goodboy
кому: All
дата: 06 Feb 2007
Hello, ZEman ZEm> ведь компилятор же переводит из бейсика в машинный код ничего в маш.код он не переводит, операторы бейсика переводятся в хитрый формат который быстрее передаётся ПЗУшным процедурам, только и всего если бы переводил зачем тогда нужен сам Tobos в памяти для работы проги ?

от: Станислав Ломакин
кому: All
дата: 06 Feb 2007
Hello, goodboy goo> ничего в маш.код он не переводит, операторы бейсика переводятся в goo> хитрый формат который быстрее передаётся ПЗУшным процедурам, только и goo> всего goo> goo> если бы переводил зачем тогда нужен сам Tobos в памяти для работы goo> проги ? так-то оно так. но что это за формат, и насколько сложно восстановить из него бейсик, есть большая природная загадка :rolleyes; хотя; по идее вполне разрешимая

от: deathsoft
кому: All
дата: 07 Feb 2007
Hello, EARL Visual Basic 3 и 4 декомпилировался полностью, также декомпилировались языки типа Clipper (под ДОС). Причем были очень хорошие декомпилеры, которые восстанавливали полноценный исходник.

от: Дмитрий Лимонов
кому: All
дата: 07 Feb 2007
Hello, deathsoft dea> Скорее всего используются процедуры не из ПЗУ, а из самого Tobos'а, dea> тоже самое касается, например, MegaBasic'а. dea> dea> Вполне возможно, что Tobos работает как старые версии VisualBasic (до dea> 5.0) на PC (компилирует в байт код), а наличие Tobos'а требуется для dea> исполнения этого байткода (по сути это виртуальная машина). Да очень на то похоже. Я как-то разбирался с этим компилятором, когда хотел декомпилировать игру Tank war, чтобы немного переписать и заметил, что там действительно все команды представляются в виде 16 битных адресов обработчиков команд бейскика. Часть этих команда находится в ПЗУ бейсика, а часть переписана и расположена в самом компиляторе. Сейчас точно не помню, но есть такая мысль, что можно даже имена переменных восстановить, которые компилятор бережно сохраняет в начале результирующего кода. Даже конструкции вида: ┌─- CODE ─── GOTO label └── CODE ─── где label - переменная можно восстановить, потому что когда компилятор встречает такой GOTO, то он сохраняет в все нормера строк в виде адресов байт-кодов результирующей программы, т.е. создается специальная таблица по которой можно восстановить даже сколько и какие операторы были в строке. :cool:




Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
DUCK NEWS - Клуб любителей Пентагонов. O вирусе LTSG-89 (PRESTOR), вшитом в ПЗУ компьютеров Пентагон & Скорпион.
Вступление - о первой газете в Ижевске.
ASCII art - Для кого-то аски - это хуйня, для кого-то это большая хуйня, а для нас аски - это хуй...
Реклама - бесплатные обьявления.
О людях... - О истории образовании и планах группы "ZX-Masters".

В этот день...   8 мая