
Установка Punto Switcher
Программа
Punto Switcher - это автоматический переключатель русской и английской раскладок клавиатуры. Когда вы забываете переключить раскладку с русской на английскую и наоборот, то вместо "Windows" получается "Цштвщцы", а вместо "молоко" - "vjkjrj". Punto Switcher это исправит - раскладка будет переключаться автоматически. Сама программа исключительно полезная, но после покупки ее Яндексом, в дистрибутиве стало слишком много чужеродного. Сам дистрибутив потяжелел почти до 3 мегабайт, в процессе инсталляции навязчиво предлагает сделать Яндекс домашней страницей, установить Яндекс.Трояна и вообще весь стал ходячей рекламой. Это плохо, значит будем исправлять все недоработки авторов.
Сперва надо распаковать дистрибутив и извлечь из него все файлы. Это можно сделать WinRAR'ом, так как файл дистрибутива представляет собой обычный архив CAB-SFX. В старых версиях Punto Switcher был RAR-SFX, который извлекал файлы во временную папку и запускал инсталлятор setup.exe. Ситуация особо не изменилась, и в новых версиях файл setup.exe тоже присутствует. Сперва проведем чистку дистрибутива. Сразу же удаляем двухмегабайтный инсталлятор Яндекс.Трояна YandexPackSetup.exe. Затем нужно заменить пустыми файлами с нулевым размером следующие файлы: license.rtf, рекламную страницу WelcomeToPunto.html и папку с картинками к ней Images. Если не планируете автоматическое обновление, то также замените пустышками все файлы в папке Updater. Просто стереть эти файлы нельзя, так как инсталлятор выдаст ошибку если не найдет хотя бы один из них. Проверяем работоспособность инсталлятора, запустив setup.exe из распакованного и зачищенного дистрибутива. Если все сделано правильно, то установка пройдет без ошибок.
Переходим к очистке самого инсталлятора. Для этого нам понадобится программа для работы с ресурсами, лично я предпочитаю eXeScope. Сперва удалим навязчивый рекламный логотип из инсталлятора.

Замена картинки с логотипом
Сделаем в любом графическом редакторе чистую картинку с белым фоном размером 164х314 пикселов и сохраним в формате BMP. Затем в eXescope откроем в секции ресурсов группу картинок и заменим картинку с чужеродным логотипом на нашу чистую. Сохраним изменения. Не забывайте после каждого изменения делать резервные копии инсталлятора и проверять его работоспособность. Переходим к диалоговым окнам.

Установка атрибутов checkbox'а
В первом диалоговом окне надо скрыть checkbox "Сделать домашней страницей" и текст-ссылку на лицензионное соглашение. У checkbox'а надо убрать атрибуты "Visible", "Tab Stop" и установить атрибут "Disabled". Кроме этого надо обязательно поменять ID элемента на какой-нибудь заведомо несуществующий, иначе по этому ID инсталлятор поставит галочку даже на скрытый элемент формы.

Установка атрибутов текстовой строки
У текстовых строк идентификатор менять не надо, достаточно убрать атрибуты "Visible", "Tab Stop" и установить атрибут "Disabled". Сохраняем изменения, проверяем инсталлятор. После этих изменений он уже приобретает приятный вид.

Установка атрибутов checkbox'а
У последнего окна надо обработать checkbox'ы "Установить Яндекс.Троян для вашего браузера", "Узнать больше о возможностях Punto Switcher" и текстовые строки "Дополнительно" и "Вы принимаете лицензионное соглашение". Оба checkbox'а заменяются с подменой ID, текстовые строчки просто прячутся. Сохраняем изменения, проверяем инсталлятор. Красота да и только, ничего лишнего!
Остался последний штрих. По умолчанию в путь установки программы подставляется совершенно лишняя строка "Yandex", лишняя потому что Punto Switcher должен ставиться просто в свою папку %programfiles%\Punto Switcher. Можно исправлять путь вручную при каждой установке, но лучше будет сразу формировать правильный путь. Бинарным поиском по файлу сигнатуры "Yandex" находится строка в юникоде, на которую ссылается такой интересный код:

Формирование пути установки
Вызывается функция
PathAppend, дописывающая строку к сформированному пути. Чтобы сделать ненужную строку пустой, достаточно ее первый символ заменить на нулевой байт:

Обнуляем ненужную строку
Вот что получается после всех манипуляций с инсталлятором:

Очищенный инсталлятор Punto Switcher
Последняя проверка установки и можно собирать обновленный дистрибутив. Удобнее всего воспользоваться WInRAR'ом, создав в нем SFX-архив.

Настройки SFX-архива
В настройках SFX прописываем выполнить после распаковки setup.exe, распаковывать файлы во временную папку и не показывать никаких окон в процессе распаковки. Иконку можно взять от оригинального дистрибутива, сохранив ее программой eXeScope. С максимальным сжатием размер нового дистрибутива у меня получился чуть больше 800 килобайт, то есть почти в четыре раза меньше исходного. К тому же теперь он не содержит ничего лишнего.

Punto Switcher в качестве кейлоггера
Кстати, не все знают, что Punto Switcher можно использовать в качестве кейлоггера, на который никогда не будут ругаться антивирусы. Для этого достаточно установить на компьютере жертвы Punto Switcher, включить функцию дневника и защитить ее паролем, а затем в настройках дневника убрать галочку "не сохранять записи короче 2 слов". Вот и все, пользователь получает удобную программу для переключения раскладки, а вы получаете все его пароли и переписку. При следующем визите к жертве просто скопируйте себе файл дневника diary.dat и изучите его на своем компьютере.