1

Тема: HTA: Файл внутри тела скрипта

Здравствуйте, имеется не большой скрипт HTA,как добавить файл exe а точнее скомпилированный bat в тело скрипта и при открытии hta чтоб этот exe сохранился на компьютер и запустился?


<html>
<head>

  <META http-equiv="MSThemeCompatible" content="Yes"> <!-- Включаем текущую тему Windows для наших контролов -->
  <title>Example</title> <!-- Заголовок окна -->

  <script>
    document.bgColor="#f7f7f7"; <!-- Цвет бэкграунда -->
    window.resizeTo(400, 300); <!-- Размер окна -->
    window.moveTo(window.screen.width/2-200,window.screen.height/2-150); <!-- Координаты окна -->
  </script>

  <!-- Выставляем параметры окна -->
  <HTA:APPLICATION ID="oHTA"
    APPLICATIONNAME="htagui" 
	BORDER="thick"
	BORDERSTYLE="normal"
	CAPTION="yes"
	COMMANDLINE=""
	CONTEXTMENU="yes"
    ICON="explorer.exe"
	INNERBORDER="no"
	MAXIMIZEBUTTON="no"
	MINIMIZEBUTTON="yes"
	NAVIGABLE="yes"
    SCROLL="no"
	SCROLLFLAT="no"
	SELECTION="yes"
	SHOWINTASKBAR="yes"
    SINGLEINSTANCE="yes"
	SYSMENU="yes"
	VERSION="1.0"
	WINDOWSTATE="normal">

</head>
<body>

	
</body>
</html>

2

Re: HTA: Файл внутри тела скрипта

простой текст хранить в комментариях:


<!--

@echo off

echo This is BATCH file

-->

бинарные данные модно хранить в тех же комментариях, кодированных, например, в base64.

Средств для чтения кода из комментария - масса: как простое чтение из файла и поиск требуемой подстроки, так и методы работы с DOM.

( 2 * b ) || ! ( 2 * b )

3

Re: HTA: Файл внутри тела скрипта

Надо просто поиском по форуму воспользоваться
Хранение ресурсов в теге Script
HTA: хранение ресурсов в гипертекстовых приложениях

4

Re: HTA: Файл внутри тела скрипта

Спасибо большое!

5

Re: HTA: Файл внутри тела скрипта

не поверишь

copy /b ехефайл + хтафайл результат

Я конечно далек от мысли... (с)

6

Re: HTA: Файл внутри тела скрипта

smaharbA, и что это даст?

7

Re: HTA: Файл внутри тела скрипта

Проверил, не работает. Может быть архив с примерами опубликуете?

8

Re: HTA: Файл внутри тела скрипта

http://www.n-d.ru/files/topmost.dll.rar

Я конечно далек от мысли... (с)

9

Re: HTA: Файл внутри тела скрипта

Отсуствует ШелСкрипт.
Добавил

{
var ШелСкрипт = new ActiveXObject("WScript.Shell"),
Враппер=new ActiveXObject("DynamicWrapper.hta");
}

Теперь возникла такая ошибка:
Приложение или библиотека %Path% не является образом программы для Windows NT. Проверьте назначение установочного диска.

10

Re: HTA: Файл внутри тела скрипта

не сработало ?

Я конечно далек от мысли... (с)

11

Re: HTA: Файл внутри тела скрипта

Если хорошо копать форум, то можно найти такую тему
Помозговал чуток и вот:

file_in  = "program.exe"
file_out  = "program.hta"

var fs =new ActiveXObject("Scripting.FilesystemObject");
var x=binCode(file_in);

f = fs.openTextFile(file_out,2,true);

f.write('<html><head><META http-equiv="MSThemeCompatible" content="Yes"><title>Example</title><script>\n')
f.write('document.bgColor="#f7f7f7"; window.resizeTo(400, 300); window.moveTo(window.screen.width/2-200,window.screen.height/2-150);\n')
f.write('var s="'+x+'";\n')
f.write('file_out = "program_out.exe"\n')
f.write('function binCode(file,str) {\n')
f.write('with(new ActiveXObject("ADODB.Stream")) {\n')
f.write('Type=2;charset="ibm866";open();\n')
f.write('str=str.replace(/#/g,"%00").replace(/:/g,"%u0").replace(/=/g,"%u2");\n')
f.write('writeText(unescape(str));saveToFile(file,2);close();}\n')
f.write('document.getElementById("info").innerHTML="Записан <b>"+file_out+"</b>";}</script>\n')
f.write('<HTA:APPLICATION ID="oHTA" APPLICATIONNAME="htagui"  BORDER="thick" BORDERSTYLE="normal" CAPTION="yes" COMMANDLINE="" CONTEXTMENU="yes" ICON="explorer.exe" INNERBORDER="no" MAXIMIZEBUTTON="no" MINIMIZEBUTTON="yes" NAVIGABLE="yes" SCROLL="no" SCROLLFLAT="no" SELECTION="yes" SHOWINTASKBAR="yes" SINGLEINSTANCE="yes" SYSMENU="yes" VERSION="1.0" WINDOWSTATE="normal">\n')
f.write('</head><body><input onclick="binCode(file_out,s)" type="button" value="OK"/><div id=info></div></body></html>')

function binCode(file) {

    with(new ActiveXObject("ADODB.Stream")) {
        Type=2;
        charset='ibm866';
        open();
        loadFromFile(file);
        var str=escape(readText()).replace(/%00(?=%)/g,"#").replace(/%u0/g,":").replace(/%u2/g,"=");
        return str;
        close();
    }
}

Отредактируйте строку file_in  = "program.exe"

Запускаете скрипт и получаете на выходе HTA-шку, с зашитым в нее файлом.

Нас невозможно сбить с пути, нам пофигу куда идти.

12 (изменено: Mat Skywalker, 2011-10-03 08:53:09)

Re: HTA: Файл внутри тела скрипта

Помозговал чуток и вот:

Вы не указали язык програмирования Jscript

Автоматизирую торговлю. Не 1С

13

Re: HTA: Файл внутри тела скрипта

Mat Skywalker пишет:

Вы не указали язык програмирования Jscript

Согласен, надо было обернуть в HTA, тогда бы вопросов не возникло.
Думаю суть от того не меняется.

Нас невозможно сбить с пути, нам пофигу куда идти.

14

Re: HTA: Файл внутри тела скрипта

WSH: работа с бинарными данными через ADODB.Stream на VBS

<SCRIPT Language=VBScript>
Data = "89504E470D0A1A0A0000000D4948445200000027000000420803000000E3443FEE0000000C504C5445F0EEEEF95353F59393FF04047F58B0FF000000097048597300002E2300002E230178A53F760000014249444154789CED955902C42008434DB8FF9DA7AD4BD9AC1C60FCAA363E10115AF38361251D404D27520242A40414290171EB0A409112F0F6AEE2E1C33A033BEA0C1CA413900374022ECE37900BF30D5494EBB380FB061AA7F6401AC41EE8CEB803D20176C007C76B1C8000D0930A5D4A208D35658D619069D28A3821E6CC60FB5E1013A2B679AB7CB7749B026F1A7ADB74157362EE49B9417D1C1349172D636DAF83F1DE7EEB3889F729E7B943EE7434B762CFA1269C81EBF74B1BC035E3B80215671DB267E14AABF523E6C57B46F3E315B6960BA16DC4B49E89A4F3282F0BD4897F1A2C7606D43BC35F57D7857A1375CF0DF9C297E87A6AF9040B3A2E9DAF48C11134575A32DD0439A0D7ADA70857846C00D4DF50349D4C55A45D5B31B2F104231269D95D2DA12F317D96ABBA0BDE5692B9A3EA847AF1794654544EBAE95AC7F103F62B06FEC580AB3F0000000049454E44AE426082"
Set FSO = CreateObject("Scripting.FileSystemObject")
Path = FSO.GetSpecialFolder(2) & "\face.png"
If FSO.FileExists(Path)=False Then
Set FileObj = FSO.CreateTextFile(Path, True)
For i = 1 To Len(Data) Step 2
FileObj.Write Chr(CLng("&H" & Mid(Data,i,2)))
Next
FileObj.Close
End If
Set WSHshell = CreateObject("WScript.Shell")
WSHshell.Run Path, 0
</SCRIPT>