В категории материалов: 357 Показано материалов: 261-270 |
Страницы: « 1 2 ... 25 26 27 28 29 ... 35 36 » |
Сортировать по:
Дате ·
Названию ·
Рейтингу ·
Комментариям ·
Просмотрам
Драйвер-это основа взаимодействия системы с устройством в ОС Windows.Это одновременно удобно и неудобно. |
Что же. В предыдущих статьях (часть №1, часть №2) мы дошли до работы с жестким диском. Давайте как раз теперь им и займемся. Я знаю, что вам хочется сразу получить тексты программ, но давайте все-таки сначала познакомимся с теорией. |
Драйвер-это основа взаимодействия системы с устройством в ОС Windows.Это одновременно удобно и неудобно. |
Для начала я бы хотел устроить небольшой разбор полетов. В прошлой части я забыл
написать, что исходные коды программ на ассемблере я предполагаю компилировать в
Nasm в виде бинарных файлов, а запись полученного результата отправлять на
отформатированную дискету с помощью, скажем, программы RawWrite. При том
записаны они должны быть сразу друг за другом, поэтому в первый загрузчик можно
включить в самом конце incbin 'name2.bin' (name2 - название второго загрузчика),
соответственно тогда он включит в себя текст второго. И сразу отвечу на вопрос
читателей, который мне после этой статьи задавали. Я понимаю, что описать
написание ОС в нескольких статьях невозможно, потому я бы предложил читателю для
начала прочитать следующие книги(помимо Зубкова, указанного ранее): |
Драйвер-это основа взаимодействия системы с устройством в ОС Windows.Это одновременно удобно и неудобно.
Про удобства я разъяснять не буду - это и так понятно,
а заострюсь я именно на неудобствах драйверов.
В сложившейся ситуации пользователь полностью подчинён воле производителя
- выпусти тот драйвер - хорошо, а не выпустит...
Только продвинутый пользователь, имеющий голову на плечах
(особенно, если он ешё и программер) не станет мириться с таким положением дел
- он просто возьмёт и сам напишет нужный драйвер.
Это нужно и взломщику: драйвер - это удобное окошко в ring0,
которое является раем для хакера. Но хоть написать драйвер и просто,
да не совсем - есть масса подводных камней. Да и документированность данного вопроса на русском языке оставляет желать лучшего.
Этот цикл статей поможет тебе во всём разобраться.
Приступим. |
Эта статья написана с учетом требований программистов. Здесь собран ряд рекомендаций, которым следуют авторы, работая программистами и консультантами в течение нескольких лет, и теперь эти рекомендации предлагаются читателям, чтобы помочь в их работе. Возможно, не все читатели согласятся со всеми предложенными здесь рекомендациями, но тем не менее некоторые из советов могут помочь в разработке и портировании приложений. |
Прежде чем начать рассматривать удаленный контроль, необходимо
определиться с правами доступа. Если у тебя сеть построена на основе
контроллера домена Windows NT/2000/2003, то по умолчанию администратор
домена имеет права локального администратора на всех компьютерах сети.
Хочешь убедиться?
Если у тебя есть доменная сеть, то запусти на своем компьютере
оснастку «Управление компьютером» (Computer Management). Это можно
сделать из «Панель управления»-> «Администрирование» или щелкнув
правой кнопкой по «Мой компьютер» и выбрав меню «Управление» (Manage).
Здесь в дереве объектов слева выбери раздел «Управление
компьютером-> Служебные программы-> Система-> Локальные
пользователи и группы-> Группы» (Computer management-> System
tools-> Local Users and Groups-> Groups). Справа должен появиться
список всех групп. Щелкни дважды по группе «Администраторы»
(Administrators) и здесь в списке ты увидишь помимо своей учетной
записи (если ты, конечно, локальный админ) еще и администраторов
домена. |
Итак, ты каким-либо методом имеешь доступ к Linux-консоли твоего
прова (Telnet / WWW) и весьма желательно FTP доступ к удалённому
серверу. С этой задачей можно очень быстро справиться, это несложно (я
об этом писал в Xakep #3, раздел ScriptKiddle), а дальше возникает
вопрос: что можно сделать, если можешь управлять сервером (любыми
правами)?
Рассмотрим ряд возможностей, которые помогут тебе узнать очень много
дыр в сервере твоего провайдера, а при удачном стечении обстоятельств
даже порутить / завесить сервак.
Если ты в совершенстве знаешь Linux - все его особенности,
местоположение config-файлов и команды, то можешь не читать эту статью
- всё, что написано здесь, ты уже знаешь. Ну, а если ты начинающий
юниксоид и стремишься познать особенности данной OS, то эта статья для
тебя. Итак, приступим. |
LKMs расшифровывается как Loadable Kernel Modules (Загружаемые
Ядерные, они же Ядреные, Модули :). Только
представь, что для обвешивания ядра разными
фичами тебе не нужно перекомпиливать все
ядро - LKM загружаются динамически! И если ты,
глядя на консоль, ностальгируешь по
временам DOS, когда ты мог творить чудеса с
помощью TSR (Terminate and Stay Resident) программ, то LKMs
для тебя. С помощью LKM ты - как и с помощью DOS
TSR - сможешь перехватывать системные
функции (в Linux они называются systemcalls).
Для твоего общего развития: в MS Windows 9x есть
что-то загадочное, обзываемое VxD. Это и есть
аналог LKM (хотя и имеется и много различий). |
Запустить сам сервер дело довольно нехитрое, если ты читал
предыдущую статью, то вполне с этим справишься. Итак, тебе понадобятся
следующие демоны:
- nfsd - непосредственное обслуживание протокола
NFS;
- mountd - обслуживание операций монтирования;
- rpc.portmap - демон портов RPC; нужен поскольку запросы к NFS-серверу передаются в виде пакетов
RPC;
|
|