Ra
есть 2 вида (основных)
1) Пишут софтину которая перед тем как запустить софтину, делает все что надо чтобы она работала (реестр,файлы), далее запускает ее и ждет завершение процесса, после его завершения приберает\перемещает мусор\данные
2) мейкеры с виртуализацией, там всё просто но не всегда работает т.к. чтото немогут эмулировать внутри своей песочницы но если какаято лажа произойдет то она будет внутри этой песочницы, т.е. на самом деле ничего не меняется в ситстеме