Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: программирование на языке Assembler


Информационный Канал Subscribe.Ru

RusFAQ.ru: программирование на языке Assembler

Выпуск № 476
от 24.01.2003, 18:10

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 2488
Отправлено ответов: 7530
Активность: 302.6 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Bob Johnson
Статус: Профессиональный
Общий рейтинг: 152.58
URL: Программирование
[Подробней >>]
Ayl
Статус: Профессиональный
Общий рейтинг: 117.82
[Подробней >>]
baldr
Статус: Профессиональный
Общий рейтинг: 114.02
URL: Сайт об ОС DOS. Всем, кто любит эту ОС!
[Подробней >>]
 
Igoryk
Статус: Опытный
Общий рейтинг: 140.45
URL: IgorykSoft
[Подробней >>]
LIFO
Статус: Профессиональный
Общий рейтинг: 118.77
URL: наш сайт
Телефон: 8 01710 24758
[Подробней >>]
masquer
Статус: Профессиональный
Общий рейтинг: 146.54
[Подробней >>]
 
Sensey
Статус: Профессиональный
Общий рейтинг: 121.49
URL: Страничка рассылки по Паскалю
Телефон: +38 (0572) 41-76-04 д.
[Подробней >>]
Топор
Статус: Начальный
Общий рейтинг: 115.21
[Подробней >>]
DiGiT[old]
Статус: Опытный
Общий рейтинг: 108.17
[Подробней >>]
 
Broken Sword
Статус: Профессиональный
Общий рейтинг: 126.71
URL: моя рассылка по Protected Mode
[Подробней >>]
Maverick
Статус: Профессиональный
Общий рейтинг: 139.47
URL: Задачи по ассемблеру
Телефон: 89039415024 (BeeLine GSM)
[Подробней >>]
Andrew Vext
Статус: Опытный
Общий рейтинг: 107.43
[Подробней >>]
 
Eugene
Статус: Опытный
Общий рейтинг: 109.1
URL: мощный файловый архив
[Подробней >>]
vitya
Статус: Профессиональный
Общий рейтинг: 108
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 2445. Доброго времени суток, уважаемые эксперты! Подскажите, пожалуйста, способ перехватить int 21 в DOS о... (ответов: 4)
Вопрос № 2446. Доброе время суток , эксперты ! ******************************* 1. Получил ваше мнение о книге Каспе... (ответов: 4)
Вопрос № 2447. Здравствуйте....!!! Хочу спросить так как совсем запутался.... Короче вот есть винт со секторами, го... (ответов: 1)
Вопрос № 2448. Здравствуйте господа эксперты. Есть такая ситуация: например пишу прогу на VC++, ставлю в неё ассемб... (ответов: 5)
Вопрос № 2449. Всем привет! Вот вы Юрова опускаете... ведь рулезные книги, с них не плохо начинать, особенно если ... (ответов: 5)
Вопрос № 2450. Здравствуйте Ayl. >Какие функции винды? Почему они должны быть вызваны? Мой ход мыслей: как вы уже о... (ответов: 1)
Вопрос № 2452. Господа! Извините, что не совсем по теме, но не подскажет ли мне кто-нибудь книги или хорошие ссылки... (ответов: 5)

Вопросов: 7, ответов: 25


 Вопрос № 2445

Доброго времени суток, уважаемые эксперты! Подскажите, пожалуйста, способ перехватить int 21 в DOS окне Windows98.Это нужно с целью проконтролировать что и сколько читает(пишет) DOS-приложение, запущенное под Win98. Большое спасибо за ответ.



Вопрос отправлен: 19.01.2003, 10:10
Отправитель: Вадим

[Следующий вопрос >>] [Список вопросов]

Отвечает Bob Johnson

Приветствую Вас, Вадим!
Перехватить его можно обычным образом, как и под дос. Но действовать это будет только на то дос-окно, где int 21 было перехвачено.


Ответ отправлен: 19.01.2003, 22:00
Отправитель: Bob Johnson


Отвечает Ayl

Здравствуйте, Вадим!
А типа что мешает? Так же, как и в "голом" DOS'е. Либо напрямую через таблицу векторов, либо с помощью функций 35h (прочитать) и 25h (записать) вектор прерывания.


Ответ отправлен: 20.01.2003, 12:14
Отправитель: Ayl


