Существует ли какой-либо API для C # (или C ++), который позволяет анализировать файл ntuser.dat, который не принадлежит зарегистрированному пользователю (так что я не могу использовать обычный API реестра)?
Нет. Просто загрузите улей и получите к нему обычный доступ. Вы можете использовать RegLoadKey P / Invoke. C # не имеет собственного эквивалента для этого, но так как вы говорите о реестре, я не думаю, что P / Invoke вызовет проблемы с платформой.