Вот небольшая статья, над которой я работал, и хотя она не касается вашего вопроса напрямую, она может быть полезна. Просто обратите внимание на ключи реестра, о которых я упоминаю, и вы можете вообще их удалить, а также C:\Program Files\Application
папку, чтобы обмануть установщиков.
Все, что вы хотели знать о установке и удалении программ в Windows
Задумывались ли вы, как Windows представляет и использует программы установки и удаления? Или, может быть, вам нужно самим перечислить эти значения? Вот некоторая полезная информация о том, как она работает, как ее использовать и какие хитрые уловки вам могут понравиться.
Все, что вы видите в программе добавления и удаления программ (XP, Vista, подтверждено 7), записывается в реестр по адресу HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall \ как подраздел.
Например, у меня есть подраздел CutePDF Writer Installation с ключами и значениями:
Теперь интерес представляет значение UninstallString. Когда вы нажимаете «удалить» в «Установка и удаление программ», он вызывает это значение и запускает его. Вы можете сделать то же самое вручную, например, с CutePDF, если вы запускаете C:\Program Files (x86)\Acro Software\CutePDF Writer\Setup64.exe /uninstall
либо из строки Run, либо из командной строки, вы получите деинсталлятор. Вы также можете найти дополнительные параметры удаления, выполнив команду с /?
коммутатором или выполнив следующее из командной строки:
Cd C:\Program Files (x86)\Acro Software\CutePDF Writer Setup64.exe /?
Обратите внимание, это плохой пример, так как коммутатор ничего не возвращает! Но обычно это работает, или вы можете просто вызвать деинсталлятор вручную таким образом. Теперь давайте рассмотрим возможную проблему со списком удаления, вы увидите некоторые файлы с именами в этом формате:
Вот как установщик MSI записывает свое имя в реестр, вместо того, чтобы писать понятное имя, которое записывает установщик EXE, он записывает свой GUID.
На самом деле это не проблема, а сложность чтения ключей. Есть несколько способов прочитать их. Во-первых, есть имя значения DisplayName, которое будет иметь более дружественное значение (в этом примере) Quest ActiveRoles Management Shell для Active Directory (x64).
Другой подход заключается в том, что Windows записывает «сжатую и хэшированную» версию GUID в другую часть реестра.
Чтобы хэшировать значение, возьмите GUID и поменяйте местами каждый набор шестнадцатеричных цифр. AFF7153F становится F3517FFA, C4AA становится AA4C и включает GUID, пока у вас не появится следующее:
Теперь опустите {, -, и}, чтобы получить F3517FFAAA4C84C49EEA68EC672D1168 . Теперь у вас есть сжатый и хешированный GUID, который вы можете сравнить с другим ключом.
Теперь вы сможете найти этот новый GUID по следующему адресу в реестре: HKEY_LOCAL_MACHINE \ SOFTWARE \ Classes \ Installer \ Products
И конечно же, вот она:
Опять же, вы можете посмотреть в ProductName название приложения.
Бонусный совет: Вы можете запустить Установка и удаление программ, набрав appwiz.cpl
в строке поиска, в строке запуска или в командной строке.