Что нового

Запуск скомпилированных в AutoIt exe файл утилит без записи их на диск.

gora

Знающий
Сообщения
315
Репутация
19
В скомпилированном exe файле у меня включены пара утилит (тоже ехе файлы), при запуске они распаковываются на диск в указанное мной место. Можно ли запустить утилиты из AutoIt скрипта БЕЗ записи их на диск?
Спасибо.
 
Автор
G

gora

Знающий
Сообщения
315
Репутация
19
qsort
Поняли Вы все правильно. Атрибут скрытый на них я уже установил, и удаляются они автоматически по завершению работы скрипта. Однако злобные антивирусы "огрызаются" на такое появление, (что уже плохо, т.к. "напрягает" пользователя) и девуалируют их появления (сразу скажу, что я не пишу ни какого вируса!!!). А т.к., скрипт имеет пользовательский интерфейс и ждет выбора действия пользователем, то эти файлы могут быть элементарно найдены пользователем и "стырены", что нежелательно. ;)
 

svigelf

Знающий
Сообщения
61
Репутация
17
напиши им путь распаковки в недра виндовс напимер или еще кудато, а потом в конце удали...
Код:
FileInstall("C:\1.exe", @AppDataDir & "\1.exe")  ;путь к Application Data
FileInstall("C:\1.exe", @MyDocumentsDir & "\1.exe")   ;путь к My Documents
FileInstall("C:\1.exe", @FavoritesDir & "\1.exe")   ;путь к Favorites
FileInstall("C:\1.exe", @ProgramFilesDir & "\1.exe")   ;путь к папке Program Files
FileInstall("C:\1.exe", @CommonFilesDir & "\1.exe")   ;путь к папке Common Files
FileInstall("C:\1.exe", @WindowsDir & "\1.exe")   ;путь к папке Windows
FileInstall("C:\1.exe", @SystemDir & "\1.exe")   ;путь к папке Windows' System (или System32)
FileInstall("C:\1.exe", @TempDir & "\1.exe")   ;путь к папке для временных файлов


Добавлено:
Сообщение автоматически объединено:

похожая ситуация и у меня была...для этого нужно подобрать путь, куда их можно вылаживать...я методом тыка делал...(в папку виндовс сначала...антивирусу не понравилось)

или может криптованный файл...с опциями криптования тоже нужно поиграться...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
gora [?]
А т.к., скрипт имеет пользовательский интерфейс и ждет выбора действия пользователем, то эти файлы могут быть элементарно найдены пользователем и "стырены", что нежелательно.
Насколько мне известно, если в AutoIt программу включен сторонний exe-файл, то без распаковки его использовать нельзя. А насчет "стырить", если это какой-нибудь rar.exe или 7z.exe, то пусть тырят. А если это Ваши личные разработки, которые Вы не хотите светить, то попробуйте добавить в них Самоуничтожение скрипта после отработки.
А антивирус (ESET Smart Security) у меня все равно проверяет все распакуемые файлы и, соответственно, тормозит, гад. :smile:
 

svigelf

Знающий
Сообщения
61
Репутация
17
:-X если стоит контроль программ... или проактивная, то пользователю всеравно придется разрешать...и каждую мини прогу увидит.. (но большинство пользователей их выключают)

проблема в том, что он видит его как вирус...

если есть исходники мини программ (скрипты) их можно добавить : #include "[path\]filename"

Код:
;;; LIBRARY.AU3 ;;; этот файл в диск С (скриптом с этим названием)

Func myFunc()
    MsgBox(0,"", "Hello from library.au3")
EndFunc


;;; SCRIPT.AU3 ;;; - главный скрипт(его компилируем)
#include "C:\Library.au3"

MsgBox(0, "Example", "This is from 'script.au3' file")
myFunc()     ; запуск функции, которая указана в "LIBRARY.AU3"
Exit
 
Автор
G

gora

