Нужна Ваша Помощь!

Всё что связано с БК-0010/11М
Ответить
Аватара пользователя
xttx
Активный участник
Сообщения: 38
Зарегистрирован: 01 янв 1970, 03:00
Контактная информация:

Re: Нужна Ваша Помощь!

Сообщение xttx »

 
ZonoID

А не мог бы ты помочь убрать из ПИРАТов пароль? Трассировку я уже сделал, адрес нашел (см. выше) но ассемблера БК не знаю, и отладчиками евойными пользоваться не умею. А игра занимает 30кб и при загрузке в любой из доступных мне отладчиков либо вылетала (если грузил с 1000 адреса), либо запускалась (если адрес не трогал) :(

А то получаеться что играть можно только на одном единственном эмуляторе, и то, только избранным (кто смог в keyboard.layout добавить кнопку "СУ"). Почему авторы эмуляторов не позаботились об этой кнопке - вопрос, однако...

Ссылка:
BBcode:
HTML:
Скрыть ссылки на пост
Показать ссылки на пост

Аватара пользователя
ZonoID
Участник
Сообщения: 13
Зарегистрирован: 01 янв 1970, 03:00
Контактная информация:

Re: Нужна Ваша Помощь!

Сообщение ZonoID »

 
ZonoID

А не мог бы ты помочь убрать из ПИРАТов пароль?

Трассировку я уже сделал, адрес нашел (см. выше) но ассемблера БК не знаю, и отладчиками евойными пользоваться не умею. А игра занимает 30кб и при загрузке в любой из доступных мне отладчиков либо вылетала (если грузил с 1000 адреса), либо запускалась (если адрес не трогал) :(

А то получаеться что играть можно только на одном единственном эмуляторе, и то, только избранным (кто смог в keyboard.layout добавить кнопку "СУ"). Почему авторы эмуляторов не позаботились об этой кнопке - вопрос, однако...
Даже не знаю... Времени совсем нет.

Глянуть могу, объяснить могу. Но разбираться с эмуляторами просто некогда.

Давай так:

1. Выложи кусок кода, я посмотрю, потом скажу что дальше.
либо вылетала (если грузил с 1000 адреса), либо запускалась (если адрес не трогал)
2. Это называлось "автозапуск" ;)

С адреса загрузки (0 - 1000 системная область, далее ОЗУ) обычно шел повторяющийся байт.

Примерно 733 (766) точно не помню ячейка отвечала за адрес запуска. Когда заканчивалась загрузка программы, то автоматически происходил запуск программы, с адреса находящегося в 766 ячейке.

Поэтому, посмотри адрес загрузки.

Загрузи программу в 1000 адрес и посмотри отладчиком что там внутри, от адреса загрузки до 1000 адреса.

Потом, эту часть можно просто "отрезать". Что касается 30 Кб. То скорее всего, там картинка (заставка) грузится в экранную область, тоже можно "отрезать" (знать бы чем? У нас никаких прог не сохранилось, а перелопачивать все что есть на сайте и пробовать через разные эмуляторы - долго.)

Определив адрес запуска, выведи оттуда часть исходника (можно прямо в машкоде, только неудобно смещения высчитывать...)

3. Кроме всего, можешь пройтись трассировщиком и выписать последовательно весь код, я скажу где и что поправить, но вот как ты это проделаешь?

Ссылка:
BBcode:
HTML:
Скрыть ссылки на пост
Показать ссылки на пост

Аватара пользователя
xttx
Активный участник
Сообщения: 38
Зарегистрирован: 01 янв 1970, 03:00
Контактная информация:

Re: Нужна Ваша Помощь!

Сообщение xttx »

 
ZonoID
Штука в том, что в коде я вобщем-то вроде разобрался:
Как я уже писал выше:
033602: 032737 000100 177716 BIT 100,#177716 - тут ждём нажатия клавиши
033610: 001374 BNE 033602 - если клавиша не нажата возвращаемся на предидущую строку
033612: 013700 177662 MOV #177662,R0 - помоему запихиваем нажатую клавишу в R0
033616: 004767 000246 JSR PC,34070 - переходим к подпрограмме по адресу 34070, в этой подпрограмме,
происходят шаманские манипуляции с регистрами которые я понять не смог, и где кнопка сравниваеться и с чем тоже не нашёл
(если что не так поянл - поправь, пожалуйсто).
При нажатии нажатии на нужную кнопку (СУ+G) R0 становиться равным 000007, т.е. по сути надо просто заменить
033612: 013700 177662 MOV #177662,R0
на
033612: 013700 000007 MOV 000007,R0
Но я не могу найти как и чем! Как я уже говорил - программа не влазит не в один дебаггер. Я знаю что многие программы больше 15ю5кб просто грузят в экран картинку, но тут не то. Сразу после загрузки программа просит пароль (автозапуск) в текстовом режиме, а уже потом, появляеться картинка. Как оно это делает - вообще не представляю. В дебаггер с 1000 адреса не влезает. Обрезать - идея хорошая, только чем??? Вообще мне пришла мысль тупо обрезать файл в досе... Загрузить, поменять что надо, записать, а потом просто сделать дифф средствами винды..... хмм... Дифф можно было бы сделать даже из файла эмуляторного сохранения... только ни в одном эмуляторе нет дебаггера которым можно было бы что-то изменить. Был-бы рад быть в этом неправым....

Ссылка:
BBcode:
HTML:
Скрыть ссылки на пост
Показать ссылки на пост

Аватара пользователя
ZonoID
Участник
Сообщения: 13
Зарегистрирован: 01 янв 1970, 03:00
Контактная информация:

Re: Нужна Ваша Помощь!

Сообщение ZonoID »

 
ZonoID
Штука в том, что в коде я вобщем-то вроде разобрался:
Как я уже писал выше:
033602: 032737 000100 177716 BIT 100,#177716 - тут ждём нажатия клавиши
033610: 001374 BNE 033602 - если клавиша не нажата возвращаемся на предидущую строку
033612: 013700 177662 MOV #177662,R0 - помоему запихиваем нажатую клавишу в R0
033616: 004767 000246 JSR PC,34070 - переходим к подпрограмме по адресу 34070, в этой подпрограмме,
происходят шаманские манипуляции с регистрами которые я понять не смог, и где кнопка сравниваеться и с чем тоже не нашёл
(если что не так поянл - поправь, пожалуйсто).
При нажатии нажатии на нужную кнопку (СУ+G) R0 становиться равным 000007, т.е. по сути надо просто заменить
033612: 013700 177662 MOV #177662,R0
на
033612: 013700 000007 MOV 000007,R0
Все вроде правильно (на ошибку в синтаксисе асемблера, закроем глаза, MOV @#177662,R0 MOV #7,R0)
Тебе нужен отладчик, маленький и коротенький. Задача изменить 3 байта и сохранить файл.
Были отладчики когда-то, Mirage, там был один работающий в режиме РП (сам загружался в экранное ОЗУ). И еще один был (не помню название) который можно было грузить в любой адрес.
Еще был отладчик МСТД (все это должно работать в эмуляторах) работающий с адреса 140000.
(Это пожалуй именно то, что тебе нужно)
И по моему есть встроенные отладчики в самих эмуляторах.
Думаю, при желании, ты сам разберешься в этой проблеме. Удачи!
ЗЫ. Остальное написано очень сумбурно, трудно понять.
Чем отрезать автозапуск? Раньше для этого использовались "копировщики".
Это был целый класс программ, которые различными извратами копировали "некопируемое".
Например, сами перемещали "кусок" своего алгоритма для копирования в системную область и грузили программу с 1000 по 120000 адреса.
Поэтому, и стал применятся автозапуск, программа увеличивалась еще на немного, да плюс иногда записывалось "пару лишних байт" ПЗУ... (их можно проигнорировать) Вообщем, тогда было много извратов, для "защиты от копирования"...
Потом появился Help7.
Все эти проги могли как "пришить" автозапуск, так и "отшить".
Во всяком случае, вручную "отрезать" можно, нужно только правильно высчитать длинну автозапуска.
Последний раз редактировалось ZonoID 18 янв 2010, 13:17, всего редактировалось 1 раз.

Ссылка:
BBcode:
HTML:
Скрыть ссылки на пост
Показать ссылки на пост

Аватара пользователя
xttx
Активный участник
Сообщения: 38
Зарегистрирован: 01 янв 1970, 03:00
Контактная информация:

Re: Нужна Ваша Помощь!

Сообщение xttx »

 
Вобщем на данный момент вопрос такой:

Игра соправождаеться полноэкранной картинкой и занимает ВСЮ память с 732 адресса и до предела, включая и экранную. Поэтому даже отладчики запускающиеся из видеопамяти не помогают.

Чем отрезать картинку ИЛИ чем (каким отладчиком) можно загрузить в память часть программы, до картинки.

1). Mirage (даже экранный), Грот, OSxxxx - Все эти отладчики спотыкаються на столь длинной программе, вылетают с ошибкой (собственной или ошибкой эмулятора), и если загрузить программу С указанного адреса там предусмотрено, то загрузить ДО адреса N ни один из них не позволяет.

2). С копиравщиками проблема таже. Некоторые умеют вырезать картинки (хотя я и таких-то не нашёл... Помню был, кажеться UNIC, или Longcopy для длинных файлов... Однако не на столько длинных!), но они так-же сначала пытаються загрузить программу целиком, чего у них и не выходит.

