Сейчас на форуме: Magister Yoda, site-pro, Rio (+6 невидимых) |
eXeL@B —› Крэки, обсуждения —› Помогите обойти защиту DOS-программы (286) для использования под эмулятором |
<< . 1 . 2 . 3 . >> |
Посл.ответ | Сообщение |
|
Создано: 06 сентября 2013 14:30 · Поправил: Diversant · Личное сообщение · #1 Добрый день, форумчане! Имеется программа, написанная по всей видимости в Turbo Basic. Исходников не имеется. Есть только .exe-файл. Запуск её возможен только на родном 286-железе. Понятное дело компьютер тот вот-вот отойдёт в мир иной. Прога умышленно привязана была к компу, то бишь к физическому железу. К чему конкретно - неизвестно. На оригинальном железе она живёт под DOS 5.0. На скрине из Insight есть вызов неких функций call 1A58. Вот на нем предположительно происходит что-то непонятное. Предположительно собака зарыта в CXEMA1.OVL, если этот .OVL подменить другим, то ресета не происходит, но прога естественно грузит подпрограмму, заложенную в подсунутый .OVL. Что показывает Insight: Кусок кода в IDA: На всякий случай скрин из дебаггера DosBox: Ну и сама прога: |
|
Создано: 08 сентября 2013 00:15 · Личное сообщение · #2 |
|
Создано: 08 сентября 2013 00:34 · Личное сообщение · #3 |
|
Создано: 08 сентября 2013 02:38 · Поправил: dosprog · Личное сообщение · #4 connect6, >>выводит какой-то прямоугольник (предположительно меню какое-то), но не ресетит. Это и есть зависание. Справа от прямоугольника должно быть меню, но его нет. Такая картина в WinXP DOS-BOX'e. (Пару раз ещё было в заголовке "З А Г Р У З К А" - поэтому, думаю, тут обычный глюк). В чистой DOS7 при этом происходит перезагрузка машины. (Не по jmp ffff:0000 и не по int19h). |
|
Создано: 08 сентября 2013 03:24 · Личное сообщение · #5 dosprog пишет: Что дальше: я бы посоветовал найти машину с конфигурацией, аналогичной той, где эта программа успешно работает, и, просто скопировав программу туда, попытаться запустить её. Вот если и в таком случае она работать не станет, только тогда уже имеет смысл говорить о защите и привязке к машине.(И я бы не спешил с имиджем диска, это может оказаться зря). По всем перечисленным пунктам всё отлично расписано, спасибо. Но.. кхм.. мягко говоря в 21м веке где можно найти "Конфигурацию, аналогичную той"? Вот, например даже под столом у меня 486 валяется. Но я думаю это даже несколько проще найти. С другой стороны на десктопе у меня даже флопповод не пашет и это как раз представляет проблему относительно копирования файлов на 486. |
|
Создано: 08 сентября 2013 03:34 · Личное сообщение · #6 |
|
Создано: 08 сентября 2013 03:50 · Личное сообщение · #7 |
|
Создано: 08 сентября 2013 03:58 · Личное сообщение · #8 |
|
Создано: 08 сентября 2013 04:26 · Поправил: connect6 · Личное сообщение · #9 Diversant пишет: Есть рекомендации по подобным downgrade-сайтам, где могут встретиться живые люди? |
|
Создано: 09 сентября 2013 03:16 · Поправил: dosprog · Личное сообщение · #10 Diversant, вот каталог файлов в архиве CXEMA.ZIP: Имя файла Размер -------------- --------- CXEMA.EXE 166214 CXEMA.FNT 4905 CXEMA.LIB 10683 CXEMA1.LIB 18903 CXEMA1.OVL 62214 CXEMA2.OVL 4096 <---этот файл явно повреждён (обрезан) CXEMA3.OVL 85227 CXEMA4.OVL 46266 CXEMA5.OVL 76910 CXEMA6.OVL 13601 Файл CXEMA2.OVL - это оверлей, отвечающий за пункт меню "ТЕКСТ". Файл аккуратно обрезан по адресу 1000h. На самом деле он должен быть значительно больше, в конце у него дожны находиться строки и их индекс. Впрочем, при рассматриваемом глюке этот оверлей, похоже, не загружается, но возможно всякое. Уточните, пожалуйста, на той машине, где у вас работает эта программа, размер КАЖДОГО из этих файлов. А также посмотрите, не болтается ли там где-нибудь файл CXEMA.HLP (хотя он, скорее всего, и не нужен). (Очевидная вещь, но запустите перед копированием CHKDSK.EXE для проверки файловой системы). На 486 + DOS v.5.0 ситуация при запуске абсолютно такая же, как и в остальных случаях. | Сообщение посчитали полезным: connect6, Abraham |
|
Создано: 09 сентября 2013 04:18 · Поправил: connect6 · Личное сообщение · #11 dosprog пишет: Уточните, пожалуйста, на той машине, где у вас работает эта программа | Сообщение посчитали полезным: Abraham |
|
Создано: 09 сентября 2013 08:20 · Личное сообщение · #12 connect6 пишет: Думаю у него тоже не работает и автор разводит всех, посмотрев и на его сообщения здесь В каком смысле "разводит"? На реальном 286 работает. В том то и проблема. Возможно из-за этого и возникли подозрения что стоит некая защита. А может и правда глюк. А что я могу сказать насчёт того, что прога не запустилась у человека на 386? Вот уж не знаю. Хммм.. пожалуй тогда может сделаю видос с фотика. Чем уж тогда ещё доказать? Насчёт клонирования дисков и т.д. - реально не тянет копаться в его нутрянке. Поскольку уже не хочется его без лишний надобности даже включать. Скажем, например, даже если я сниму образ Partition Magic-ом, то проблемно будет скидывать на современные компы. |
|
Создано: 09 сентября 2013 10:45 · Личное сообщение · #13 dosprog пишет: Уточните, пожалуйста, на той машине, где у вас работает эта программа, размер КАЖДОГО из этих файлов.А также посмотрите, не болтается ли там где-нибудь файл CXEMA.HLP (хотя он, скорее всего, и не нужен).(Очевидная вещь, но запустите перед копированием CHKDSK.EXE для проверки файловой системы).На 486 + DOS v.5.0 ситуация при запуске абсолютно такая же, как и в остальных случаях. Перепроверил все перечисленные файлы. Размеры совпадают. Насчёт CHKDSK.EXE - времена другие, но ещё в пятницу прогонял диск NDD. Возникло подозрение что винч сыпется уже бэдами. Собственно из-за чего и тихая паника что компу вот-вот настанет "карачун". Поскольку были высказаны сомнения в том что программа вообще способна запускаться, то выкладываю видео запуска программы из директории где расположена копия и перепроверены указанные файлы по размеру. |
|
Создано: 09 сентября 2013 11:14 · Личное сообщение · #14 Diversant пишет: Поскольку уже не хочется его без лишний надобности даже включать. Дорогой сэр, вы даже пофайлово его скопировать нормально не удосужились, а хотелку отрастили ого-го. Скопируйте уже все файлы НОРМАЛЬНО! вам тут уже писали: dosprog пишет: Файл CXEMA2.OVL - это оверлей, отвечающий за пункт меню "ТЕКСТ". Файл аккуратно обрезан по адресу 1000h. Потому все и падает на виртуалках. |
|
Создано: 09 сентября 2013 11:30 · Личное сообщение · #15 yagello При чём тут хотелка? Файлы, кстати говоря, были скопированы мной лично с того компа ещё весной через COM-порт. Сегодня я размеры их перепроверил только что. Именно из той директории, что на видео. Или тут уже верить в то что в процессе их копирования на современные компы "биты искривились", как в одном давнем рассказе про "Нашего BOFH"? В конце концов я даже только что перепроверил файлы, скопированные посредством дискеты на комп неделю назад (когда трудности возникли с использованием проги на родном железе, но это оффтоп) с архивом, созданным по весне. Сравнил в Beyond Compare. упомянутые файлы различий не имеют. |
|
Создано: 09 сентября 2013 14:01 · Поправил: dosprog · Личное сообщение · #16 Diversant, не обижайтесь, пожалуйста. Видео вполне убедительное. Почему я предложил прежде отыскать 286 и сомневался насчёт 486 (что подтвердилось) - так это потому, что у 486 реакция на особые случаи выполнения программы уже аналогична современным процессорам. Не то 286. В нём есть несколько подлых штучек, которые прекрасно работают на нём жё, но категорически не прокатывают на 386+. Например, инструкции <lock> без обращения к памяти или явление "заворачивания" сегмента, когда младший байт 2-байтного слова находится по адресу seg:FFFFh, а старший - по адресу seg:0000h. И то и другое работает на 286, но вызывает исключение на 386+ , а уж обработчик исключения передаёт управление на адрес FFFF:0000, что вызывает перезагрузку в реальном режиме или мёртвое зависание <hlt,jmp $-2> в DOS-окне Windows XP. В Win98 - такое окно тут же закрывается, что сходно с реальным режимом. Именно это и происходит с рассматриваемой программой. Если она отработает на "посторонней" 286, то станет ясно хотя бы что искать (И это будет практически безнадёжный вариант). И кстати, этих тяжёлых ошибок генерируется в модуле cxema1.ovl минимум две, да немеряно тех, которые обрабатываются басиковой RTL и не приводят к зависанию, а только к аварийному завершению программы. Думаю, так... |
|
Создано: 09 сентября 2013 14:17 · Личное сообщение · #17 dosprog пишет: не обижайтесь, пожалуйста.Видео вполне убедительное. Ничего страшного. К Вам лично претензий не имею, даже наоборот благодарен за уделённое вопросу внимание. На всякий случай скину ссылку (хотя выше уже была на тот форум), человек и на 286 пытался (как я понял) запустить. К сожалению программа не взлетела. |
|
Создано: 09 сентября 2013 14:32 · Поправил: dosprog · Личное сообщение · #18 )) А я как раз только оттуда и хотел уже править свой предыдущий коммент. Хорошо, что удалось отбросить вариант с "посторонней" 286. Выберу время - посмотрю, что там может быть ещё. Сразу скажу, что в привязку к секторам на диске я не верю - такая привязка слетает при первой же дефрагментации и требует повторной привязки, а у вас этого, судя по всему, не наблюдалось. |
|
Создано: 09 сентября 2013 14:39 · Поправил: connect6 · Личное сообщение · #19 Тогда хорошо порпробовать запустить программу с дискету, заранее выключив винт либо в setup-e, либо выключив его шлейф-кабель. Если прога запустится, то образ диска не будет нужен. | Сообщение посчитали полезным: dosprog |
|
Создано: 09 сентября 2013 15:22 · Поправил: dosprog · Личное сообщение · #20 connect6, естественно. С этой же загрузочной дискеты загрузить и систему. Следующий ход при неудаче (если программа нормально отработает с дискеты) -- снятие дампа отработавшей нормально программы и выкладывание его сюда в виде атача (запакованный, он не превысит 500Кб лимит). | Сообщение посчитали полезным: Diversant |
|
Создано: 09 сентября 2013 15:52 · Поправил: Diversant · Личное сообщение · #21 dosprog пишет: Следующий ход при неудаче (если программа нормально отработает с дискеты)-- снятие дампа отработавшей нормально программы и выкладывание его сюда в виде атача (запакованный, он не превысит 500Кб лимит). Встречный вопрос - чем снимать дамп, загрузившись с дискеты? Верно ли я предполагаю что может не хватить места на ней для записи дампа? И уж больно ненадёжный способ - писать на дискету, но тут, видимо, другого выхода не будет. UPD загрузиться с дискеты не удалось. Проблема в том что древний БИОС не даёт поставить 3" флопповод как A:, а грузиться с B: не хочет. Вроде и ставлю как А: - не срабатывает. Помню, когда был мелкий, и у меня жил 386sx16, была такая проблема. |
|
Создано: 09 сентября 2013 16:00 · Личное сообщение · #22 |
|
Создано: 09 сентября 2013 16:02 · Поправил: Diversant · Личное сообщение · #23 |
|
Создано: 09 сентября 2013 16:08 · Личное сообщение · #24 |
|
Создано: 09 сентября 2013 16:15 · Личное сообщение · #25 Старый БИОС, они достаточно капризны были в загрузке. Но.. тут свежие новости! По ходу дела прога видимо к БИОСу и привязана! |
|
Создано: 09 сентября 2013 16:52 · Поправил: dosprog · Личное сообщение · #26 )) С чем вас и поздравляю. )))хотя... Хотя. На минуточку предположил, что этот Tronix просто решил поприкалываться и выложил скриншот, который получен после подмены оверлеев. Короче, полагаю, нужно сделать две вещи: 1) На родной машине загрузиться с 1.2Мб дискеты с отключенным HDD и запустить прогу оттуда. Если она отработает нормально (нет привязки к HDD), тогда: 2) Запустить её с HDD и при *работе*главного*меню* сдампить всю conventional память (1Мб) Этот файл запаковать и на всеобщее обозрение плиз. |
|
Создано: 09 сентября 2013 19:48 · Поправил: Tronix · Личное сообщение · #27 dosprog Делать мне нечего как фейками заниматься. Не на ксекапе все-таки, да и лет уже не 16 Кому хочется поглазеть на чудо-прогу в действии, собрал уже настроенный комплект: Эмуль - PCem. Домашняя страница: | Сообщение посчитали полезным: dosprog, Diversant |
|
Создано: 09 сентября 2013 20:58 · Личное сообщение · #28 |
|
Создано: 09 сентября 2013 20:59 · Личное сообщение · #29 |
|
Создано: 09 сентября 2013 21:07 · Поправил: dosprog · Личное сообщение · #30 ) Да, вот только с работы вернулся, думал поковыряюсь, ан нет. ооопс - на <Полигоне призраков>: >>Пропатчил 74 -> EB по смещению 0xA5AF в cxema1.ovl - запустилась и под XP. diamond - молодец! -- Это я пропатчил ещё в поза-вчера. И ещё многое. Только после этого программа не стала зависать, а стала тихо завершаться. Об этом я писАл ранее. Ничего не поменялось - программа не работает. Пропатчено не то место, что нужно. А вот на васме - молодцы, то, что надо. Сделали привязчик к дате биоса, сохраняющий данные в файле CXEMA.FNT. Ну, пусть и здесь этот окончательный архив сохранится: (Но файл cxema2.ovl здесь повреждён, текст не вставляется, а программа аварийно завершается) 5482_09.09.2013_EXELAB.rU.tgz - CXEMA_OK.RAR |
|
Создано: 10 сентября 2013 08:00 · Личное сообщение · #31 |
<< . 1 . 2 . 3 . >> |
eXeL@B —› Крэки, обсуждения —› Помогите обойти защиту DOS-программы (286) для использования под эмулятором |
Эта тема закрыта. Ответы больше не принимаются. |