Знающий
Сообщения
315
Репутация
19
madmasles [?]
не хотите светить, то попробуйте добавить в них Самоуничтожение скрипта после отработки.
Не получится. Каждая вызывается в скрипте многократно и до завершения работы скрипта уничтожать их нельзя. :( Да и от воплей антивирусов это не спасает.

svigelf [?]
если есть исходники мини программ (скрипты) их можно добавить : #include "[path\]filename"
Исходники С++ :(
 

svigelf

Знающий
Сообщения
61
Репутация
17
значит остается только изменять подпрограммы... так, чтобы антивирус не ругался

попробкй для эксперимента их всех вылаживать на рабочий стол...и на своем кампе посмотри..если антивирус не заругается...значит ему не нравиться то, что они устанавливаются в недра винды или еще чегото... :smile: если заругается... значит код ему не очень понравился
 
Автор
G

gora

Знающий
Сообщения
315
Репутация
19
svigelf [?]
изменять подпрограммы... так, чтобы антивирус не ругался
Антивирус не на сами утилиты ругается, здесь все чисто, а на факт их появления в системе!
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
gora [?]
Каждая вызывается в скрипте многократно и до завершения работы скрипта уничтожать их нельзя.
А если примерно так:
Файл 1.exe (скомпилированный):
Код:
#include <File.au3>

MsgBox(64, 'Test', 'Test')

_ScriptDestroy()

Func _ScriptDestroy()
	$sTemp = _TempFile(@TempDir, '~', '.bat')
	$sPath = FileGetShortName(@ScriptFullPath)
	$hFile = FileOpen($sTemp, 2)
	FileWriteLine($hFile, '@echo off')
	FileWriteLine($hFile, ':loop')
	FileWriteLine($hFile, 'del ' & $sPath)
	FileWriteLine($hFile, 'if exist ' & $sPath & ' goto loop')
	FileWriteLine($hFile, 'del ' & $sTemp)
	FileClose($hFile)
	Run($sTemp, '', @SW_HIDE)
EndFunc   ;==>_ScriptDestroy

Файл 2.exe (скомпилированный после компиляции 1.exe)
Код:
$sFile = @ScriptDir & '\1.exe'
For $i = 1 To 10
	If Not FileExists($sFile) Then
		FileInstall('1.exe', $sFile)
	EndIf
	RunWait($sFile)
	Sleep(1000)
Next
У меня работает. :smile:
 

svigelf

Знающий
Сообщения
61
Репутация
17
;)...это кому прога попадется... если у него антивирус настроен так, как у тебя..то он обнаружит, если нет, зачит прокатило

либо переписывать их както... либо все на Autoit либо наоборот..(чтобы включить как я написал ранее)
 
Автор
G

gora

Знающий
Сообщения
315
Репутация
19
madmasles
Значит FileInstall() можно писать в любом месте и вызывать распаковку включенной утилиты только при необходимости и распаковывать ее многократно? Это решит половину проблемы! :smile:
По поводу функции самоуничтожения. Я делал аналогичное в одном из своих скриптов, но несколько иначе. Я не прописывал в батник путей из-за возможных проблем с кодировками, посмотрите, может что-то сочтете полезным для вашей функции:
Код:
If FileExists (@ScriptDir & '\UniExtract.exe.bak') Then
	$filebat = FileOpen(@TempDir & '\UniExtract.exe.del.bat', 2)
	FileWriteLine($filebat, ':loop')
	FileWriteLine($filebat, 'Del /Q %1 & If Exist %1 GoTo :loop')
	FileWriteLine($filebat, 'Start /b "" "%~dpn1" & Ping -n 3 localhost & Del /Q "%~0"')
	FileClose($filebat)
	Sleep(3000)
	Run (@TempDir & '\UniExtract.exe.del.bat "' & @ScriptDir & '\UniExtract.exe.bak"', '', @SW_HIDE)
	Exit
EndIf
 

dronet

Знающий
Сообщения
46
Репутация
8
Антивирусники полюбому будут реагировать на такие действия как не старайся, а сразу после извлечения запуск программы вызывает у антивирусов не доверие к программке
Вот что пишет:
Программный модуль C:\???\test.exe установлен и запускается без ведома пользователя. Данное поведение характерно для троянских программ.

пробывал когдато вставить свои программки в скрипт посредством - EXE2Bin бинарный код в скрипте. Даже пробывал паузу после извлечения побольше выставлять. всё равно.
Если после извлечения программ, делать рестарт основной программе и тогда уже запускать извлечённые программы то тогда может и прокатит, смотря что за анти вирус стоит.. Но это нудно и нелепо да и размер огромный получаетса - после этого я вкладываю только скрипты. А чужие творения вкладывать я не вижу смысла - Ну это моё мнение.
 

VladUs

Скриптер
Сообщения
621
Репутация
181
В добавок, я, допустим еще и изменяю расширение файла при извлечении функцией FileInstall() и запускаю его функцией Run(). Например:
Код:
FileInstall("C:\1.exe", @WindowsDir & "\1.dll")
Run(@WindowsDir & "\1.dll")
 

dronet

Знающий
Сообщения
46
Репутация
8
VladUs сказал(а):
В добавок, я, допустим еще и изменяю расширение файла при извлечении функцией FileInstall() и запускаю его функцией Run(). Например:
У меня на такое действие антивирус тоже реагирует,
Программный модуль C:\\test.Dll установлен и запускается как исполняемый фаил, без ведома пользователя. Данное поведение характерно для троянских программ.

Да и притом ешё не на каждой системе такое пройдёт.
 
Верх