Windows NT и порты
На работе ДОСовские программеры достали расскзами, что Windows семейства NT не позволяют кому-попало шнырять по портам компьютера, а им(программистам) этго очень хочется. Я уже себе стер часть языка, объясняя им смысл такой постановки вопроса. Говорил о хакерах, ну, короче, пугал, как положено. Не отстают. Помогите, пожалуйста,найти дполнительные аргументы.
Заранее всем спасибо за ответы.
Здравствуйте, Господа.
На работе ДОСовские программеры достали расскзами, что Windows семейства NT не позволяют кому-попало шнырять по портам компьютера, а им(программистам) этго очень хочется. Я уже себе стер часть языка, объясняя им смысл такой постановки вопроса. Говорил о хакерах, ну, короче, пугал, как положено. Не отстают. Помогите, пожалуйста,найти дполнительные аргументы.
Заранее всем спасибо за ответы.
Во первых - по каким портам шнырять? По аппаратным - если судить по вопросу. Я прав? Если так, то тут хакеры не причем (нужно будет - они на любые пролезут, и ОС в этом не помеха, а только помощь). Да и смысл вопроса действительно не очень ясен - какие требуются ответы?
Если кратко, и с точки зрения теории, то вся работа с оборудованием в ОС осуществляется на уровне ядра системы, а пользовательские программы работают в пользовательском (непривелигированном) режиме. Т.к. современные ОС все как одна - многозадачные, то при попытке программы самостоятельно захватить в свое пользование какой-либо аппаратный ресурс, она получает пинка от ОС. Все обращения к аппаратуре должны контролироваться ОС и осуществляться при помощи API-функций (они же - системные вызовы, работающие в режиме ядра). Т.е. если вы попытаетесь сделать что-то недозволенное с точки зрения ОС (например сделать из LPT-порта гирлянду), то у вас ничего не получится даже при помощи API. Ну а если все же надо, то можно написать драйвер и установить его в системе - тогда, делайте что вам угодно с любыми портами. Правда если драйвер будет написан хотя бы чуть-чуть коряво, то вся система рухнет вместе с вашим драйвером.
ЗЫ ИМХО: либо прогеры пытаются над вами приколоться, либо их нужно гнать с работы.
Во первых - по каким портам шнырять? По аппаратным - если судить по вопросу. Я прав? Если так, то тут хакеры не причем (нужно будет - они на любые пролезут, и ОС в этом не помеха, а только помощь). Да и смысл вопроса действительно не очень ясен - какие требуются ответы?
Если кратко, и с точки зрения теории, то вся работа с оборудованием в ОС осуществляется на уровне ядра системы, а пользовательские программы работают в пользовательском (непривелигированном) режиме. Т.к. современные ОС все как одна - многозадачные, то при попытке программы самостоятельно захватить в свое пользование какой-либо аппаратный ресурс, она получает пинка от ОС. Все обращения к аппаратуре должны контролироваться ОС и осуществляться при помощи API-функций (они же - системные вызовы, работающие в режиме ядра). Т.е. если вы попытаетесь сделать что-то недозволенное с точки зрения ОС (например сделать из LPT-порта гирлянду), то у вас ничего не получится даже при помощи API. Ну а если все же надо, то можно написать драйвер и установить его в системе - тогда, делайте что вам угодно с любыми портами. Правда если драйвер будет написан хотя бы чуть-чуть коряво, то вся система рухнет вместе с вашим драйвером.
ЗЫ ИМХО: либо прогеры пытаются над вами приколоться, либо их нужно гнать с работы.
Спасибо за ответ, я действительно имел ввиду аппаратные порты компьютера. Я им именно так и говорил, что с помощью драйвера можно, в принципе, соорудить, что угодно, но, наксколько, мне известно, написание драйверов (корректных и непадающих) само по себе каторжный труд, а хочется как во времена первых ЭВМ: шляйся по памяти, по аппартным портам как угодно, и никто тебе не указ.
Еще раз Вам спасибо. Обязатекльно процитирую Ваш ответ.
Londinium
Спасибо за ответ, я действительно имел ввиду аппаратные порты компьютера. Я им именно так и говорил, что с помощью драйвера можно, в принципе, соорудить, что угодно, но, наксколько, мне известно, написание драйверов (корректных и непадающих) само по себе каторжный труд, а хочется как во времена первых ЭВМ: шляйся по памяти, по аппартным портам как угодно, и никто тебе не указ.
Еще раз Вам спасибо. Обязатекльно процитирую Ваш ответ.
Londinium
Вах! Люди задавайте вопросы кАрректно, а то в ответы потом сложновато вникать! Мол.чел. Londinium, надо было сразу конкретнее объяснить сто надо-то! Я когда прочитал вопрос первый раз даже догнать не смог про что он. Вопрос: при чем тут хакеры и физические порты РС. Как я помню из описания языка ассемблер, системе вообще параллельно что ей там приходит от устройтв на порты, если эти данные не требуются какой-то проге.
Вах! Люди задавайте вопросы кАрректно, а то в ответы потом сложновато вникать! Мол.чел. Londinium, надо было сразу конкретнее объяснить сто надо-то! Я когда прочитал вопрос первый раз даже догнать не смог про что он. Вопрос: при чем тут хакеры и физические порты РС. Как я помню из описания языка ассемблер, системе вообще параллельно что ей там приходит от устройтв на порты, если эти данные не требуются какой-то проге.
Больше не буду:) Просто очень допекли
Londinium
Как я помню из описания языка ассемблер, системе вообще параллельно что ей там приходит от устройтв на порты, если эти данные не требуются какой-то проге.
Интересно, а при чем описание языка асм и какая-то конкретная ОС?
"системе вообще параллельно что ей там приходит от устройтв на порты" - очень печально, что вы так думаете:
Видел своими глазами, как одни гореписатели, точка зрения которых на этот вопрос была аналогична вашей, стали посылать информацию в бесконечном цикле на все порты в диапазоне 0x00 - 0xFF. Ну и попала эта информация на порт дисплея, порт клавиатуры и на много чего еще. Дисплей стал показывать невероятнейшие картинки, клава отказала, остальное работало наверняка так же, только проверить это как вы понимаете уже нельзя было.
Дело происходило в досе... Вот и ответ, почему винда не позволяет таких вольностей уважаемый Londinium. Представляете что будет, если случайно такая прога запустится на сервере или ответственном рабочем компе, а не на личной машине горе-эксперементатора.
Интересно, а при чем описание языка асм и какая-то конкретная ОС?
"системе вообще параллельно что ей там приходит от устройтв на порты" - очень печально, что вы так думаете:
Видел своими глазами, как одни гореписатели, точка зрения которых на этот вопрос была аналогична вашей, стали посылать информацию в бесконечном цикле на все порты в диапазоне 0x00 - 0xFF. Ну и попала эта информация на порт дисплея, порт клавиатуры и на много чего еще. Дисплей стал показывать невероятнейшие картинки, клава отказала, остальное работало наверняка так же, только проверить это как вы понимаете уже нельзя было.
Дело происходило в досе... Вот и ответ, почему винда не позволяет таких вольностей уважаемый Londinium. Представляете что будет, если случайно такая прога запустится на сервере или ответственном рабочем компе, а не на личной машине горе-эксперементатора.
Родной мой! Описание ассемблера здесь при том, что там ясно написано "считать из порта", "послать в порт". Ты сам заметил что сказал! "Дисплей стал показывать невероятнейшие картинки, клава отказала, остальное работало наверняка так же, только проверить это как вы понимаете уже нельзя было." Все глюки шли за счет того что попадали на порты оборудования! Ессесно что нигде не написано что комманд.ком сам начал делать "формат С" потомучто на порт ХХХ кто то прислал "дие, дие". Я согласен что в винде такого нет, но дело тут не в этом!
Родной мой! Описание ассемблера здесь при том, что там ясно написано "считать из порта", "послать в порт".
(Как эмоционально однако!)
И что дальше? Асмы для разных платформ - разные.
Программулина была на паскале без ассемблерных вставок => можно по подробнее с причастностью описания асма к данной теме. Видимо я просто недопонял вашей мысли.
Я согласен что в винде такого нет, но дело тут не в этом!
Не все делов этом. Это - в частности.
Ессесно что нигде не написано что комманд.ком сам начал делать "формат С" потомучто на порт ХХХ кто то прислал "дие, дие".
Видимо у нас с вами различное понимание слова "система". Я понимал весь программно-аппаратный комплекс компьютера, а вы - только программный. Хотя в нашем случае помоему нужно учитывать как раз все в совокупности.
Здравствуйте, Господа.
На работе ДОСовские программеры достали расскзами, что Windows семейства NT не позволяют кому-попало шнырять по портам компьютера, а им(программистам) этго очень хочется. Я уже себе стер часть языка, объясняя им смысл такой постановки вопроса. Говорил о хакерах, ну, короче, пугал, как положено. Не отстают. Помогите, пожалуйста,найти дполнительные аргументы.
Заранее всем спасибо за ответы.
И в Windows NT это все можно сделать. Пусть не ноют, [color=red]учат мат. часть[/color]. Для настоящего программиста это очень веский аргумент.
И в Windows NT это все можно сделать. Пусть не ноют, [color=red]учат мат. часть[/color]. Для настоящего программиста это очень веский аргумент.
Окромя драйверов, насколько я знаю, только при помощи "недокументированных" возможностей - выполнения пользовательских приложений в привелегированном режиме. Я прав? Или есть еще лазейки?