Интересно, что в конце файла Pillars есть фраза "НЕ ТРОЖЬ МЕНЯ ИЗНУТРИ !!!" Таким нехитрым приемом автор предостерегает нас от взлома его программы. И что удивительно, это ему удается!
Интересно, что в конце файла Pillars есть фраза "НЕ ТРОЖЬ МЕНЯ ИЗНУТРИ !!!" Таким нехитрым приемом автор предостерегает нас от взлома его программы. И что удивительно, это ему удается!
Последний раз редактировалось Tim0xA; 17.03.2009 в 17:23.
Поставлена точка в вопросе о работоспособности "Pillars" (скриншоты с реала).
Tim0xA, а ты pillars какой грузил, сделаный из ROM с помощью конвертора, или ту запись которая в архиве с реальной кассеты?
Последний раз редактировалось Tim0xA; 27.03.2009 в 01:45. Причина: Выделение новой темы
Здесь можно скачать актуальные версии Virtual Vector (VV)
Кто нибуть в отладчике пытался вкурить где Pillars залетает, я толко понял что он переносит себя с первого блока на нулевой, а дальше начинается какой то бред, непонятные операции, в общем дальше ничего непонял, ясно только одно - к портам В/В обращений нет, к RAM диску и другим устройствам тоже, так что наиболее вероятно что проблема в эмуляции самого процессора
Здесь можно скачать актуальные версии Virtual Vector (VV)
Определена причина, по которой Pillars нехочет работать в эмуляторах, ее корень заключается в следующем...
программа зашифрована по определенному алгоритму, расшифровка происходит через стековые операции начиная с конечного байта и двигаясь к начальному (младшему)
организован следующий алгоритм переходов в зависимости от полученного результата вычитания:
...
...
SUB D
MVI A,00h
PUSH PSW
...
RET
где адрес возврата равен слову состояния после команды SUB, а по этим адресам расположены алгоритмы декодирования очередного байта программы.
одно неверное состояние какого либо флага приводит к ошибке декодирования и соответственно неработоспособному коду.
Нужна достоверная информация по формированию каждого флага в данной операции! я так думаю что команда SUB была выбрана неспроста, уж очень она неоднозначна и покрыта мраком. если у кого что то есть, нестесняйтесь, выкладывайте...
Здесь можно скачать актуальные версии Virtual Vector (VV)
Учитывая, что есть живые компьютеры с КР580 - Векторы и ПК8000, достаточно просто получить ответ на вопрос по особенностям установки флагов после sub. Нужно для каждой комбинации уменьшаемого и вычитаемого сохранить значение регистра флагов, получится файлик на 64 Кб (или, если влезать в детали, 2 по 32). Потом этот файлик сравнивается с тем, что выдает аналогичная программа в эмуляторе и при сравнении несовпадений находятся закономерности.
Сорри, если сказал слишком очевидные вещи.
У меня в распоряжении такого добра к сожалению нет, да и с трудом себе представляю как выдернуть из вектора такой файл. Даже если проделать такую работу, я неуверен, что флаги после какой нибуть другой команды невлияют на результат, т.к. после обнаруженного ИЗВРАТА я дальше в коде разбираться нестал.
Здесь можно скачать актуальные версии Virtual Vector (VV)
Можно принять меры по "изоляции" влияния исследуемой команды, в этом случае запуск одного и того же кода в эмуляторе и на реале позволит по крайней мере для данной команды увидеть расхождение в установке флагов, если оно есть. Потом, при необходимости, можно проверить и остальные команды.
Детали практической реализации - на векторе, как мне кажется, проще всего было бы запустить "выявлятель различий" в мониторе-отладчике и потом перегнать сгенерированный массив флагов через магнитофонный выход - звуковую карту. Придется делать в 2 захода, т.к. 64 Кб разом в памяти (без КД) не разместишь. На ПК8000 все аналогично, только подгружать ничего, кроме самого "выявителя различий" не нужно, бейсик позволит выгрузить.
Нужен доброволец с работающим реалом.
Последний раз редактировалось ivagor; 21.03.2009 в 20:51.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)