Отвечает baldr

Добрый день, Вадим!
Если нужно проконтролировать только файлы, то можно воспользоваться какой-нибудь
программой вроде WinSight или Process viewer, которые позволяют вести мониторинг обращения
не только к файлам, а и к реестру, dll и пр... Кажется, в поставке с Norton utilities была такая?


Ответ отправлен: 20.01.2003, 00:04
Отправитель: baldr


Отвечает Igoryk

Доброе время суток, Вадим!
Если есть возможность запуска резидента, то можно перехватить. Если же просто ни с того ни с сего, то в ряд ли.

Ответ отправлен: 20.01.2003, 15:06
Отправитель: Igoryk


 Вопрос № 2446

Доброе время суток , эксперты !
*******************************
1. Получил ваше мнение о книге Касперского.
Хотел попросить - у кого есть скинуть мне
на мыло(brothers@atnet.ru) файлы-примеры,а то у меня только
один doc-файл с книгой.
2. Дошел в книге Склярова "Программирование на
языке ассемблера" до 6 главы "Обьектно-ориентированный
ассемблер",прочитал пару листов - вопрос : ООП на асме
кто-нибудь реально пользуется ?



Вопрос отправлен: 19.01.2003, 13:09
Отправитель: IceWINteR (brothers@atnet.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает LIFO

Здравствуйте, IceWINteR!
О какой именно книге:
Техника сетевых атак или техника хакерских атак.
Ответь мне на eugene_p@mail.ru
я вышлю.

Ответ отправлен: 19.01.2003, 20:59
Отправитель: LIFO


Отвечает masquer

Здравствуйте, IceWINteR!
2. Было такое обсуждение с полгода назад. ООП не пользуюсь, а на ассемблере - это вообще нонсенс. Зачем мне нагружать себя дополнительной информацией об ООП? И в дополнение на один из ответов - ну я пишу сложные программы на асме, и без всяких ООП, и ничего...

Ответ отправлен: 21.01.2003, 12:41
Отправитель: masquer


Отвечает Sensey

Доброе время суток, IceWINteR!
2. Я нет. :)
И таких не знаю пока. Может с других ответов узнаю :)))


Ответ отправлен: 22.01.2003, 12:26
Отправитель: Sensey


Отвечает Igoryk

Добрый день, IceWINteR!
2. ООП нужен там, где он нужен! В ряд ли кто-нибудь пишет на ассемблере сложнейшие программы с ООП. Но на мой взгляд: когда все упорядочено, то легче программировать и понимать программу.

Ответ отправлен: 20.01.2003, 15:06
Отправитель: Igoryk


 Вопрос № 2447

Здравствуйте....!!!
Хочу спросить так как совсем запутался....
Короче вот есть винт со секторами, головками , цилиндрами. Вот хочу спросить инфа записывается в секторы... как она там выглядит т.е. записывается только 1 и 0 или нет...
И второе если я буду записывать в секторы начиная с 1 по конец - 0 диск форматнется ....?? может дадите пример форматирования A:
p.s. не ругайтесь если совсем чушь пропорол, а лучше объясните



Вопрос отправлен: 19.01.2003, 23:51
Отправитель: lamachok

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Приветствую Вас, lamachok!
Что-то я не понял, что значит, как она выглядит? По крайней мере точно никаких 0 и единиц там нет. На диске образуются области намагничивания. 2-х видов. Один принимают за 0, второй - за 1.
2. Не форматнется. Ты просто затрешь старую информацию новой. Форматирование диска - это логическое разделение дорожки на сектора. При форматировании не только в каждый сектор заносится пустое значение (обычно, F6) но и заполняются межсекторные промежутки. Для форматирования посмотри функцию 5 прерывания 13h

Ответ отправлен: 20.01.2003, 12:26
Отправитель: Ayl


 Вопрос № 2448

Здравствуйте господа эксперты.
Есть такая ситуация: например пишу прогу на VC++, ставлю в неё ассемблерные вставки, в которых присутствуют команды in, out.
Вопрос: при обращении к портам будут вызваны функции виндоус?
Если да, примерно, насколько это загрузит машину больше чем её загружает простые in и out? (точных оценок не нужно, ответте пожалуйста что-нибудь типа: существенно/несущественно)
Большое спасибо.



