Hi,
The code below display the list of current installed software, so what I would do is, make a xml record, create a function to get new list for synchronization, get the mismatch && finally detect the victim.
string registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using(Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key))
{
foreach(string subkey_name in key.GetSubKeyNames())
{
using(RegistryKey subkey = key.OpenSubKey(subkey_name))
{
Console.WriteLine(subkey.GetValue("DisplayName"));
}
}
}
ManagementObjectSearcher managementObjects = new ManagementObjectSearcher("SELECT * FROM Win32_Product");
foreach(ManagementObject managementObject in managementObjects.Get())
{
Console.WriteLine(mo["Name"]);
}