А что такое «любое предыдущее состояние»? И для какой операционки?
В линуксе, целостностью файлов, установленных из пакетов, ведают пакетные менеджеры. Например, в gentoo можно проверить целостность пакета k3b так:
vvdm ~ # equery check k3b
* Checking app-cdr/k3b-2.0.1 ...
415 out of 415 files passed
Аналогично можно сделать, например, в дистрибутивах, основанных на rpm:
www.rpm.org/max-rpm/ch-rpm-verify.html
В дебианоподобных это: «debsums -ca <package>»
С файлами настроек сложнее. Они предназначены для того что бы их менять. И тут есть только один разумный подход: делать периодические бэкапы. Раз в неделю архивировать /etc/ как правило вполне достаточно.
Теоретически, можно написать демон, который бы следил за состоянием /etc/ и делал записи об изменении тех или иных файлов настроек, но я не слышал о том что бы кто-то использовал такой подход. Просто за ненадобностью.
Иногда встречаются советы использовать какую-нибудь систему контроля версий для /etc/ (и в последние годя это стало сильно проще, с появлением git, mercurial и других DVCS), но в моей практике, такой необходимости никогда не возникало.
P.S. Ну а на винде контролем за целостностью файлов следят антивирусы — это, в сущности, их основная работа.