Вопрос отправлен: 20.01.2003, 11:28
Отправитель: Алексей

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Приветствую Вас, Алексей!
Какие функции винды? Почему они должны быть вызваны?
На самом деле при обращении к портам проц проверяет уровень привилегии твоего приложения (скорее всего, 3) и уровень привилегий ввода-вывода (флаг IOPL). Если первое больше второго, то генерится особая ситуация 13.
Вторая часть вопроса совсем непонятна. Что имеется в виду под простыми in и out? В защищенном режиме обращение к портам медленнее, чем в реальном. Но все это несущественно.

Ответ отправлен: 20.01.2003, 12:38
Отправитель: Ayl


Отвечает masquer

Здравствуйте, Алексей!
Какие такие функции? Получишь простое окошко, где черным по аглицки написано будет "privilege instruction". Драйвер пиши.

Ответ отправлен: 21.01.2003, 13:32
Отправитель: masquer


Отвечает Топор

Доброе время суток, Алексей!
Винда может просто не дать тебе порты напрямую, "недопустимая операция". Хотя обычно читать разрешает.


Ответ отправлен: 20.01.2003, 11:34
Отправитель: Топор


Отвечает Igoryk

Здравствуйте, Алексей!
На мой взгляд Windows должна просто проверить имеет ли программа работающая с портами права на обращения к некоторым из портов. Если да, то на обыкновенном ассемблером уровне будет происхожить передача данных в порт. Если нет - то нет.

Ответ отправлен: 20.01.2003, 15:06
Отправитель: Igoryk


Отвечает DiGiT[old]

Приветствую Вас, Алексей!
Если твоя прога работает в 3-м кольце, то получается, что твои порты перенаправлены, но неизвестно, куда(вернее куда положено). И для корректной работы ОС надо использовать ее сервис. Зачем изобретать велосипед, если уже есть написанный код(в разрез с мышлением ассемблерщика :))

Ответ отправлен: 21.01.2003, 04:45
Отправитель: DiGiT[old]


 Вопрос № 2449

Всем привет!
Вот вы Юрова опускаете... ведь рулезные книги, с них не плохо начинать, особенно если не знаешь что такое OFFSET :) Вы ещё скажите, что Михаил Гук книги не лучше пишет! Вот "ASSEMBLER для Windows" В.Ю. Пирогова действительно одна вода+опечатки, особенно если знаешь лексику Cи и есть Win32 SDK Reference. И само собой - книга Зубкова С.В. “ASSEMBLER для DOS, Windows и Unix” тоже рулз.
Тут просвистело недавно в рассылке "Есть ли API что бы повесить Windoze" (Вопрос  2391)
Был сильно удивлён не увидев самого примитивного и 100% работающего кода вешающего WinNT (я проверял его на Win 2k и Win .NET, в NT4.0 скорее всего тоже будет работать). Итак:
Конечно, инструкцию CLI системы NT на ring3 не дают выполнить, но есть API которые могут сделать «примерно тоже самое». Т.е. само собой это бесконечный цикл, но предварительно процессу и его потоку присваивается максимальный приоритет.
call GetCurrentProcess
call SetPriorityClass, eax, REALTIME_PRIORITY_CLASS
call GetCurrentThread
call SetThreadPriority, eax, THREAD_PRIORITY_TIME_CRITICAL
cycle: jmp cycle
В общем эффект в NT - рулезный, мыша виснет, клава отдыхает. А вот в 9х: CTRL+ALT+DEL -> End Task и все дела :)
Скачать пример мона отседа (для 9x и NT) http://formatC-vt.hotbox.ru/Win32Freeze.zip [17,7 KB]
Эх, походу Вы не изучали вы сурсы Back Orifice... :) Там таким же способом вешали машину.
Hint: Хотя, в этом случае, комп конечно остаётся рабочим, машина в сети, пингуется, но подрубиться к ней нельзя. Ну вспомните вы старый и добрый БО, епрст :)
Собственно у меня всё, спасибо за внимание. У кого-нибудь есть вопросы? :)