3). Help7 - не разобрался. Изначально работает только две комманды - R (читать с магнитофона) и Е (exit). Остальные просто игнорируються. При нажатии на R, освобождаеться экран и внизу рисуеться статусная строка: имя, адрес, длинна. И всё. Магнитофон он не запрашивает. А при попытке загрузить файл через меню эмулятора (а я попробовал все эмуляторы), ничего не происходит.

4). Получилось отредактировать в отладчике в МСТД. Но при записи модифицированной проги на магнитофон (т.е. в файл .bin) там происходит: во первых смещение адресов (хотя и адрес старта и длинну указывал правильно, проверял десять раз), во вторых второй символ всех операндов преобразуеться в двойку: из #177662 получаеться #127662, из 000007 -> 020007... Это происходит даже если ничего не менять а просто загрузить и записать.



Вопрос остался открытым: Чем отрезать картинку ИЛИ чем (каким отладчиком) можно загрузить в память часть программы, до картинки.

PS. Или как правильно записать программу отладчиком МСТД.



Помогите новичку...

Заранее спасибо!

Ссылка:
BBcode:
HTML:
Скрыть ссылки на пост
Показать ссылки на пост

Аватара пользователя
Admin
Активный участник
Сообщения: 682
Зарегистрирован: 14 май 2009, 22:42
Контактная информация:

Re: Нужна Ваша Помощь!

Сообщение Admin »

 
Вобщем на данный момент вопрос такой:

Игра соправождаеться полноэкранной картинкой и занимает ВСЮ память с 732 адресса и до предела, включая и экранную. Поэтому даже отладчики запускающиеся из видеопамяти не помогают.

Чем отрезать картинку ИЛИ чем (каким отладчиком) можно загрузить в память часть программы, до картинки.

1). Mirage (даже экранный), Грот, OSxxxx - Все эти отладчики спотыкаються на столь длинной программе, вылетают с ошибкой (собственной или ошибкой эмулятора), и если загрузить программу С указанного адреса там предусмотрено, то загрузить ДО адреса N ни один из них не позволяет.
Можно попробовать через PARADISE, он и ассемблер и отладчик всё в одном. У меня получилось засунуть в него pirat-r даже с картинкой. По ссылке скачаешь образ paradise, он без загрузчика, лучше всего вытащи из него папку с отладчиком и запускай через обычную мониторную систему, т.к. если запустить под, например ANDOS 3.30, отладчик начнёт искать файлы на образе диска, а не в файловой системе компа. Все манипуляции делал через эмулятор Калмыкова 3.0, а не 2.6 это важно, т.к. 2.6 почему то не позволяет сохранять файлы на диск. В эмуляторе запускаешь БК0010 + 32 Кб расширенной памяти, расширенная память начинается с адреса 120000, туда и грузишь отладчик

М(адрес загрузки) например 120000

ИМЯ?

? S(адрес загрузки)

В отладчике

LO (enter) выбираешь файл

загрузится файл и картинка поверх отладчика, переходишь в режим ассемблера AS

слева в строке адреса печатаем нужный 033612 и переходи на него, делаем изменения MOV #7,R0, а дальше самое интересное это сохранение, выходим из режима ассемблера и пробуем сохранить SA (начальный адрес), (длина),(имя) - вот с этим у меня проблема, может ты разберешься ;) После сохранения в папке эмулятора UserSaves будет твой файл, в эмуле 2.6. почему то такое сохранение не проходит.

Попробуй такой вариант, может чем поможет.
Последний раз редактировалось Admin 03 авг 2012, 16:52, всего редактировалось 1 раз.

Ссылка:
BBcode:
HTML:
Скрыть ссылки на пост
Показать ссылки на пост

Аватара пользователя
xttx
Активный участник
Сообщения: 38
Зарегистрирован: 01 янв 1970, 03:00
Контактная информация:

Re: Нужна Ваша Помощь!

Сообщение xttx »

 
Ох не всё так просто :(

У меня получилось записать файл, но картинка была запорчена. Вместо неё естественно вставилось изображение самого PARADISE (он же в этот момент был на экране)... Ну вроде, казалось-бы, не большая беда... Так не хочет он загружаться без своей картинки... Не знаю почему... :(

Пробовал загрузить дебаггер в 1000, а игру в 120000 в режиме расширенного озу. Нехватает памяти.. Это только написано что там +32к, а на деле, я документацию по эмулятору почитал, там получаеться со 120000 адреса ещё 8+8+7.5. 32 - никак не получаеться :(



Добавлено:

Попытки загрузить с отладчик и игру с диска под БК0011М (где вроде как должно быть 128к памяти), тоже ничего не дали. Впрочем я не знаю как там память устроена.... При загрузке с адреса 120000 он просто виснет. При загрузке с адреса игры - опять портиться картинка.
Последний раз редактировалось xttx 21 янв 2010, 10:23, всего редактировалось 1 раз.

Ссылка:
BBcode:
HTML:
Скрыть ссылки на пост
Показать ссылки на пост

Аватара пользователя
xttx
Активный участник
Сообщения: 38
Зарегистрирован: 01 янв 1970, 03:00
Контактная информация:

Re: Нужна Ваша Помощь!

Сообщение xttx »

 
YAHOOOO!!!!!!!!

Приставил ему его дурацкую картинку в виндовом HEX редакторе!
Теперь пароль к игре - это любая кнопка. Проверено: работает на всех эмуляторах.
Все лавры ZonoID и Zolotoy

Zolotoy
Ты мне буквально расписал не то что как, а фактически на какие кнопки надо нажать что бы внести модификацию. Так что можешь смело добавить cracked by zolotoy :) А я б долго ещё мучился...

PS. Файл в аттаче.
Вложения
PIRATE_cracked.rar
(12.02 КБ) 181 скачивание
PIRATE_cracked.rar
(12.02 КБ) 181 скачивание
Последний раз редактировалось xttx 21 янв 2010, 12:29, всего редактировалось 1 раз.

Ссылка:
BBcode:
HTML:
Скрыть ссылки на пост
Показать ссылки на пост

Аватара пользователя
Admin
Активный участник
Сообщения: 682
Зарегистрирован: 14 май 2009, 22:42
Контактная информация:

Re: Нужна Ваша Помощь!

Сообщение Admin »

 
YAHOOOO!!!!!!!!

Приставил ему его дурацкую картинку в виндовом HEX редакторе!

Теперь пароль к игре - это любая кнопка. Проверено: работает на всех эмуляторах.
Отлично работает :lol:
Zolotoy

Ты мне буквально расписал не то что как, а фактически на какие кнопки надо нажать что бы внести модификацию. Так что можешь смело добавить cracked by zolotoy :) А я б долго ещё мучился...
Не преувеличивай моей заслуги, я только направил в нужном направлении, всё остальное ты сделал сам ;)

Ссылка:
BBcode:
HTML:
Скрыть ссылки на пост
Показать ссылки на пост

Аватара пользователя
ZonoID
Участник
Сообщения: 13
Зарегистрирован: 01 янв 1970, 03:00
Контактная информация:

Re: Нужна Ваша Помощь!

Сообщение ZonoID »

 
Приставил ему его дурацкую картинку в виндовом HEX редакторе!
Скорее всего проверяется какой-то конкретный байт (или несколько байт) в экранном ОЗУ после загрузки на соответствие или даже контрольная сумма всей области, если поковырятся, то можно и "отшить" заставку.
Все лавры ZonoID и Zolotoy
Да ну... кроме тупых советов от меня никакой помощи и не было.

Ссылка:
BBcode:
HTML:
Скрыть ссылки на пост
Показать ссылки на пост

Ответить

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя