Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Нуждаюсь в помощи. Новичок.  (Прочитано 20609 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Realer
Гость
« : 28-04-2009 09:20 » 

Здравствуйте, Форумчане!
Занимаюсь изучением различного рода программирования чуть более года.
За это время успел изучить html/js/php/c-c++/ASM/, создавал вэб-, виндовс приложения.
Месяца 1.5-2 назад решил поизучать создание драйверов под Windows, программирование в режиме ядра, да и вообще найти применения своим знаниям на этом непростом занятии. Почему именно драйвера?, наверное не мне вам объяснять насколько это интереснее, занятнее и перспективнее программирования окошек в пользовательском уровне.
Так вот. Успел прочитать пол книги WDM от Oney, также пытался читать Солдатова, Сорокину, Комиссарову, различные статьи на Васме и других подоных источниках. Документацию WDK читать не начинал( но думаю на днях начну, так как в любом случае понимаю, что это наиболее обильный источник информации по сабжу).
 Наибольшую сложность я испытываю в отсутствии живых примеров. То есть количество теоретических знаний с каждой прочитаной страницей документации все больше и больше превосходит количество практических навыков. То бишь теория без практики в моей голове не укладывается никак.
 Хотел бы попросить вас выложить какой-нибудь полный комментированный код простого драйвера, что бы мне было что разобрать.
 Просто я никак не могу понять, вот есть драйвер, загружается инициализируется функцией DriverEntry, а вот что дальше происходит мне не ведомо. Поступают всякие IRP пакеты, но откуда и как они обрабатываются, что должны делать фунуции их обработки понять не могу.
 
 Надеюсь вы поняли, что я попытался вам донести своим постом. Заранее спасибо за советы и подсказки!
 
Записан
Рыжий Тигра
Гость
« Ответ #1 : 28-04-2009 09:40 » 

Realer > Поступают всякие IRP пакеты, но откуда и как они обрабатываются, что должны делать фунуции их обработки понять не могу.
Я в твои годы Улыбаюсь начинал с драйверов под Linux. Есть классная книга - Alessandro Rubini "Linux device drivers", издательство свободно распространяет pdf'ы. Это для врубиться в что такое драйвер и какими концами он взаимодействует с устройством, операционкой и пользовательскими программами.
После Рубини хорошо видно, что в windows общение с устройством чуть-чуть сложнее, обращения к операционке - ничего страшного (просто набор API здорово отличается и от WinAPI, и от стандартно-сишного), но зато обработка запросов и от программ, и от ОС - это кошмар и сплошная проктология. Улыбаюсь Мне тут пришёл на помощь NuMega DriverStudio c его способностью генерировать жизнеспособный скелет драйвера и комментариями намекать "вставь в это место свой обработчик (открытия/закрытия, чтения/записи, прерывания от ус-ва, и т.д.).
Попробуй тот же путь.
Записан
Realer
Гость
« Ответ #2 : 28-04-2009 10:38 » 

Благодарю Вас Рыжий Тигра Улыбаюсь Книжку немного пролистал, сегодня дома поизучаю. Жаль только что на английском, но ничего, будет опыт чтения данного вида литературы на языке оригинале, что несомненно окажется полезным в дальнейшем.
Записан
Рыжий Тигра
Гость
« Ответ #3 : 28-04-2009 14:54 » 

Realer > Жаль только что на английском
Существует в природе перевод нескольких глав второго издания Рубини (предпоследнего) на русский язык, но ничего внятного про перевод сказать не могу, не читал. Жаль
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #4 : 28-04-2009 22:41 » 

Realer > Жаль только что на английском

Кнопка "Цитировать" рулит! Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
Realer
Гость
« Ответ #5 : 29-04-2009 06:07 » 

Realer > Жаль только что на английском
Существует в природе перевод нескольких глав второго издания Рубини (предпоследнего) на русский язык, но ничего внятного про перевод сказать не могу, не читал. Жаль
Да я сразу же посмотрел в интернетах и нашел подобные рукоделия. но сразу же стало понятно, что читать таким образом нет смысла, так как во-первых переведеный лишь отрывки, которые сложнос смысленно связать, а во-вторых, так это просто больше мороки будет, чем читать на английском и само собой  количество усвоеной информации будет порядком меньше.
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 29-04-2009 21:49 » 

сразу в драйвера лезть не стоит.. мне кажется...
начните со структуры win(если идет речь про win). почитайте про API. попрактикуйтесь с написанием чистого Си кода с использованием чистого API без MFC, дельфи и прочих борландов....
когда освоите это на уровне "знаю КАК найти решение любой задачи и где искать", и что надо делать(как пример) для записи на диск в асинхронном режиме и как осуществить межпросессную (межнитевую) синхронизацию - читайте Руссиновича.
и ТОЛЬКО с этим багажом стоит начинать изучать драйвера.
иначе как в анекдоте будет "про паровоз то я все понял... а вот куда тут лошадь запрягать?"
мне кажется так... ИМХО.

а про линукс я не знаток) не работал с ним)
PS если где то я не прав - скажите)
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
DrGluck
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 06-05-2009 09:13 » 

У Они вроде вполне внятные примеры. Солдатова сразу не читай, т.к. он про WDM не пишет, а WDM - это наше все.
А потом ставишь Syser, там есть удобная утилита для запуска драйвера, и вперед...
Кстати, сисер и исходники показывает нормально, тока что проверил.
Записан

Good user - dead user
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 06-05-2009 11:41 » 

