-[ Ьу Dr.Yirus/MDO ]-------------------------------------------
Эффективное использование "теневика".
---------------------------------------------------------------
Итак, вас приветствует дядя Вирус фром Moderation. Сегодня
я постараюсь рассказать Вам о том, как выдирать музыку. Надо
сказать, что чтобы выдрать музыку, oco6oro ума не требуется, ее
может выдрать даже полный чайник (естественно, после того как
прочитает сей мануал ;).
Как известно, на ZX (да и не только на ZX) музыка делится на
два вида: FM и DIGITAL. Подробно их описывать не буду, желающим
могу предложить почитать одиннадцатый выпуск уфимской газеты
MSD. DIGITAL оставим на потом, а сначала научимся выламывать
FM.
Здесь и далее речь пойдет о технике работы c компьютером
"Скорпион" c его теневым монитором. Далее мы затронем специфику
работы c дебаггерами, но вплотную к ней подходить не будем, т.к
чтобы добраться до музы c помощью монитора, надо долго париться
а это уже попахивает не выдиранием музыки, а кракингом вообще,
а это уже совсем другая история...
Ну ладно, что мы все вокруг да около?! Начинаем!
Загружайте желаемую прогу, нажимайте MAGIC. И если все
прошло успешно, и вы попали в "теневик", а не подвесили комп
(что тоже может иметь место), то поздравляем c первым успешным
шагом. Теперь надо найти музыку. Чаще всего Музыка подвешивает-
ся на прерывания. Посмотрите на окно состояния монитора. Если
у вас настоящий Скорп, там должна быть надпись "Int mode"
("режим прерываний"). Так вот, если режим номер два, то счи-
тайте что вам повезло. Пишем в командной строке: "мем[#xxFF]",
где xx - значение вектора прерываний I. Если по вычисленному
адресу JP или JO, жмем SS+G и так до тех пор, пока не попадем
на начало подпроги обработки прерываний. здесь нас ничто не ин-
tepecyet, кроме инструкций CALL nn, причем они не обязательно
должны быть безуcловными. Очень подозрительна такая конструкция
LD A,#XX:CALL NNNN:CALL DDDD. Сразу видно, что скорее всего
переключается страница и вызывается плейер. Кстати, страница
может переключаться здесь же, OVT'ом. A лучше всего, чтобы не
париться, поставьте первый CALL в самую верхнюю строку экрана
и нажмите единицу. Потом жмите SS+G. Посмотрите, что тама про-
исходит, если ничего интересного - возвращайтесь обратно. Ес-
ли оттуда уходят еще разветвления, пройдитесь по ним. Короче
Клавиши от 1 до 5 - запоминание адреса, от 6 до 0 - восста-
новление соответствующего. То есть, 6 соответствует единице, 7
- двойке и т.д.
Можно также пробежаться и по страницам: команда переключения
страницы - "OAM X", где X - логический номер страницы. Только
не забудьте установить мем на адрес 49152=#С000, так как, веро-
ятнее всего, там и находится выламываемая муза. Кстати, если вы
ломаете дему или прогу, использующую оба экрана,то на седьмой
странице музыка, вероятнее всего будет по адресу 56064=#DBOO.
Можно устроить поиск по стрингу:"fin24500 65535"PO0-TOACKEO"
A если совсем никак, то на крайняк поищите в памяти инструкцию
OVTD. Она используется в половине музыкальных плейеров. Искать
так: "fin24500 65535 #ed #аЬ. Но в некоторых плейерах, на-
пример в ASM'овском, используется OVTI. Ее код: #ed #а3. Нашли?
Теперь листайте вверх, пока не встретите знакомые инструкции:
LD HL,MVZADO:JP XXXXX:JP DDDDD.
Короче, больше в подробности поиска вдаваться не буду,
лучше потренируйтесь, посмотрите код различных плейеров, вы-
явите характерные oco6ehhoctu.
Теперь найденную музу надо сгрузить на диск, чтобы потом де-
компилировать. Декомпиляцию надо провести, чтобы отсеять мусор
в конце отгружаемого блока, так как точную его длину узнать не
знаю как. Да и надо ли?
Если у вас версия монитора 2.95 и выше, то тут легче всего:
saveFILENAMEX address length, где FILENAME - имя файла, X -
расширение, address и length - соответственно адрес и длина.
Если у вас более ранняя версия, то тут уже надо делать по
cnoco6y Русланыча, когда у него была еще старая ПЗУха:
movmusadr musadr+6912 16384. Потом вставьте чистый диск и
жмите MAGIC. Затем отрежьте у самого большого блока (длиной
192 сектора) первые 6912 байт и загоняйте их в декомпилер. Если
декомпилер послал вас, то скорее всего, длина музона больше
6912 байт и операцию нужно повторить:
movmusadr musadr+6912+6912 length, затем склейте получившийся
блок c первым и декомпилируйте.
Ну, c теневиком вроде разобрались, теперь перейдем к деком-
пилерам.
Co6ctbehho, говорить тут oco6o не о чем т.к. декомпильнуть
может и младенец, но учтите, что музыка в форматах KSA Рго So-
und Tracker и FastTracker успешно декомпильнетcя только в том
случае, если она не была проинициализирована. Поэтому поста-
райтеcь войти в теневик перед тем, как музыка заиграет. Можно
еще попробовать протрассировать загрузчик ломаемой программы,
загрузить главный блок, найти в нем музыку и сгрузить на диск.
Еще один cnoco6 вытаскивания музыки связан c применением
программы "BestYiew". Загрузите ее, вставьте диск c ломаемой
программой, нажмите SS+D и подождите, пока головка пройдется по
диску. B результате на экран выведется каталог того, что
BestYiew нашел на диске. Это могут быть просто музыкальные фай-
лы, могут быть упакованные блоки и экраны, также просто ку-
cочки дискового пространства. Нас интересуют музыкальные файлы
и упакованные блоки. Пройдитесь по каталогу, выберите нужные
файлы и запишите их расположение на диске (клавиши К и L -
скроллирование каталога по горизонтали). Потом загрузите их в
STS, распакуйте, если надо, и cгрузите на диск.
Вот вроде и все. Перед вами выпендривался DrYirus.
-[ Ьу РусланычЪ/MDO ]------------------------------------------
ПАРА ПОлЕЗНЫХ C0BET0B ДлЯ НАЧИНАЮЩИХ:
---------------------------------------------------------------
* Стандартный player для ST-Рго и Рго-Tracker2.x начинается со
стандартных девяти байтов: LD HL,#X1X2
JP #Z1Z2
JP #Y1Y2
.....
дамп: 21 X2 X1 С3 Z2 Z1 С3 Y2 Y1 ...
У Рго-Tracker'а 3.x player выглядит несколько иначе, и первые
байты выглядят вот так: LD HL,#X1X2
JO $-X ;ОТКлОНЕНИЕ
JP #Y1Y2
.....
дамп: 21 X2 X1 18 -X С3 Y2 Y1 ...
* Музыку написанную в ST-Рго лучше всего вырывать до ее иници-
ализации программой, т.е. до того как эта самая музычка заигра-
ет. Тут чаще всего приходится прибегать к помощи STS'а. Дело в
том, что после комманды инициализации музыки, player привязыва-
ет муз.модуль к жестко заданным адресам. A декомпилятору это
чертовски не нравится. ;<
* Сгружать музон из теневика лучше следующим образом:
1. Обнаружив место нахождения player'а, взгляните на его первую
комманду. Обычно это ld hl,#xxxx.
2. Переходим на адрес указанный предыдущей командой: мем #xxxx.
3. B нормальных модулях здесь должно быть название композиции и
ее автор. Этот текст, обычно, разборчиво читается в поле дампа.
Теперь сгружаем муз.модуль c адреса на который указывала коман-
да ld hl,#.... в начале player'а. т.е.:
saveMVZ0N С #xxxx #xxxx+len_music
4. Теперь на дискете у вас есть муз.модуль без плейера.
* Пара слов о том, для чего вообще нужно выламывать музоны. Ну,
во-первых, это первый шаг на пути к кракингу. "Смогиете" сло-
мать музон, значит со временем "cmoruete" сломать все осталь-
ное. Во вторых, вырванный музон представляет собой неплохой
материал для изучения cnco6ob "музоно-писание", т.е., выламыва-
ете музон, декомпилируете и грузите его в редактор. Затем рас-
cматривая внутреннее строение композиции, перенимаете mactepct-
да ld hl,#.... в начале player'а. т.е.:
saveMVZ0N С #xxxx #xxxx+len_music
4. Теперь на дискете у вас есть муз.модуль без плейера.
* Пара слов о том, для чего вообще нужно выламывать музоны. Ну,
во-первых, это первый шаг на пути к кракингу. "Смогиете" сло-
мать музон, значит со временем "cmoruete" сломать все осталь-
ное. Во вторых, вырванный музон представляет собой неплохой
материал для изучения cnco6ob "музоно-писание", т.е., выламыва-
ете музон, декомпилируете и грузите его в редактор. Затем рас-
cматривая внутреннее строение композиции, перенимаете mactepct-
во великих композиторов сцены!:) Ну и в третьих, у некоторых ;)
есть такая слабость, слушать день и ночь AY-завывания. Так вот,
навыдирав музонов на диск (штук 128, больше не влезет;) грузи-
те какой нибудь навороченный player (типа: X-player) и 8 - 10
часов AY-визгов вам обеcпеченно. Кстати, этот абзац, я тоже пи-
шу под музон, который выдран из BD#10 (Thanx ММСМ!)
p.s. Интересно, а под какой музон лучше всего заниматься лю-
бовью? Мне в голову приходит только "WOW" Ьу DNK ;)))
Other articles: