Фреймворки общего назначения
От: x64 Россия http://x64blog.name
Дата: 04.05.10 15:23
Оценка: 9 (2)
#Имя: FAQ.asm.frameworks
Привет.

Хотелось бы по возможности провести ревизию фреймворков режима ядра общего (и, возможно, не только) назначения. Какие вы знаете? Вкратце, я видел эти:

  • BasizLib.
  • Native Template Library (NTL).
  • Numega DriverWorks.
  • Kernel-Mode Driver Framework (KMDF).

    Из более специализированных знаю эти:

  • Продукты OSR.
  • Продукты Eldos.
  • Продукты NT Kernel Resources.
  • Ещё у Kernel Drivers что-то есть вроде бы, но оно, похоже, не пабликовое.

    Я ничего не упустил, какие ещё существуют? Чем навороченнее, тем лучше.

    Спасибо.
  • JID: x64j@jabber.ru
    Re: Фреймворки общего назначения
    От: Геннадий Майко США  
    Дата: 04.05.10 19:39
    Оценка:
    Здравствуйте, x64,

    x64>Хотелось бы по возможности провести ревизию фреймворков режима ядра общего (и, возможно, не только) назначения. Какие вы знаете?

    WinDriver, Jungo

    C уважением,
    Геннадий Майко.
    Re: Фреймворки общего назначения
    От: x64 Россия http://x64blog.name
    Дата: 05.05.10 23:54
    Оценка:
    x64>Из более специализированных знаю эти:

    Ещё вот чего вспомнил:
    Miniport Source Code от компании Perisoft.
    JID: x64j@jabber.ru
    Re[2]: Фреймворки общего назначения
    От: 8086  
    Дата: 06.05.10 04:44
    Оценка:
    А есть ли компактные библиотеки с обертками вокруг UNICODE_STRING, операциями с регистром, файлами, процессами? Начал писать, что-то подобное сам, но чуствую, что изобретаю очердной велосипед.
    Re[3]: Фреймворки общего назначения
    От: x64 Россия http://x64blog.name
    Дата: 06.05.10 04:49
    Оценка:
    8>А есть ли компактные библиотеки с обертками вокруг UNICODE_STRING...

    Что именно ты подразумеваешь под обёрткой в данном случае? Ты уверен, что это нужно?

    8>...операциями с регистром, файлами, процессами? Начал писать, что-то подобное сам, но чуствую, что изобретаю очердной велосипед.


    Есть, у меня как раз нечто похожее, правда, пока в состоянии альфа-релиза, но если есть коммерческий интерес — пиши, подумаем, что можно сделать.
    JID: x64j@jabber.ru
    Re[4]: Фреймворки общего назначения
    От: 8086  
    Дата: 06.05.10 05:29
    Оценка:
    x64>Что именно ты подразумеваешь под обёрткой в данном случае? Ты уверен, что это нужно?

    Обертка которая упрощает стандартные манипуляции с UNICODE_STRING. Короче, ничего сложного и сильно важного. Просто првел для примера.

    8>>...операциями с регистром, файлами, процессами? Начал писать, что-то подобное сам, но чуствую, что изобретаю очердной велосипед.


    x64>Есть, у меня как раз нечто похожее, правда, пока в состоянии альфа-релиза, но если есть коммерческий интерес — пиши, подумаем, что можно сделать.


    Нет, в состоянии "альфа-релиза" не подходит. Быть бета тестером нет ни желания ни возможности.
    Re[5]: Фреймворки общего назначения
    От: x64 Россия http://x64blog.name
    Дата: 06.05.10 06:22
    Оценка:
    8>Обертка которая упрощает стандартные манипуляции с UNICODE_STRING.

    Если имеется в виду набор функций, то это есть, да, а если, например, C++ класс или типа того, то этого у меня нет и не будет.

    8>Нет, в состоянии "альфа-релиза" не подходит. Быть бета тестером нет ни желания ни возможности.


    Ну тогда жди, что могу сказать. К слову, сейчас в библиотеке примерно 1,5 МБ чисто ядерного более-менее отлаженного и продуманного кода, включая комментарии, различные недокументированные объявления и прочее. Не ахти как много, конечно, но я всё же не уверен, что подобный проект стоит начинать с нуля самостоятельно и в одиночку, — думаю, как минимум, нужно человека 2-3, иначе это может занять не один месяц.
    JID: x64j@jabber.ru
    Re: Фреймворки общего назначения
    От: gear nuke  
    Дата: 06.05.10 10:53
    Оценка:
    Здравствуйте, x64, Вы писали:

    x64>
  • Native Template Library (NTL).


    Никогда не задумывалось как framework, и, надеюсь, не станет.

    Там же написано — Стандартная библиотека С++0x + тонкие обертки вроде unicode_string и для работы с реестром и файлами.
  • People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
    Re[3]: Фреймворки общего назначения
    От: gear nuke  
    Дата: 06.05.10 11:07
    Оценка:
    Здравствуйте, 8086, Вы писали:

    8>А есть ли компактные библиотеки с обертками вокруг UNICODE_STRING, операциями с регистром, файлами


    Компактно получится только на С++, а там можно использовать даже части boost.

    8> процессами?


    А какой интерфейс может понадобиться дла процессов?
    People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
    Re[4]: Фреймворки общего назначения
    От: 8086  
    Дата: 06.05.10 11:16
    Оценка:
    GN>А какой интерфейс может понадобиться дла процессов?

    Всякие там: get_image_name, get_command_line, read_virtual_memory, и пр.
    Re[6]: Фреймворки общего назначения
    От: tarkil Россия http://5209.copi.ru/
    Дата: 06.05.10 15:48
    Оценка:
    Здравствуйте, x64, Вы писали:

    x64>Если имеется в виду набор функций, то это есть, да, а если, например, C++ класс или типа того, то этого у меня нет и не будет.


    Из чистого любопытства: почему не классы?
    --
    wbr, Peter Taran
    Re[7]: Фреймворки общего назначения
    От: x64 Россия http://x64blog.name
    Дата: 06.05.10 21:16
    Оценка: :)
    T>Из чистого любопытства: почему не классы?

    Не люблю C++, вот и всё, а тем более не люблю его в ядре.
    JID: x64j@jabber.ru
    Re[5]: Фреймворки общего назначения
    От: gear nuke  
    Дата: 07.05.10 03:19
    Оценка:
    Здравствуйте, 8086, Вы писали:

    8>Всякие там: get_image_name, get_command_line, read_virtual_memory, и пр.


    Используя ntl, примерно так можно решить первые 2 задачи, а read_virtual_memory из ядра это не std::copy? Это вроде как рутина которую по месту обычно надо допиливать, интерфейс преполагает некоторую "стандартизацию" действий.

    #include <nt/system_information.hxx>
    #include <nt/process_information.hxx>
    #include <consoleapp.hxx>
    #include <iostream>
    
    int ntl::consoleapp::main()
    {
      const system_information<system_processes> running_now;
      if ( running_now )
      for ( system_processes::const_iterator it = running_now->begin(); it != running_now->end(); ++it )
      {
        std::wcout << L"ID#" << it->UniqueProcessId << L'\t' << it->ImageName.get_string() << std::endl;
      }
      
      // В ядре - после аттача к АП процесса
      process_information<process_basic_information> pbi(current_process());
      if ( pbi )
      {
        peb* const pp = pbi->PebBaseAddress; //&peb::instance();
        std::wcout << L"Peb at #" << pp << std::endl;
        if ( pp )
        {
          const rtl_user_process_parameters* const params = pp->process_parameters();
          if ( params )
            std::wcout << params->CommandLine.get_string() << std::endl;
        }
      }
      return 0;
    }
    People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
    Re[6]: Фреймворки общего назначения
    От: gear nuke  
    Дата: 07.05.10 03:22
    Оценка:
    GN> const system_information<system_processes> running_now;
    using namespace ntl::nt;

    забыл
    People who are more than casually interested in computers should have at least some idea of what the underlying hardware is like. Otherwise the programs they write will be pretty weird (c) D.Knuth
    Re[2]: Фреймворки общего назначения
    От: x64 Россия http://x64blog.name
    Дата: 12.05.10 08:20
    Оценка:
    x64>>Из более специализированных знаю эти:

    Ещё вот чего вспомнил:
    Virtual Drive SDK от компании Eterlogic.
    JID: x64j@jabber.ru
    Re: Фреймворки общего назначения
    От: Valery A. Boronin Россия linkedin.com/in/boronin
    Дата: 12.05.10 17:41
    Оценка: 12 (2)
    Здравствуйте, x64, Вы писали:

    x64>Я ничего не упустил, какие ещё существуют? Чем навороченнее, тем лучше.

    как вариант, можно погуглить странички где уже проделана аналогичная работа или лежит реестр компаний по теме: линк сходу
    ... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
    Valery A. Boronin, RSDN Team, linkedin.com\in\boronin
    R&D Mgmt & Security. AppSec & SDL. Data Protection and Systems Programming. FDE, DLP, Incident Management. Windows Filesystems and Drivers.
    Re[3]: Фреймворки общего назначения
    От: x64 Россия http://x64blog.name
    Дата: 15.05.10 00:20
    Оценка:
    x64>>>Из более специализированных знаю эти:

    Ещё вот чего вспомнил:
    WinRing0 (бесплатный и с исходниками) от японцев OpenLibSys.org.
    JID: x64j@jabber.ru
     
    Подождите ...
    Wait...
    Пока на собственное сообщение не было ответов, его можно удалить.