DrGluck, а я syser таки поставил, немного поигрался и он у меня систему в BSOD кинул) сыроват все таки...
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
DrGluck
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 06-05-2009 13:02 » 

Syser в БСОД кидает почемуто когда ставишь брякпоинт на стандартные функции винды, типа MessageBoIndirect. У меня так во всяком случае. С драйвером пока проблем не было. И потом, вроде как альтернативы нет. Особенно под 64.
Записан

Good user - dead user
Realer
Гость
« Ответ #10 : 09-05-2009 05:46 » 

Доброго дня,форумчане! Тут в поисках статей в интернете по сабжу наткнулся на это,
 http://www.pcports.ru/articles/ddk2.php . Просьба к бывалым в этом деле, скажи годно ли?
С Днем Побебы!
Кстати хотел сказать спасибо за рекомендации в сосебднем топике человеку, который посоветовал почитать К.Касперского "Фундаментальные основы хакерства". Очень приятный, полезный , а главное практичный учебник. Спасибо!
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #11 : 11-05-2009 15:26 » 

Realer, доброго времени)
годно, - отчего ж нет...
но смотря для чего)
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Realer
Гость
« Ответ #12 : 16-05-2009 12:41 » 

Realer, доброго времени)
годно, - отчего ж нет...
но смотря для чего)
Годно для понимания концепции взаимодействия прикладных программ с драйверами режима ядра.

======================================
А еще у меня вопрос по SoftIce
У меня такая проблема ставлю софт айс с драйвер студии и он уменя пишет error code 31 - присоединенное  к системе устройство не работает.Please check the event viewer for more informaion. В журнале я ничего не нашел. Интернет облазил. Читал васм, краклаб но толком ничего подхоядщего, мне понятно, для решния проблеммы не нашел. Не подумайте, что я кроме как написать сообщение в форум ничего не делал. Я попытался установить другой айс(с краклаба), но он тоже не запускался. Патчил, крутел вертел и все равно ничего.
Помогите мне с айсом пожалуйста!
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #13 : 17-05-2009 13:30 » 

айс не поддерживает нового оборудования и всяческих SP на XP... посмотрите подробнее вашу конфигурацию OC. SP2/SP3 - стоит?
что за железо  - что за проц, что за видеокарта? потом для айса много обновлений выходило- касательно новых процессоров. файлы назывались osinfo.dat. правда это уже после инсталяции.
но в вашем случае 31 ошибка - драйвер не найден или не смог загрузиться. почему не смог - видимо ему не понравилось оборудование или компоненты OC.

попробуйте Syser использовать вместо айса... это конечно жалкое подобие, но куда деваться Жаль его по крайней мере поддерживают.

а с айсом - увы, если у вас не совсем старый ПК и вам отладчик нужен не на один раз, то лучше не теряйте с ним времени... пользуйтесь другим.
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Realer
Гость
« Ответ #14 : 17-05-2009 18:21 » 

Спасибо, Ochkarik!
Да на самом деле винда второго пака, комп, а вернее ноут скажем так, не старый, но и не с особыми наворотами:
-Intel Celeron 500(2 GHz)
-Mobile Intel Graphics Media accelerator X3100
Сегодня попытался поставить оставшиеся две сборки Айса которые нашел на краклабе и разумеется ничего не вышло, патчил, перезагружал, переустанавлива, никаких ошибок, никаких окошек - просто не работает.

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

Syser - сегодня же найду в интернетах и попытаюсь подружиться с ним.
Записан
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #15 : 17-05-2009 19:59 » 

виндебагом не работал... когда была необходимость - еще айс работал и поддерживался.
syser - недавно ставил ради интереса, по принципу работы похож на софтайс, но пока еще сыроват: в общем после 5 минут его изучения он упал и завалил мне винду(версия 1.99).. с айсом такого не было, но айс сколько времени развивался. надеюсь и Syser доведут со временем....
хотя с другой стороны windbg можно сказать нативный инструмент... устойчивый)
из советов - попробуйте виртуальную машину поставить. VMWare какой нибудь... ну по крайней мере  подумайте в эту сторону....
помню, мне по началу приходилось раз по 30-40 в день перезагружаться. несколько выводит из себя))) впрочем сейчас и книги и литературы много - да и в нете много статей и ресурсов... или может я такой дикий был)))
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Ochkarik
Модератор

ru
Offline Offline
Пол: Мужской

« Ответ #16 : 20-05-2009 20:05 » 

ЗЫ тут встретил фразу... по айсу...
Цитата
Ошибка 31. Присоединенное к системе устройство не работает
Чтобы её небыло, надо удалить Daemon Tools и Alcohol, а также файл sptd.sys из папки ...\system32\drivers
Записан

RTFM уже хоть раз наконец!  RTFM :[ ну или хотя бы STFW...
Realer
Гость
« Ответ #17 : 22-05-2009 12:39 » 

Огромное тебе Спасибо Ochkarik!!!
Милионы лучей добра и света тебе, добрый человек!
Все запустилось! Сегодня буду целый вечер и всю ночь заниматься изучением! Я тебе очень благодарен!
Записан
DrGluck
Постоялец

ru
Offline Offline
Пол: Мужской

« Ответ #18 : 11-06-2009 09:52 » 

Кстати таки да, когда демон ставишь он же ругается если отладчик режима ядра стоит. Я кстати сам всегда про это забывал когда айс ставил.
Записан

Good user - dead user
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines