Могут ли файлы темы Windows (aero.msstyles) быть загружены шпионским ПО в свои ресурсы, особенно в сценарии пользовательского интерфейса

Краткая версия: см. тему

Подробная версия:

Я хочу использовать определенную стороннюю тему для Windows. Я уже использую решение с открытым исходным кодом, которое я скомпилировал сам, чтобы отключить ограничение Windows на темы.

В прошлом, при использовании сторонних модов, связанных с темой, которые поставляются с DLL (например, authui.dll для интерфейса входа в систему или imageres.dll для изменения системных значков), я избегал использования неизвестных DLL, просто копируя ресурсы, связанные с темой неизвестной DLL. (такие как растровые изображения, группы значков или сценарии пользовательского интерфейса) в исходный аналог MS Dll. Я называю это пересадкой ресурсов, когда ресурсы меняются, но исполняемые элементы библиотек DLL или исполняемых файлов остаются в покое.

Возвращаясь к теме, которую я хочу установить, я использовал хеширование sha256, чтобы определить, что только aero.msstyles может быть изменен хакером ресурсов. Поэтому я сделал то же самое, что и обычно, и перенес ресурсы из сторонней темы в собственные Window aero.msstyles. Проблема в том, что я столкнулся с типом ресурса, который я не могу прочитать или узнать содержимое. Называется ВАРИАНТ. Судя по некоторым экспериментам, проведенным на виртуальной машине, похоже, что это какой-то двоичный скрипт пользовательского интерфейса, который хакер ресурсов не может декомпилировать. Обычно мне нравится иметь возможность читать любые сценарии пользовательского интерфейса, которые я передаю, но я не могу сделать это с этим.

Представляет ли это реальную угрозу безопасности? Можно ли загружать скрипты пользовательского интерфейса каким-либо эксплойтом? Мне это кажется маловероятным, поскольку функция файла темы (msstyle) заключается в координации внешнего вида пользовательского интерфейса системы, но я недостаточно знаю о внутренней работе всей системы тем, чтобы быть уверенным. Я думал, что у меня будет другая точка зрения, прежде чем я уберу тему из виртуальной машины.


person thebunnyrules    schedule 07.05.2017    source источник


Ответы (1)


Я использовал vBinDiff, чтобы сравнить шестнадцатеричный код измененного двоичного файла VARIANT/NORMAL с исходной темой. Вы также можете скопировать двоичные файлы и сохранить их в два текстовых файла, которые вы сравните с WinMerge.

vBinDiff и WinMerge подсвечивают, какие изменения и какие добавления/удаления были сделаны в двоичных файлах, отображая их рядом. Я прочитал различия, 90% из них были не больше 4 восьмеричных (4 байта), как правило, то, что вы ожидаете увидеть при изменении цветов с помощью шестнадцатеричного редактора. Самым большим расхождением было добавление 32 байтов кода.

Есть два возможных объяснения такого добавления: (1) автор добавил дополнительные ресурсы изображения и добавил записи, необходимые для ссылки на них, (2) есть какой-то нежелательный код, который был подсунут.

Чтобы рассмотреть возможность 2, я провел поиск, чтобы увидеть, как можно получить небольшой троянский код. Насколько вероятно, что троян запихнули в 32 байта, если скомпилированы UI-скрипты? Я нашел несколько упоминаний о старом 17-байтном вирусе эпохи DOS, который назывался тривиальным, но я сразу же проигнорировал его, потому что он очень быстро станет очевидным, учитывая его известное поведение. Что касается полноценных троянов с бэкдором и возможностями загрузки, то самым маленьким из найденных мной был 20kb (троян tinba), обнаруженный в 2012 году. Существует также Catchy32, который до сих пор считается троянцем, но с более простыми и очень специфическими функциями, и его размер составляет около 580 байт. (ссылка). Основываясь на этой информации, я установил, что крайне маловероятно (если не невозможно) подсунуть какой-либо код в 32 байта кода, и установил, что рассматриваемый ресурс чист.

Имейте в виду, это не отвечает на вопрос, который я задал (могут ли бинарные ресурсы сценария пользовательского интерфейса в теме содержать вредоносный код), но решает мою дилемму. Думал, поделюсь.

person thebunnyrules    schedule 08.05.2017