Доброго времени суток, люди! Я хочу иметь прогу которая будет поддерживать альтернативный реестр на компе. То есть, когда прога запущена, она перехватывает все win api функции для работы с реестром, если идет создание/запись то они не происходят в реальном реестре windows, прога их пишет в свою базу. При перехвате функций чтения происходит поиск в своей базе, если там нету - в реальном реестре. Таким образом - пока прога запущена - у нас полный реестр на компе, при условии что инсталлировали при включенной проге, прогу вырубили - девственный windows. В принципе, гуй и работу с базой данных могу сам написать, мне бы ядро перехватчика с красивыми событиями.
На Windows Vista и выше такое делается довольно просто средствами ядра, на более ранних системах придётся много чего похукать, но в общем и целом, тоже можно. В документации это есть, плюс по перехватам тоже обсуждалось всё не раз уже. Если сам не можешь или не хочешь и готов денешку заплатить - стучи, обсудим.
думаю, устроит и обычный сплайсинг RegOpenKey RegSetValue RegSetValueEx и пр. - с десяток функций хукнуть вполне хватит, даже и в ядро лезть не надо.
1. Некоторые приложения так виртуализовать не получится в принципе. 2. Иногда приложения работают с реестром косвенно через собственный драйвер. Только ядро, даже и не думайте.