Вопрос отправлен: 20.01.2003, 13:09
Отправитель: Andrew (formatC_vt@hotbox.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает masquer

Здравствуйте, Andrew!
Да ладно тебе, способов винду завалить немеряно, что, все начать перечислять? У меня где-то валялась подборочка...
А насчет книг, так на вкус и цвет, сам понимаешь, и кастрюля - соловей...

Ответ отправлен: 21.01.2003, 14:05
Отправитель: masquer


Отвечает Broken Sword

Доброе время суток, Andrew!
я тоже видел немало книг по асму русскоязычных (сдается мне, что все выпущенные с 1990 года), так вот они делятся на две категории: вода (все подобные переливают друг у друга воду и похожи как братья - Юров, Пирогов, Голубев), и написанные заумным тех. языком переведенные мануалы (тоже мало чем отличаются). Единственное приятное исключение (смесь воды и тех.подробностей) - Зубков, да и то данная книга появлиась только благодаря другой блистательной книге на англ. языке "Art Of Assembly Language"
насчет того что никто не ответил как перезагрузить Win у меня есть избитый вопрос: при чем здесь рассылка по асму?

Ответ отправлен: 20.01.2003, 13:34
Отправитель: Broken Sword


Отвечает Maverick

Здравствуйте, Andrew!
Незнаю, я его никогда не опускал.
Я наоборот считаю, что после Зубкова нужно почитать Юрова.
Особенно мне его книга нравится "Практика..."
Да и вообще я считаю, что все авторы хороши по своему, у некоторых одни вопросы разжеваны подробно, а другие поверхностно, у других наоборот.

Ответ отправлен: 21.01.2003, 14:45
Отправитель: Maverick


Отвечает Igoryk

Доброе время суток, Andrew!
А мне мой вариант больше нравится:
call DisableOemLayer.

Ответ отправлен: 20.01.2003, 15:06
Отправитель: Igoryk


Отвечает DiGiT[old]

Добрый день, Andrew!
Эти книги если начинать изучать, то рульно, я их когда то зачитывался(особенно зубкова). Но тот же Зубков отдыхает перед IA-32 :)) А вообще русские книги не достаточно профессиональны(ведь не наш же проц), соответственно лучше и юзать их книги.
А насчет АПИ. Идиотство какой то, нафига винду вешать если под ней работаешь :)). А вообще и НТ и 9x вешаются глючным вызовом SetWindowsHook () :(((

Ответ отправлен: 21.01.2003, 04:43
Отправитель: DiGiT[old]


 Вопрос № 2450

Здравствуйте Ayl.
>Какие функции винды? Почему они должны быть вызваны?
Мой ход мыслей: как вы уже ответили, обращение к порту из приложения с уровнем привелегий 3 скорее всего приведёт к генерации особой ситуации 13, наверняка можно обработать этот случай, выяснив причину возникновения особой ситуации?
Так вот например, если уж есть функции API для работы с ком портом или принтером, почему не вызвать каким-либо образом эти функции, если прошло обращение к таким портам (или их как-раз можно вызывать?) или просто, после анализа номера порта вызвать тот же in, out?
Ведь при выводе в порт принтера командой out данные выводятся, хотя out находиться в программе 3-го уровня привелегий. Интересно почему они выводятся в порт, если IOPL наверняка меньше 3? (интересен механизм этого вывода)
>Вторая часть вопроса совсем непонятна. Что имеется в виду >под простыми in и out?
Если вы посмотрите вопрос, то была просьба ответить на его вторую часть, если ответ на первую часть будет утвердительным. (хотя думаю, что теперь понятно, что имелось в виду)
Вобщем вопрос в том, происходит ли при обращении к порту из ring-3 в винде что-нибудь более грузящее тачку, чем обращение из ring-0.
Спасибо.
P.S. Некорректность постановки первого вопроса осознал, извиняюсь.



Вопрос отправлен: 20.01.2003, 14:13
Отправитель: Алексей

[Следующий вопрос >>] [Список вопросов]

Отвечает Ayl

Добрый день, Алексей!
Ну вот теперь понятно. Нет, API функции не вызываются. Во-первых, а зачем? Если ты нарушаешь закон (работать с оборудованием только через API, а не напрямую) - то это твои проблемы. Во-вторых, API функции требуют параметров. А откуда их взять? Компы еще не настолько умные, чтобы догадаться, а что собственно это существо безобразного вида хочет добиться.
Насчет обработки исключения 13 - абсолютно здравая мысль, что ОС ее обрабатывает. Иначе бы мы никогда не увидели бы ошибки "Программа выполнила недопустимую операцию и будет закрыта". Но при обработке этой ситуации ОС больше ничего не делает, а просто ругается.
Что же происходит в реальности и почему можно обращаться к портам напрямую (иногда). См. в Приложении выписку из книги Г.В.Орловского "Введение в архитектуру микропроцессора 80386" про ввод/вывод в защищенном режиме.
Надеюсь, что из этого отрывка тебе многое станет понятным.
И также понятно, что при обращении из ring3 происходит просто дополнительная проверка на соответствие битовой карты разрешения. Из ring0 выводится сразу же, потому что CPL<=IOPL в любом случае.


Приложение:

Ответ отправлен: 20.01.2003, 15:08
Отправитель: Ayl


 Вопрос № 2452

Господа!
Извините, что не совсем по теме, но не подскажет ли мне
кто-нибудь книги или хорошие ссылки, где можно было бы
прочитать о реализации генераторов случайных чисел различными алгоритмами, да, даже суть не в реализации,
а в самих алгоритмах, где их можно достать.
Буду рад любой полезной информации. Заранее спасибо.



Вопрос отправлен: 20.01.2003, 18:04
Отправитель: Fess (lomovskih@yandex.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Andrew Vext

Приветствую Вас,
Дональд Кнут, "Искусство программирования" том 2.

Ответ отправлен: 21.01.2003, 12:20
Отправитель: Andrew Vext


Отвечает Eugene

Доброе время суток, Fess!
Посмотри этот линк. Там вроде есть то, что тебе надо.
http://www.ssl.stu.neva.ru/psw/crypto.html

Ответ отправлен: 21.01.2003, 09:28
Отправитель: Eugene


Отвечает vitya

Доброе время суток, Fess!
Книгу могу подсказать - Дональд Кнут, "Искусство Программирования", том 2. Целая огромная глава посвящена этому вопросу.

Ответ отправлен: 20.01.2003, 18:14
Отправитель: vitya


Отвечает Bob Johnson

Здравствуйте, Fess!
Как-то некоторое время назад уже был такой вопрос. Вот, нашел его (только в нем было необходимо вычислять случайные числа в диапазоне от одног до другого заданного числа):
Обычно генераторы случайных чисел дают либо числа в интервале от 0 до 1 (нецелые), либо в интервале от 0 до 32767 или 2^31 (целые).
В первом случае тебе просто необходимо вычислить два числа (пусть min и max - диапазон требуемых чисел, rnd01 - функция rnd, возвращающая числа от 0 до 1):
b = min
a = (max - min)
rnd = rnd01*a + b
А алгоритм можно взять такой:
rnd' = {11*rnd + pi}
rnd' = {exp (rnd + pi)}
rnd' = arccos (cos (rnd + 10^9))/pi
где rnd' - новое значение rnd,
rnd - предыдущее значение rnd,
{} - операция нахождения дробной части числа
pi - число pi = 3.1415926...



Ответ отправлен: 20.01.2003, 23:29
Отправитель: Bob Johnson


Отвечает Maverick

Доброе время суток, Fess!
У Юрова в практике. Кстати есть исходников неск-ко.
Чиркни на Maverick@nightmail.ru


Ответ отправлен: 21.01.2003, 14:45
Отправитель: Maverick



Форма отправки вопроса

Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook" и "Microsoft Outlook Express". В программе The Bat! подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте, что в некоторых браузерах могут стоять запреты на открытие других окон, а также "чрезмерное" кэширование данных, при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

© 2002 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (38)
C / C++ (30)
Perl (5)
Delphi (18)
Pascal (22)
Basic / VBA (12)
Java / JavaScript (10)
PHP (6)
MySQL / MSSQL (5)
Пользователю
Windows 95/98/Me (36)
Windows NT/2000/XP (29)
"Железо" (34)
Поиск информации (19)
Администратору
Windows NT/2000/XP (12)
Linux / Unix (14)
Юристу
Гражданское право (10)
Семейное право (6)
Трудовое право (5)
КоАП (4)

Отправить вопрос всем экспертам выбранной рассылки.




Яндекс цитирования

© 2002 Россия, Москва. Авторское право: RusFAQ.ru


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное