Здравствуйте, x64,
x64>Хотелось бы по возможности провести ревизию фреймворков режима ядра общего (и, возможно, не только) назначения. Какие вы знаете? WinDriver, Jungo
А есть ли компактные библиотеки с обертками вокруг UNICODE_STRING, операциями с регистром, файлами, процессами? Начал писать, что-то подобное сам, но чуствую, что изобретаю очердной велосипед.
8>А есть ли компактные библиотеки с обертками вокруг UNICODE_STRING...
Что именно ты подразумеваешь под обёрткой в данном случае? Ты уверен, что это нужно?
8>...операциями с регистром, файлами, процессами? Начал писать, что-то подобное сам, но чуствую, что изобретаю очердной велосипед.
Есть, у меня как раз нечто похожее, правда, пока в состоянии альфа-релиза, но если есть коммерческий интерес — пиши, подумаем, что можно сделать.
x64>Что именно ты подразумеваешь под обёрткой в данном случае? Ты уверен, что это нужно?
Обертка которая упрощает стандартные манипуляции с UNICODE_STRING. Короче, ничего сложного и сильно важного. Просто првел для примера.
8>>...операциями с регистром, файлами, процессами? Начал писать, что-то подобное сам, но чуствую, что изобретаю очердной велосипед.
x64>Есть, у меня как раз нечто похожее, правда, пока в состоянии альфа-релиза, но если есть коммерческий интерес — пиши, подумаем, что можно сделать.
Нет, в состоянии "альфа-релиза" не подходит. Быть бета тестером нет ни желания ни возможности.
8>Обертка которая упрощает стандартные манипуляции с UNICODE_STRING.
Если имеется в виду набор функций, то это есть, да, а если, например, C++ класс или типа того, то этого у меня нет и не будет.
8>Нет, в состоянии "альфа-релиза" не подходит. Быть бета тестером нет ни желания ни возможности.
Ну тогда жди, что могу сказать. К слову, сейчас в библиотеке примерно 1,5 МБ чисто ядерного более-менее отлаженного и продуманного кода, включая комментарии, различные недокументированные объявления и прочее. Не ахти как много, конечно, но я всё же не уверен, что подобный проект стоит начинать с нуля самостоятельно и в одиночку, — думаю, как минимум, нужно человека 2-3, иначе это может занять не один месяц.
Никогда не задумывалось как 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
Здравствуйте, 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
Здравствуйте, x64, Вы писали:
x64>Если имеется в виду набор функций, то это есть, да, а если, например, C++ класс или типа того, то этого у меня нет и не будет.
Здравствуйте, 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
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
Здравствуйте, 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.