Как отследить изменения в системе после установки программы?
Существует специальная утилита SysTracer специально разработанная для отслеживания изменений в системе, осуществляя это сравнением двух «снимков системы» — до и после. В итоге получаем представленные в удобном виде данные по изменениям в трех категориях «Реестр», «Файлы», «Прочие настройки» (н/п групповые политики, трасе системных утилит aka netsh)
(Честно вам скажу, что собирает она не всё, хотя в большинстве случаев ее достаточно)

А уж если Вы «боритесь со защитой злом», то там используются некоторые трюки, которые обычным трейсом не запалить :)
Иначе было бы все уж очень просто, в таком случае, самый полезный инструмент, в чем я поддерживаю участника l0calh0st,
это Process Monitor от Sysinternals — это именно то, что нужно. (Эти ребята используют, судя по всему, некоторые не документированные возможности, Марк Руссинович знает толк :) ) И спрятать какие либо движения от этой утилиты, при правильной ее настройке — крайне затруднительно. (Хотя возможно, знаю как но не скажу — ибо нехер)

PS: Единственное — внимательно ознакомьтесь с документацией в отношении фильтрации, так как Process Monitor by default протоколирует все события. В первую очередь Вам нужно нацелить его на ID процесса инсталятора, а так же (если он не используется в процессе установки — отключить сетевой дамп в нем очень много «мусора» сильно мешает разобраться).
*полушутка* Я бы как-то так поступил: сделал экспорт регистра и закоммитил в svn. Установил то приложение, и опять то же самое. Никакой доп. софт не нужен.