Medstrax ну видишь - ты и сам уже понял, что речь идет о продукте класса вмваре такие фишки на коленках не собираются MAPTbIH скока тебе лет? чё ты уже сделал своими руками? слышал такую формулу - от простого к сложному?
В принципе весчь видится попроще чем варя. Все-таки эмулить платформу не надо. Но труд все равно громадный. Идея родилась еще году в 95-96, когда впервые про айс услышал. Я кстати тогда думал что айс именно так и работает Но реализовать руки не дошли, да и не дойдут уже никогда. И по всей видимости ни у кого не дойдут. Такие весчи на энтузазизме не пишутся.
Я чего-то не пойму, для чего такая ископаемая ихтиология нужна - dos, реальный режим, прерывания 13h и 21h, таблица векторов, резиденты? Мне кажется, сейчас Винду ставят даже на все станки и приборы с ЧПУ, банкометы тоже под виндой работают... Этож мля конец 80х начало 90х, питер нортон блаблабла...
Ладно, уговорили - не буду этим заниматься... Тут, кстати, идея пришла в голову: "Как отразиться на моей жизни последующее нажатие клавиш Shift-Delete на выделенной папке MASM32?"... P.S. Вопрос: А где тут на форуме кнопочка закрытия темы?
Не такая уж и ископаемая. На сегодняшний день адекватных инструментов нет. К примеру есть необходимость отлаживать обработчик SMI#. Или гипервизор. Или какую-нибудь долбаную защиту/руткит, которая скачет между RM/PM/Unreal. Что делать будешь?
persicum Ответ, наверное, один - часто юзают чтобы научить асму во всяких учебниках и в институтах преподают (насколько часто сейчас - не знаю, знаю что бывает. и не редко). Ну а свое мнение по этому поводу я, пожалуй, пропущу. Medstrax Что-то ты разошелся немножко с описанием отладчика, который топикстартер будет писать лет пять SII Ну мало ли.. может ему загрузчик доса приперло отладить =) Правда и до такого инструмента ему, мне кажется, далековато. MAPTbIH GDT/LDR/DRx в реальном режиме ? о_0 Или ты последующие действия решил в V86 обернуть? Что-то ни один из вариантов мне не кажется подходящим для того, кто только что "в таблице векторов прерываний свои адреса вставлял для их перехвата и резидентные пакостные штуки всякие делал" =/
Medstrax Ошибаетесь, надо. Если отлаживаемая программа выполняет in или out, адресованный некоему порту, что Вы будете делать? Просто дать её выполнить нельзя: отлаживаемая прога не подозревает, что она работает не на реальном железе, и запросто может "убить" отладчик подобными действиями, причём задолго до попытки перехода в защищённый режим. Или те же прерывания BIOS: их надо эмулировать, а не передавать на исполнение реальному BIOS. MAPTbIH Заниматься действительно не стоит: очень уж сложная задача, хотя, в общем-то, подъёмная (если посвятить ей не один год и не пытаться объять необъятное типа поддержки всего и вся). Но это вообще-то не значит, что с МАСМом обязательно поступать столь жестоким образом
Естественно может. Но эмулить все равно считаю неправильным. Код должен исполняться на реальном железе в этом вся фишка. Если код приводит к "убийству отладчика", то здесь я вижу два решения. 1.Выцеплять такой код ручками. 2.Предусмотреть возможность настройки эмуляции определенных девайсов. В принципе кода, способного уронить отладчик с помощью манипуляций с девайсами может быть не так много. Первое что на ум приходит - кейборда. При заблокированной кейборде с отладчиком особо не поработаешь Далее таймер. Не знаю как сейчас, а раньше один из его каналов отвечал за refresh памяти. Манипуляции с ним тоже могут привести к краху. Далее DMA. Чтение в режиме DMA к примеру с дискетки в область памяти где расположен код отладчика, тоже все убьет. Что-то сразу ничего больше в голову не приходит. Резюмируя, скажу - если код активно будет бороться с отладчиком, используя различные девайсы - тут только ручками. А обычный код - пусть пишет/читает порты напрямую, процент стандартных операций с девайсами, способных уронить отладчик, очень невелик. Речь не идет о том, чтобы создать абсолютно непробиваемую вещь. ЗЫ Про контроллер прерываний забыл (20-21h, и второй, не помню порты). А его вообще сейчас юзают интересно?
Сейчас один самый важный вопрос: где кнопочка для закрытия темы? Или это у модеров просить надо? Где-то я слышал такую фразу: если человек захотел сделать какую-либо вещь не в корыстных целях, а в целях самообразования и совершенствования своего разума, то он это сделает, рано или поздно, но сделает. Как тему закрыть?!